synapse 2.180.1__tar.gz → 2.182.0__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 synapse might be problematic. Click here for more details.

Files changed (615) hide show
  1. {synapse-2.180.1/synapse.egg-info → synapse-2.182.0}/PKG-INFO +3 -3
  2. {synapse-2.180.1 → synapse-2.182.0}/pyproject.toml +4 -3
  3. synapse-2.182.0/synapse/assets/__init__.py +35 -0
  4. synapse-2.182.0/synapse/assets/storm/migrations/model-0.2.28.storm +355 -0
  5. {synapse-2.180.1 → synapse-2.182.0}/synapse/common.py +2 -1
  6. {synapse-2.180.1 → synapse-2.182.0}/synapse/cortex.py +49 -35
  7. {synapse-2.180.1 → synapse-2.182.0}/synapse/cryotank.py +1 -1
  8. {synapse-2.180.1 → synapse-2.182.0}/synapse/datamodel.py +30 -0
  9. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/ast.py +12 -7
  10. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/auth.py +17 -0
  11. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/cell.py +7 -9
  12. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/chop.py +0 -1
  13. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/drive.py +8 -8
  14. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/layer.py +55 -13
  15. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/lmdbslab.py +26 -5
  16. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/modelrev.py +28 -1
  17. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/modules.py +1 -0
  18. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/nexus.py +1 -1
  19. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/node.py +5 -0
  20. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/parser.py +23 -16
  21. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/scrape.py +1 -1
  22. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/slabseqn.py +2 -2
  23. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/snap.py +129 -0
  24. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/storm.lark +16 -2
  25. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/storm.py +20 -3
  26. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/storm_format.py +1 -0
  27. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormhttp.py +34 -1
  28. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/auth.py +5 -3
  29. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/cortex.py +5 -2
  30. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/easyperm.py +2 -2
  31. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/ipv6.py +2 -2
  32. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/model.py +114 -12
  33. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/project.py +1 -1
  34. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormtypes.py +81 -7
  35. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/types.py +7 -0
  36. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/version.py +2 -2
  37. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/view.py +47 -0
  38. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/inet.py +10 -3
  39. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/infotech.py +2 -1
  40. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/language.py +4 -0
  41. synapse-2.182.0/synapse/models/math.py +50 -0
  42. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/orgs.py +8 -0
  43. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/risk.py +9 -0
  44. synapse-2.182.0/synapse/tests/files/stormcov/pragma-nocov.storm +18 -0
  45. synapse-2.182.0/synapse/tests/test_assets.py +25 -0
  46. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_cortex.py +129 -0
  47. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_datamodel.py +6 -0
  48. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_cell.py +12 -0
  49. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_grammar.py +7 -1
  50. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_layer.py +35 -0
  51. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_lmdbslab.py +11 -9
  52. synapse-2.182.0/synapse/tests/test_lib_modelrev.py +1222 -0
  53. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_slabseqn.py +5 -4
  54. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_snap.py +4 -0
  55. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_storm.py +110 -1
  56. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormhttp.py +99 -1
  57. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_auth.py +15 -0
  58. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_cortex.py +21 -4
  59. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_iters.py +8 -5
  60. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_model.py +45 -6
  61. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormtypes.py +158 -2
  62. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_types.py +6 -0
  63. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_inet.py +10 -0
  64. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_language.py +4 -0
  65. synapse-2.182.0/synapse/tests/test_model_math.py +22 -0
  66. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_orgs.py +6 -2
  67. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_risk.py +4 -0
  68. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_storm.py +1 -1
  69. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_utils_stormcov.py +5 -0
  70. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/utils.py +18 -5
  71. {synapse-2.180.1 → synapse-2.182.0}/synapse/utils/stormcov/plugin.py +31 -1
  72. synapse-2.182.0/synapse/vendor/cpython/LICENSE +279 -0
  73. synapse-2.182.0/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  74. synapse-2.182.0/synapse/vendor/cpython/lib/email/_parseaddr.py +560 -0
  75. synapse-2.182.0/synapse/vendor/cpython/lib/email/utils.py +505 -0
  76. synapse-2.182.0/synapse/vendor/cpython/lib/ipaddress.py +2366 -0
  77. synapse-2.182.0/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  78. synapse-2.182.0/synapse/vendor/cpython/lib/test/support/__init__.py +114 -0
  79. synapse-2.182.0/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  80. synapse-2.182.0/synapse/vendor/cpython/lib/test/test_email/test_email.py +480 -0
  81. synapse-2.182.0/synapse/vendor/cpython/lib/test/test_email/test_utils.py +167 -0
  82. synapse-2.182.0/synapse/vendor/cpython/lib/test/test_ipaddress.py +2672 -0
  83. synapse-2.182.0/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  84. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/utils.py +4 -3
  85. synapse-2.182.0/synapse/vendor/xrpl/tests/__init__.py +0 -0
  86. {synapse-2.180.1 → synapse-2.182.0/synapse.egg-info}/PKG-INFO +3 -3
  87. {synapse-2.180.1 → synapse-2.182.0}/synapse.egg-info/SOURCES.txt +19 -2
  88. {synapse-2.180.1 → synapse-2.182.0}/synapse.egg-info/requires.txt +2 -2
  89. synapse-2.180.1/synapse/lib/jupyter.py +0 -505
  90. synapse-2.180.1/synapse/tests/test_lib_jupyter.py +0 -224
  91. synapse-2.180.1/synapse/tests/test_lib_modelrev.py +0 -568
  92. {synapse-2.180.1 → synapse-2.182.0}/LICENSE +0 -0
  93. {synapse-2.180.1 → synapse-2.182.0}/README.rst +0 -0
  94. {synapse-2.180.1 → synapse-2.182.0}/setup.cfg +0 -0
  95. {synapse-2.180.1 → synapse-2.182.0}/synapse/__init__.py +0 -0
  96. {synapse-2.180.1 → synapse-2.182.0}/synapse/axon.py +0 -0
  97. {synapse-2.180.1 → synapse-2.182.0}/synapse/cells.py +0 -0
  98. {synapse-2.180.1 → synapse-2.182.0}/synapse/cmds/__init__.py +0 -0
  99. {synapse-2.180.1 → synapse-2.182.0}/synapse/cmds/boss.py +0 -0
  100. {synapse-2.180.1 → synapse-2.182.0}/synapse/cmds/cortex.py +0 -0
  101. {synapse-2.180.1 → synapse-2.182.0}/synapse/cmds/hive.py +0 -0
  102. {synapse-2.180.1 → synapse-2.182.0}/synapse/daemon.py +0 -0
  103. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/__init__.py +0 -0
  104. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  105. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/attack-flow/README.md +0 -0
  106. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  107. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  108. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  109. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  110. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  111. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/iana.tlds.mpk +0 -0
  112. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/README.md +0 -0
  113. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  114. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  115. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  116. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  117. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  118. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  119. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  120. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  121. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  122. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  123. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  124. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  125. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  126. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  127. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  128. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  129. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  130. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  131. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  132. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  133. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  134. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  135. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  136. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  137. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  138. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  139. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  140. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  141. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  142. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  143. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  144. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  145. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  146. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  147. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  148. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  149. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  150. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  151. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  152. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  153. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  154. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  155. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  156. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  157. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  158. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  159. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  160. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  161. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  162. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  163. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  164. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  165. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  166. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  167. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  168. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  169. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  170. {synapse-2.180.1 → synapse-2.182.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  171. {synapse-2.180.1 → synapse-2.182.0}/synapse/exc.py +0 -0
  172. {synapse-2.180.1 → synapse-2.182.0}/synapse/glob.py +0 -0
  173. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/__init__.py +0 -0
  174. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/agenda.py +0 -0
  175. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/aha.py +0 -0
  176. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/autodoc.py +0 -0
  177. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/base.py +0 -0
  178. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/boss.py +0 -0
  179. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/cache.py +0 -0
  180. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/certdir.py +0 -0
  181. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/cli.py +0 -0
  182. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/cmd.py +0 -0
  183. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/cmdr.py +0 -0
  184. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/config.py +0 -0
  185. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/const.py +0 -0
  186. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/coro.py +0 -0
  187. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/crypto/__init__.py +0 -0
  188. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/crypto/coin.py +0 -0
  189. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/crypto/ecc.py +0 -0
  190. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/crypto/passwd.py +0 -0
  191. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/crypto/rsa.py +0 -0
  192. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/crypto/tinfoil.py +0 -0
  193. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/datfile.py +0 -0
  194. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/dyndeps.py +0 -0
  195. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/encoding.py +0 -0
  196. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/gis.py +0 -0
  197. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/grammar.py +0 -0
  198. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/hashitem.py +0 -0
  199. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/hashset.py +0 -0
  200. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/health.py +0 -0
  201. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/hive.py +0 -0
  202. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/hiveauth.py +0 -0
  203. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/httpapi.py +0 -0
  204. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/ingest.py +0 -0
  205. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/interval.py +0 -0
  206. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/jsonstor.py +0 -0
  207. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/link.py +0 -0
  208. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/module.py +0 -0
  209. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/msgpack.py +0 -0
  210. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/multislabseqn.py +0 -0
  211. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/oauth.py +0 -0
  212. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/output.py +0 -0
  213. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/platforms/__init__.py +0 -0
  214. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/platforms/common.py +0 -0
  215. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/platforms/darwin.py +0 -0
  216. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/platforms/freebsd.py +0 -0
  217. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/platforms/linux.py +0 -0
  218. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/platforms/windows.py +0 -0
  219. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/queue.py +0 -0
  220. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/ratelimit.py +0 -0
  221. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/reflect.py +0 -0
  222. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/rstorm.py +0 -0
  223. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/schemas.py +0 -0
  224. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/scope.py +0 -0
  225. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/share.py +0 -0
  226. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/slaboffs.py +0 -0
  227. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/spooled.py +0 -0
  228. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormctrl.py +0 -0
  229. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/__init__.py +0 -0
  230. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/aha.py +0 -0
  231. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/backup.py +0 -0
  232. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/basex.py +0 -0
  233. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/cache.py +0 -0
  234. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/cell.py +0 -0
  235. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/compression.py +0 -0
  236. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/env.py +0 -0
  237. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/ethereum.py +0 -0
  238. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/gen.py +0 -0
  239. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/gis.py +0 -0
  240. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/graph.py +0 -0
  241. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/hashes.py +0 -0
  242. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/hex.py +0 -0
  243. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/imap.py +0 -0
  244. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/infosec.py +0 -0
  245. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/iters.py +0 -0
  246. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/json.py +0 -0
  247. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/log.py +0 -0
  248. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/macro.py +0 -0
  249. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/math.py +0 -0
  250. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/mime.py +0 -0
  251. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/modelext.py +0 -0
  252. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/notifications.py +0 -0
  253. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/oauth.py +0 -0
  254. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/pack.py +0 -0
  255. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/random.py +0 -0
  256. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/scrape.py +0 -0
  257. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/smtp.py +0 -0
  258. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/spooled.py +0 -0
  259. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/stats.py +0 -0
  260. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/stix.py +0 -0
  261. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/storm.py +0 -0
  262. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/tabular.py +0 -0
  263. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/vault.py +0 -0
  264. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/version.py +0 -0
  265. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/xml.py +0 -0
  266. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormlib/yaml.py +0 -0
  267. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormsvc.py +0 -0
  268. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/stormwhois.py +0 -0
  269. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/structlog.py +0 -0
  270. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/task.py +0 -0
  271. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/thishost.py +0 -0
  272. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/thisplat.py +0 -0
  273. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/threads.py +0 -0
  274. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/time.py +0 -0
  275. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/trigger.py +0 -0
  276. {synapse-2.180.1 → synapse-2.182.0}/synapse/lib/urlhelp.py +0 -0
  277. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/__init__.py +0 -0
  278. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/cvss.py +0 -0
  279. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/iana.py +0 -0
  280. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/iso3166.py +0 -0
  281. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/macho.py +0 -0
  282. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/pe.py +0 -0
  283. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/phonenum.py +0 -0
  284. {synapse-2.180.1 → synapse-2.182.0}/synapse/lookup/timezones.py +0 -0
  285. {synapse-2.180.1 → synapse-2.182.0}/synapse/mindmeld.py +0 -0
  286. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/__init__.py +0 -0
  287. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/auth.py +0 -0
  288. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/base.py +0 -0
  289. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/belief.py +0 -0
  290. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/biz.py +0 -0
  291. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/crypto.py +0 -0
  292. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/dns.py +0 -0
  293. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/economic.py +0 -0
  294. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/entity.py +0 -0
  295. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/files.py +0 -0
  296. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/geopol.py +0 -0
  297. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/geospace.py +0 -0
  298. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/gov/__init__.py +0 -0
  299. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/gov/cn.py +0 -0
  300. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/gov/intl.py +0 -0
  301. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/gov/us.py +0 -0
  302. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/material.py +0 -0
  303. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/media.py +0 -0
  304. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/person.py +0 -0
  305. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/planning.py +0 -0
  306. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/proj.py +0 -0
  307. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/science.py +0 -0
  308. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/syn.py +0 -0
  309. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/telco.py +0 -0
  310. {synapse-2.180.1 → synapse-2.182.0}/synapse/models/transport.py +0 -0
  311. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/__init__.py +0 -0
  312. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/aha.py +0 -0
  313. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/axon.py +0 -0
  314. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/cell.py +0 -0
  315. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/cortex.py +0 -0
  316. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/cryotank.py +0 -0
  317. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/jsonstor.py +0 -0
  318. {synapse-2.180.1 → synapse-2.182.0}/synapse/servers/stemcell.py +0 -0
  319. {synapse-2.180.1 → synapse-2.182.0}/synapse/telepath.py +0 -0
  320. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/__init__.py +0 -0
  321. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  322. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/__init__.py +0 -0
  323. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  324. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  325. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  326. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  327. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  328. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  329. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  330. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  331. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  332. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  333. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  334. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  335. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  336. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/users/root.key +0 -0
  337. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  338. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/certdir/users/user.key +0 -0
  339. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  340. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  341. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/cpedata.json +0 -0
  342. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  343. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  344. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  345. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  346. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  347. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stix_export/basic.json +0 -0
  348. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  349. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  350. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  351. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  352. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  353. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  354. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  355. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  356. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  357. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  358. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormmod/common +0 -0
  359. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  360. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  361. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  362. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  363. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  364. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  365. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  366. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  367. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  368. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  369. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  370. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  371. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  372. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  373. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  374. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  375. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  376. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  377. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  378. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  379. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  380. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  381. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  382. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/test.dat +0 -0
  383. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  384. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/nopmod.py +0 -0
  385. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_axon.py +0 -0
  386. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_cmds_boss.py +0 -0
  387. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_cmds_cortex.py +0 -0
  388. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_cmds_hive.py +0 -0
  389. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_common.py +0 -0
  390. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_cryotank.py +0 -0
  391. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_daemon.py +0 -0
  392. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_data.py +0 -0
  393. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_exc.py +0 -0
  394. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_glob.py +0 -0
  395. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_init.py +0 -0
  396. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_agenda.py +0 -0
  397. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_aha.py +0 -0
  398. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_ast.py +0 -0
  399. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_auth.py +0 -0
  400. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_autodoc.py +0 -0
  401. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_base.py +0 -0
  402. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_boss.py +0 -0
  403. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_cache.py +0 -0
  404. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_certdir.py +0 -0
  405. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_chop.py +0 -0
  406. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_cli.py +0 -0
  407. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_config.py +0 -0
  408. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_const.py +0 -0
  409. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_coro.py +0 -0
  410. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  411. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  412. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  413. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  414. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_datfile.py +0 -0
  415. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  416. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_encoding.py +0 -0
  417. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_gis.py +0 -0
  418. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_hashitem.py +0 -0
  419. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_hashset.py +0 -0
  420. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_health.py +0 -0
  421. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_hive.py +0 -0
  422. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_httpapi.py +0 -0
  423. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_interval.py +0 -0
  424. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  425. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_link.py +0 -0
  426. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_module.py +0 -0
  427. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_msgpack.py +0 -0
  428. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  429. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_nexus.py +0 -0
  430. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_node.py +0 -0
  431. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_output.py +0 -0
  432. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  433. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_queue.py +0 -0
  434. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  435. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_reflect.py +0 -0
  436. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_rstorm.py +0 -0
  437. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_scope.py +0 -0
  438. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_scrape.py +0 -0
  439. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  440. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_spooled.py +0 -0
  441. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_storm_format.py +0 -0
  442. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  443. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  444. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  445. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  446. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  447. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  448. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  449. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  450. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  451. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  452. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  453. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  454. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  455. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  456. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  457. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  458. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  459. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  460. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  461. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  462. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  463. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  464. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  465. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  466. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  467. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  468. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  469. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  470. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  471. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  472. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  473. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  474. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  475. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  476. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  477. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  478. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_structlog.py +0 -0
  479. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_task.py +0 -0
  480. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_thishost.py +0 -0
  481. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_time.py +0 -0
  482. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_trigger.py +0 -0
  483. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  484. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_version.py +0 -0
  485. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lib_view.py +0 -0
  486. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  487. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  488. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_mindmeld.py +0 -0
  489. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_auth.py +0 -0
  490. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_base.py +0 -0
  491. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_belief.py +0 -0
  492. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_biz.py +0 -0
  493. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_crypto.py +0 -0
  494. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_dns.py +0 -0
  495. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_economic.py +0 -0
  496. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_files.py +0 -0
  497. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_geopol.py +0 -0
  498. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_geospace.py +0 -0
  499. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_gov_cn.py +0 -0
  500. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_gov_intl.py +0 -0
  501. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_gov_us.py +0 -0
  502. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_infotech.py +0 -0
  503. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_material.py +0 -0
  504. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_media.py +0 -0
  505. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_person.py +0 -0
  506. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_planning.py +0 -0
  507. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_proj.py +0 -0
  508. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_science.py +0 -0
  509. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_syn.py +0 -0
  510. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_telco.py +0 -0
  511. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_model_transport.py +0 -0
  512. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_servers_axon.py +0 -0
  513. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_servers_cortex.py +0 -0
  514. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_servers_cryotank.py +0 -0
  515. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_servers_stemcell.py +0 -0
  516. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_servers_univ.py +0 -0
  517. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_telepath.py +0 -0
  518. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_aha.py +0 -0
  519. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_autodoc.py +0 -0
  520. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  521. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_backup.py +0 -0
  522. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_cellauth.py +0 -0
  523. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_changelog.py +0 -0
  524. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  525. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  526. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_csvtool.py +0 -0
  527. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  528. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_easycert.py +0 -0
  529. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_feed.py +0 -0
  530. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_genpkg.py +0 -0
  531. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_guid.py +0 -0
  532. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  533. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_hiveload.py +0 -0
  534. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_hivesave.py +0 -0
  535. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  536. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_livebackup.py +0 -0
  537. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_modrole.py +0 -0
  538. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_moduser.py +0 -0
  539. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_pullfile.py +0 -0
  540. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_pushfile.py +0 -0
  541. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_reload.py +0 -0
  542. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_tools_rstorm.py +0 -0
  543. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_utils.py +0 -0
  544. {synapse-2.180.1 → synapse-2.182.0}/synapse/tests/test_utils_getrefs.py +0 -0
  545. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/__init__.py +0 -0
  546. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/__init__.py +0 -0
  547. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/clone.py +0 -0
  548. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/easycert.py +0 -0
  549. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/enroll.py +0 -0
  550. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/list.py +0 -0
  551. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/provision/__init__.py +0 -0
  552. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/provision/service.py +0 -0
  553. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/aha/provision/user.py +0 -0
  554. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/autodoc.py +0 -0
  555. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/axon2axon.py +0 -0
  556. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/backup.py +0 -0
  557. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/cellauth.py +0 -0
  558. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/changelog.py +0 -0
  559. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/cmdr.py +0 -0
  560. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/cryo/__init__.py +0 -0
  561. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/cryo/cat.py +0 -0
  562. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/cryo/list.py +0 -0
  563. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/csvtool.py +0 -0
  564. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/docker/__init__.py +0 -0
  565. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/docker/validate.py +0 -0
  566. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/easycert.py +0 -0
  567. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/feed.py +0 -0
  568. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/genpkg.py +0 -0
  569. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/guid.py +0 -0
  570. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/healthcheck.py +0 -0
  571. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/hive/__init__.py +0 -0
  572. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/hive/load.py +0 -0
  573. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/hive/save.py +0 -0
  574. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/json2mpk.py +0 -0
  575. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/livebackup.py +0 -0
  576. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/modrole.py +0 -0
  577. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/moduser.py +0 -0
  578. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/promote.py +0 -0
  579. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/pullfile.py +0 -0
  580. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/pushfile.py +0 -0
  581. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/reload.py +0 -0
  582. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/rstorm.py +0 -0
  583. {synapse-2.180.1 → synapse-2.182.0}/synapse/tools/storm.py +0 -0
  584. {synapse-2.180.1 → synapse-2.182.0}/synapse/utils/__init__.py +0 -0
  585. {synapse-2.180.1 → synapse-2.182.0}/synapse/utils/getrefs.py +0 -0
  586. {synapse-2.180.1 → synapse-2.182.0}/synapse/utils/stormcov/__init__.py +0 -0
  587. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/__init__.py +0 -0
  588. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  589. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  590. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/cashaddress/base58.py +0 -0
  591. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/cashaddress/convert.py +0 -0
  592. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  593. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  594. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  595. {synapse-2.180.1/synapse/vendor/substrateinterface/tests → synapse-2.182.0/synapse/vendor/cpython}/__init__.py +0 -0
  596. {synapse-2.180.1/synapse/vendor/xrpl/tests → synapse-2.182.0/synapse/vendor/cpython/lib}/__init__.py +0 -0
  597. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  598. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  599. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  600. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  601. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  602. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/LICENSE +0 -0
  603. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/__init__.py +0 -0
  604. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/constants.py +0 -0
  605. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  606. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  607. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  608. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  609. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  610. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  611. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  612. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  613. {synapse-2.180.1 → synapse-2.182.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  614. {synapse-2.180.1 → synapse-2.182.0}/synapse.egg-info/dependency_links.txt +0 -0
  615. {synapse-2.180.1 → synapse-2.182.0}/synapse.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.180.1
3
+ Version: 2.182.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License: Apache License 2.0
@@ -22,7 +22,7 @@ License-File: LICENSE
22
22
  Requires-Dist: pyOpenSSL<25.0.0,>=24.0.0
23
23
  Requires-Dist: cryptography<44.0.0,>=43.0.1
24
24
  Requires-Dist: msgpack<1.1.0,>=1.0.5
25
- Requires-Dist: xxhash<3.5.0,>=1.4.4
25
+ Requires-Dist: xxhash<3.6.0,>=1.4.4
26
26
  Requires-Dist: lmdb<1.5.0,>=1.2.1
27
27
  Requires-Dist: tornado<7.0.0,>=6.2.0
28
28
  Requires-Dist: regex>=2022.9.11
@@ -34,7 +34,7 @@ Requires-Dist: aiosmtplib<3.1.0,>=3.0.0
34
34
  Requires-Dist: prompt-toolkit<3.1.0,>=3.0.4
35
35
  Requires-Dist: lark==1.1.9
36
36
  Requires-Dist: Pygments<2.18.0,>=2.7.4
37
- Requires-Dist: packaging<24.0,>=20.0
37
+ Requires-Dist: packaging<25.0,>=20.0
38
38
  Requires-Dist: fastjsonschema<2.20.0,>=2.18.0
39
39
  Requires-Dist: stix2-validator<4.0.0,>=3.2.0
40
40
  Requires-Dist: vcrpy<5.2.0,>=4.3.1
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.180.1'
7
+ version = '2.182.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -26,7 +26,7 @@ dependencies = [
26
26
  'pyOpenSSL>=24.0.0,<25.0.0',
27
27
  'cryptography>=43.0.1,<44.0.0',
28
28
  'msgpack>=1.0.5,<1.1.0',
29
- 'xxhash>=1.4.4,<3.5.0',
29
+ 'xxhash>=1.4.4,<3.6.0',
30
30
  'lmdb>=1.2.1,<1.5.0',
31
31
  'tornado>=6.2.0,<7.0.0',
32
32
  'regex>=2022.9.11',
@@ -38,7 +38,7 @@ dependencies = [
38
38
  'prompt-toolkit>=3.0.4,<3.1.0',
39
39
  'lark==1.1.9',
40
40
  'Pygments>=2.7.4,<2.18.0',
41
- 'packaging>=20.0,<24.0',
41
+ 'packaging>=20.0,<25.0',
42
42
  'fastjsonschema>=2.18.0,<2.20.0',
43
43
  'stix2-validator>=3.2.0,<4.0.0',
44
44
  'vcrpy>=4.3.1,<5.2.0',
@@ -89,6 +89,7 @@ include-package-data = true
89
89
 
90
90
  [tool.setuptools.package-data]
91
91
  'synapse' = [
92
+ 'assets/**',
92
93
  'data/*.mpk',
93
94
  'data/certs/**',
94
95
  'data/attack-flow/**',
@@ -0,0 +1,35 @@
1
+ import os
2
+ import logging
3
+
4
+ import synapse.common as s_common
5
+
6
+ logger = logging.getLogger(__name__)
7
+ dirname = os.path.dirname(__file__)
8
+
9
+ def getStorm(*names):
10
+ '''
11
+ Return a storm file from the synapse storm folder.
12
+
13
+ Example:
14
+
15
+ text = storm.get('migrate.storm')
16
+ await core.callStorm(text)
17
+
18
+ Example #2:
19
+ text = storm.get('migrations', 'model-0.2.28.storm')
20
+ await core.callStorm(text)
21
+ '''
22
+ fp = getAssetPath('storm', *names)
23
+ with open(fp, 'rb') as fd:
24
+ text = fd.read()
25
+ return text.decode('utf8')
26
+
27
+ def getAssetPath(*names):
28
+ fp = s_common.genpath(dirname, *names)
29
+ if not fp.startswith(dirname):
30
+ logger.error(f'{fp} is not in {dirname}')
31
+ raise ValueError(f'Path escaping detected for {names}')
32
+ if not os.path.isfile(fp):
33
+ logger.error('{} does not exist'.format(fp))
34
+ raise ValueError(f'Asset does not exist for {names}')
35
+ return fp
@@ -0,0 +1,355 @@
1
+ $layers = $lib.spooled.set()
2
+ $layers.adds($layridens)
3
+
4
+ $refinfoCache = ({})
5
+
6
+ function getRefInfo(formname) {
7
+ $cached = $refinfoCache.$formname
8
+ if $cached { return($cached) }
9
+
10
+ $refinfo = ([])
11
+
12
+ syn:prop:type*in=($formname, array, ndef)
13
+ // Don't include the form we're querying
14
+ -:form = $formname
15
+
16
+ $prop = $lib.model.prop($node.repr())
17
+ $proptype = $prop.type.name
18
+
19
+ // Don't include array types that don't have a base type of $formname or ndef
20
+ -$($proptype = 'array' and not ([$formname, 'ndef']).has($prop.type.opts.type))
21
+
22
+ $isarray = $lib.false
23
+
24
+ if ($proptype = 'array') {
25
+ $isarray = $lib.true
26
+ $proptype = $prop.type.opts.type
27
+ }
28
+
29
+ $refinfo.append((:form, $prop.name, $proptype, $isarray))
30
+
31
+ fini {
32
+ $refinfoCache.$formname = $refinfo
33
+ return($refinfo)
34
+ }
35
+ }
36
+
37
+ function removeNode(n, viewiden, layriden) {
38
+
39
+ $nodeq = $lib.queue.gen("model_0_2_28:nodes")
40
+ $refsq = $lib.queue.gen("model_0_2_28:nodes:refs")
41
+ $edgeq = $lib.queue.gen("model_0_2_28:nodes:edges")
42
+
43
+ $sources = ([])
44
+
45
+ $iden = $n.iden()
46
+ $repr = $n.repr()
47
+ $form = $n.form()
48
+ $ndef = $n.ndef()
49
+
50
+ $lib.log.debug(`Saving invalid {$form} node info: {$repr}`)
51
+
52
+ $refinfos = $getRefInfo($form)
53
+
54
+ for $view in $lib.view.list(deporder=$lib.true) {
55
+ if (not $layers.has($view.layers.0.iden)) { continue }
56
+
57
+ view.exec $view.iden {
58
+ $edges = ([])
59
+ $references = ([])
60
+
61
+ // Get references and store them in queue
62
+ for $refinfo in $refinfos {
63
+
64
+ ($formname, $propname, $proptype, $isarray) = $refinfo
65
+ if ($proptype = "ndef") {
66
+ $oldvalu = $ndef
67
+ } else {
68
+ $oldvalu = $repr
69
+ }
70
+
71
+ for $ref in $lib.model.migration.liftByPropValuNoNorm($formname, $propname, $oldvalu) {
72
+ yield $ref
73
+
74
+ if $isarray {
75
+
76
+ // We can't just [ :$propname-=$oldvalu ] because the norm() function gets called on the array type
77
+ // deep down in the AST. So, instead, we have to operate on the whole array.
78
+
79
+ $list = $lib.copy(:$propname)
80
+ $list.rem($oldvalu, all=$lib.true)
81
+
82
+ if $list {
83
+ $lib.model.migration.setNodePropValuNoNorm($node, $propname, $list)
84
+ } else {
85
+ [ -:$propname ]
86
+ }
87
+
88
+ } else {
89
+ try {
90
+ [ -:$propname ]
91
+ } catch ReadOnlyProp as exc {
92
+ // The property is readonly so we can only delete it
93
+ $lib.log.warning(`{$formname}:{$propname} is readonly, cannot modify. Storing node: {$node.repr()}`)
94
+ $removeNode($node, $view.iden, $view.layers.0.iden)
95
+ | delnode |
96
+ continue
97
+ }
98
+ }
99
+
100
+ $ref = ({
101
+ "iden": $node.iden(),
102
+ "refinfo": $refinfo,
103
+ })
104
+
105
+ $references.append($ref)
106
+
107
+ // Flush to the queue if the list grows too large
108
+ if ($references.size() > 1000) { // pragma: no cover start
109
+ $item = ({
110
+ "iden": $iden,
111
+ "view": $view.iden,
112
+ "refs": $references,
113
+ })
114
+
115
+ $refsq.put($item)
116
+ $references = ([])
117
+ } // pragma: no cover stop
118
+ }
119
+ }
120
+
121
+ if $references {
122
+ $item = ({
123
+ "iden": $iden,
124
+ "view": $view.iden,
125
+ "refs": $references,
126
+ })
127
+
128
+ $refsq.put($item)
129
+ $references = ([])
130
+ }
131
+
132
+ spin |
133
+
134
+ yield $iden |
135
+
136
+ // Get sources and store them in the queue
137
+ // Do this before we store/delete edges.
138
+ { <(seen)- meta:source
139
+ $sources.append($node.repr())
140
+ }
141
+
142
+ // Get N1 edges and store them in the queue
143
+ { for $edge in $node.edges() {
144
+ ($verb, $dst) = $edge
145
+ $edges.append($edge)
146
+
147
+ [ -($verb)> { yield $dst } ]
148
+
149
+ // Flush to the queue if the list grows too large
150
+ if ($edges.size() > 1000) { // pragma: no cover start
151
+ $item = ({
152
+ "iden": $iden,
153
+ "view": $view.iden,
154
+ "direction": "n1",
155
+ "edges": $edges,
156
+ })
157
+
158
+ $edgeq.put($item)
159
+ $edges = ([])
160
+ } // pragma: no cover stop
161
+ }}
162
+
163
+ if $edges {
164
+ $item = ({
165
+ "iden": $iden,
166
+ "view": $view.iden,
167
+ "direction": "n1",
168
+ "edges": $edges,
169
+ })
170
+
171
+ $edgeq.put($item)
172
+ $edges = ([])
173
+ }
174
+
175
+ // Get N2 edges and store them in the queue
176
+ { for $edge in $node.edges(reverse=$lib.true) {
177
+ ($verb, $src) = $edge
178
+ $edges.append($edge)
179
+
180
+ [ <($verb)- { yield $src } ]
181
+
182
+ // Flush to the queue if the list grows too large
183
+ if ($edges.size() > 1000) { // pragma: no cover start
184
+ $item = ({
185
+ "iden": $iden,
186
+ "view": $view.iden,
187
+ "direction": "n2",
188
+ "edges": $edges,
189
+ })
190
+
191
+ $edgeq.put($item)
192
+ $edges = ([])
193
+ } // pragma: no cover stop
194
+ }}
195
+
196
+ if $edges {
197
+ $item = ({
198
+ "iden": $iden,
199
+ "view": $view.iden,
200
+ "direction": "n2",
201
+ "edges": $edges,
202
+ })
203
+
204
+ $edgeq.put($item)
205
+ $edges = ([])
206
+ }
207
+ }
208
+ }
209
+
210
+ $item = ({
211
+ "iden": $iden,
212
+ "form": $form,
213
+ "repr": $repr,
214
+ "props": $n.props,
215
+ "view": $viewiden,
216
+ "layer": $layriden,
217
+ "tags": $n.tags(),
218
+ "data": $n.data.list(),
219
+ "sources": $sources,
220
+ })
221
+
222
+ $nodeq.put($item)
223
+
224
+ return()
225
+ }
226
+
227
+ function migrateCpeNode(oldcpe, newcpe) {
228
+
229
+ // migrate the edges, tags, node data, and extended props
230
+ $lib.model.migration.copyEdges($oldcpe, $newcpe)
231
+ $lib.model.migration.copyTags($oldcpe, $newcpe)
232
+ $lib.model.migration.copyData($oldcpe, $newcpe)
233
+ $lib.model.migration.copyExtProps($oldcpe, $newcpe)
234
+
235
+ $refinfos = $getRefInfo($oldcpe.form())
236
+
237
+ // Iterate through the views and fix up all the references
238
+ for $view in $lib.view.list(deporder=$lib.true) {
239
+ if (not $layers.has($view.layers.0.iden)) { continue }
240
+
241
+ view.exec $view.iden {
242
+
243
+ // Fix references that point to old node to now point to new node
244
+ for $refinfo in $refinfos {
245
+ ($form, $prop, $proptype, $isarray) = $refinfo
246
+ if ($proptype = "ndef") {
247
+ $oldvalu = $oldcpe.ndef()
248
+ $newvalu = $newcpe.ndef()
249
+ } else {
250
+ $oldvalu = $oldcpe.repr()
251
+ $newvalu = $newcpe.repr()
252
+ }
253
+
254
+ for $n in $lib.model.migration.liftByPropValuNoNorm($form, $prop, $oldvalu) {
255
+ yield $n
256
+
257
+ if $isarray {
258
+
259
+ // We can't just [ :$prop-=$oldvalu :$prop+=$newvalu ] because the norm() function gets called
260
+ // on the array type deep down in the AST. So, instead, we have to operate on the whole array.
261
+
262
+ $list = $lib.copy(:$prop)
263
+ $list.rem($oldvalu, all=$lib.true)
264
+
265
+ if (not $list.has($newvalu)) {
266
+ $list.append($newvalu)
267
+ }
268
+
269
+ $lib.model.migration.setNodePropValuNoNorm($node, $prop, $list)
270
+
271
+ } else {
272
+ try {
273
+ [ -:$prop :$prop=$newvalu ]
274
+ } catch ReadOnlyProp as exc {
275
+ // The property is readonly so we can only delete it
276
+ $lib.log.warning(`{$form}:{$prop} is readonly, cannot modify. Storing node: {$node.repr()}`)
277
+ $removeNode($node, $view.iden, $view.layers.0.iden)
278
+ | delnode
279
+
280
+ }
281
+ }
282
+ }
283
+ }
284
+ }
285
+ }
286
+
287
+ return()
288
+ }
289
+
290
+ // This is a separate function because I was getting weird bugs from scoping
291
+ // issues. Mainly, the $view variable being overwritten because this code was
292
+ // scoped to the whole script.
293
+ function main() {
294
+
295
+ for $view in $lib.view.list(deporder=$lib.true) {
296
+
297
+ if (not $layers.has($view.layers.0.iden)) { continue }
298
+
299
+ view.exec $view.iden {
300
+
301
+ $layer = $lib.layer.get()
302
+
303
+ for $oldcpe in $layer.liftByProp(it:sec:cpe) {
304
+ $info = $lib.model.migration.s.itSecCpe_2_170_0_internal($oldcpe)
305
+
306
+ if ($info.status = "success") {
307
+ // No primary property changes, nothing to do. Node has been fully migrated.
308
+ if (not $info.valu) {
309
+ continue
310
+ }
311
+
312
+ /*
313
+ * At this point, we have a node that can be fixed but
314
+ * needs to be migrated to a new node because the primary
315
+ * property needs to be changed. We'll create a new
316
+ * (correct) node, and copy everything from the old node.
317
+ * Then we complete the migration by iterating through
318
+ * all the views to fix the references.
319
+ */
320
+
321
+ $lib.log.debug(`Migrating invalid it:sec:cpe node: {$oldcpe.repr()} -> {$info.valu}`)
322
+
323
+ [ it:sec:cpe=$info.valu
324
+ .seen ?= $oldcpe.props.".seen"
325
+ ]
326
+
327
+ $migrateCpeNode($oldcpe, $node)
328
+
329
+ spin |
330
+
331
+ yield $oldcpe |
332
+ delnode --deledges --force
333
+
334
+ } else {
335
+
336
+ // Node could not be automatically migrated. Collect
337
+ // critical information to eventually reconstruct this node
338
+ // and store it in a queue.
339
+
340
+ $removeNode($oldcpe, $view.iden, $view.layers.0.iden)
341
+
342
+ yield $oldcpe |
343
+ delnode --deledges --force
344
+ }
345
+ }
346
+ }
347
+ }
348
+
349
+ return()
350
+ }
351
+
352
+ // Pre-cache the it:sec:cpe references
353
+ $getRefInfo(it:sec:cpe)
354
+
355
+ $main()
@@ -2,6 +2,7 @@ import io
2
2
  import os
3
3
  import ssl
4
4
  import sys
5
+ import enum
5
6
  import json
6
7
  import http
7
8
  import stat
@@ -36,7 +37,7 @@ import synapse.lib.const as s_const
36
37
  import synapse.lib.msgpack as s_msgpack
37
38
  import synapse.lib.structlog as s_structlog
38
39
 
39
- import enum
40
+ import synapse.vendor.cpython.lib.ipaddress as ipaddress
40
41
 
41
42
  try:
42
43
  from yaml import CSafeLoader as Loader
@@ -115,6 +115,8 @@ SYNC_NODEEDIT = 1 # A nodeedit: (<offs>, 0, <etyp>, (<etype args>))
115
115
  SYNC_LAYR_ADD = 3 # A layer was added
116
116
  SYNC_LAYR_DEL = 4 # A layer was deleted
117
117
 
118
+ MAX_NEXUS_DELTA = 3_600
119
+
118
120
  reqValidTagModel = s_config.getJsValidator({
119
121
  'type': 'object',
120
122
  'properties': {
@@ -2278,31 +2280,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2278
2280
  if sodelist is not None:
2279
2281
  yield sodelist
2280
2282
 
2281
- async def _mergeSodesUniq(self, layers, genrs, cmprkey, filtercmpr=None, reverse=False):
2282
- lastbuid = None
2283
- sodes = {}
2284
- async with await s_spooled.Set.anit(dirn=self.dirn) as uniqset:
2285
- async for layr, (_, buid), sode in s_common.merggenr2(genrs, cmprkey, reverse=reverse):
2286
- if buid in uniqset:
2287
- continue
2288
-
2289
- if not buid == lastbuid or layr in sodes:
2290
- if lastbuid is not None:
2291
- sodelist = await self._genSodeList(lastbuid, sodes, layers, filtercmpr)
2292
- if sodelist is not None:
2293
- yield sodelist
2294
- sodes.clear()
2295
-
2296
- await uniqset.add(lastbuid)
2297
- lastbuid = buid
2298
-
2299
- sodes[layr] = sode
2300
-
2301
- if lastbuid is not None:
2302
- sodelist = await self._genSodeList(lastbuid, sodes, layers, filtercmpr)
2303
- if sodelist is not None:
2304
- yield sodelist
2305
-
2306
2283
  async def _liftByDataName(self, name, layers):
2307
2284
  if len(layers) == 1:
2308
2285
  layr = layers[0].iden
@@ -2328,7 +2305,13 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2328
2305
  for layr in layers:
2329
2306
  genrs.append(wrap_liftgenr(layr.iden, layr.liftByProp(form, prop, reverse=reverse)))
2330
2307
 
2331
- async for sodes in self._mergeSodesUniq(layers, genrs, cmprkey_indx, reverse=reverse):
2308
+ def filtercmpr(sode):
2309
+ if (props := sode.get('props')) is None:
2310
+ return False
2311
+
2312
+ return props.get(prop) is not None
2313
+
2314
+ async for sodes in self._mergeSodes(layers, genrs, cmprkey_indx, filtercmpr, reverse=reverse):
2332
2315
  yield sodes
2333
2316
 
2334
2317
  async def _liftByPropValu(self, form, prop, cmprvals, layers, reverse=False):
@@ -2445,7 +2428,16 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2445
2428
  for layr in layers:
2446
2429
  genrs.append(wrap_liftgenr(layr.iden, layr.liftByTagProp(form, tag, prop, reverse=reverse)))
2447
2430
 
2448
- async for sodes in self._mergeSodesUniq(layers, genrs, cmprkey_indx, reverse=reverse):
2431
+ def filtercmpr(sode):
2432
+ if (tagprops := sode.get('tagprops')) is None:
2433
+ return False
2434
+
2435
+ if (props := tagprops.get(tag)) is None:
2436
+ return False
2437
+
2438
+ return props.get(prop) is not None
2439
+
2440
+ async for sodes in self._mergeSodes(layers, genrs, cmprkey_indx, filtercmpr, reverse=reverse):
2449
2441
  yield sodes
2450
2442
 
2451
2443
  async def _liftByTagPropValu(self, form, tag, prop, cmprvals, layers, reverse=False):
@@ -4401,7 +4393,14 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4401
4393
  except Exception as e:
4402
4394
  mesg = f'Invalid path for Extended HTTP API - cannot compile regular expression for [{path}] : {e}'
4403
4395
  raise s_exc.BadArg(mesg=mesg) from None
4404
- adef['iden'] = s_common.guid()
4396
+
4397
+ if adef.get('iden') is None:
4398
+ adef['iden'] = s_common.guid()
4399
+
4400
+ iden = adef['iden']
4401
+ if self._exthttpapis.get(iden) is not None:
4402
+ raise s_exc.DupIden(mesg=f'Duplicate iden specified for Extended HTTP API: {iden}', iden=iden)
4403
+
4405
4404
  adef['created'] = s_common.now()
4406
4405
  adef['updated'] = adef['created']
4407
4406
  adef = s_schemas.reqValidHttpExtAPIConf(adef)
@@ -5714,7 +5713,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5714
5713
 
5715
5714
  if self.stormpool is not None and opts.get('mirror', True):
5716
5715
  extra = await self.getLogExtra(text=text)
5717
- proxy = await self._getMirrorProxy()
5716
+ proxy = await self._getMirrorProxy(opts)
5718
5717
 
5719
5718
  if proxy is not None:
5720
5719
  logger.info(f'Offloading Storm query {{{text}}} to mirror.', extra=extra)
@@ -5741,13 +5740,13 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5741
5740
  return i
5742
5741
 
5743
5742
  async def _getMirrorOpts(self, opts):
5743
+ assert 'nexsoffs' in opts
5744
5744
  mirropts = s_msgpack.deepcopy(opts)
5745
5745
  mirropts['mirror'] = False
5746
- mirropts['nexsoffs'] = (await self.getNexsIndx() - 1)
5747
5746
  mirropts['nexstimeout'] = self.stormpoolopts.get('timeout:sync')
5748
5747
  return mirropts
5749
5748
 
5750
- async def _getMirrorProxy(self):
5749
+ async def _getMirrorProxy(self, opts):
5751
5750
 
5752
5751
  if self.stormpool is None: # pragma: no cover
5753
5752
  return None
@@ -5756,6 +5755,8 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5756
5755
  logger.warning('Storm query mirror pool is empty, running query locally.')
5757
5756
  return None
5758
5757
 
5758
+ proxy = None
5759
+
5759
5760
  try:
5760
5761
  timeout = self.stormpoolopts.get('timeout:connection')
5761
5762
  proxy = await self.stormpool.proxy(timeout=timeout)
@@ -5764,10 +5765,23 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5764
5765
  # we are part of the pool and were selected. Convert to local use.
5765
5766
  return None
5766
5767
 
5768
+ curoffs = opts.setdefault('nexsoffs', await self.getNexsIndx() - 1)
5769
+ miroffs = await s_common.wait_for(proxy.getNexsIndx(), timeout) - 1
5770
+ if (delta := curoffs - miroffs) > MAX_NEXUS_DELTA:
5771
+ mesg = (f'Pool mirror [{proxyname}] Nexus offset delta too large '
5772
+ f'({delta} > {MAX_NEXUS_DELTA}), running query locally.')
5773
+ logger.warning(mesg, extra=await self.getLogExtra(delta=delta, mirror=proxyname, mirror_offset=miroffs))
5774
+ return None
5775
+
5767
5776
  return proxy
5768
5777
 
5769
5778
  except (TimeoutError, s_exc.IsFini):
5770
- logger.warning('Timeout waiting for pool mirror, running query locally.')
5779
+ if proxy is None:
5780
+ logger.warning('Timeout waiting for pool mirror, running query locally.')
5781
+ else:
5782
+ mesg = f'Timeout waiting for pool mirror [{proxyname}] Nexus offset, running query locally.'
5783
+ logger.warning(mesg, extra=await self.getLogExtra(mirror=proxyname))
5784
+ await proxy.fini()
5771
5785
  return None
5772
5786
 
5773
5787
  async def storm(self, text, opts=None):
@@ -5776,7 +5790,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5776
5790
 
5777
5791
  if self.stormpool is not None and opts.get('mirror', True):
5778
5792
  extra = await self.getLogExtra(text=text)
5779
- proxy = await self._getMirrorProxy()
5793
+ proxy = await self._getMirrorProxy(opts)
5780
5794
 
5781
5795
  if proxy is not None:
5782
5796
  logger.info(f'Offloading Storm query {{{text}}} to mirror.', extra=extra)
@@ -5806,7 +5820,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5806
5820
 
5807
5821
  if self.stormpool is not None and opts.get('mirror', True):
5808
5822
  extra = await self.getLogExtra(text=text)
5809
- proxy = await self._getMirrorProxy()
5823
+ proxy = await self._getMirrorProxy(opts)
5810
5824
 
5811
5825
  if proxy is not None:
5812
5826
  logger.info(f'Offloading Storm query {{{text}}} to mirror.', extra=extra)
@@ -5831,7 +5845,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5831
5845
 
5832
5846
  if self.stormpool is not None and opts.get('mirror', True):
5833
5847
  extra = await self.getLogExtra(text=text)
5834
- proxy = await self._getMirrorProxy()
5848
+ proxy = await self._getMirrorProxy(opts)
5835
5849
 
5836
5850
  if proxy is not None:
5837
5851
  logger.info(f'Offloading Storm query {{{text}}} to mirror.', extra=extra)
@@ -81,7 +81,7 @@ class CryoTank(s_base.Base):
81
81
  size = 0
82
82
 
83
83
  for chunk in s_common.chunks(items, 1000):
84
- metrics = self._items.save(chunk)
84
+ metrics = await self._items.save(chunk)
85
85
  self._metrics.add(metrics)
86
86
  await self.fire('cryotank:puts', numrecords=len(chunk))
87
87
  size += len(chunk)