synapse 2.185.0__tar.gz → 2.186.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 (617) hide show
  1. {synapse-2.185.0/synapse.egg-info → synapse-2.186.0}/PKG-INFO +1 -1
  2. {synapse-2.185.0 → synapse-2.186.0}/pyproject.toml +1 -1
  3. {synapse-2.185.0 → synapse-2.186.0}/synapse/cortex.py +3 -2
  4. {synapse-2.185.0 → synapse-2.186.0}/synapse/exc.py +2 -0
  5. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/ast.py +1 -1
  6. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cell.py +65 -2
  7. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/drive.py +45 -10
  8. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/snap.py +0 -6
  9. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/types.py +6 -0
  10. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/version.py +2 -2
  11. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/risk.py +3 -0
  12. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cortex.py +10 -5
  13. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_base.py +2 -2
  14. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_cell.py +15 -4
  15. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_risk.py +2 -0
  16. synapse-2.186.0/synapse/tests/test_tools_snapshot.py +47 -0
  17. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/clone.py +3 -1
  18. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/easycert.py +1 -1
  19. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/enroll.py +3 -1
  20. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/provision/service.py +3 -1
  21. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/provision/user.py +3 -1
  22. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/livebackup.py +3 -1
  23. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/promote.py +9 -3
  24. synapse-2.186.0/synapse/tools/snapshot.py +69 -0
  25. {synapse-2.185.0 → synapse-2.186.0/synapse.egg-info}/PKG-INFO +1 -1
  26. {synapse-2.185.0 → synapse-2.186.0}/synapse.egg-info/SOURCES.txt +2 -0
  27. {synapse-2.185.0 → synapse-2.186.0}/LICENSE +0 -0
  28. {synapse-2.185.0 → synapse-2.186.0}/README.rst +0 -0
  29. {synapse-2.185.0 → synapse-2.186.0}/setup.cfg +0 -0
  30. {synapse-2.185.0 → synapse-2.186.0}/synapse/__init__.py +0 -0
  31. {synapse-2.185.0 → synapse-2.186.0}/synapse/assets/__init__.py +0 -0
  32. {synapse-2.185.0 → synapse-2.186.0}/synapse/assets/storm/migrations/model-0.2.28.storm +0 -0
  33. {synapse-2.185.0 → synapse-2.186.0}/synapse/axon.py +0 -0
  34. {synapse-2.185.0 → synapse-2.186.0}/synapse/cells.py +0 -0
  35. {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/__init__.py +0 -0
  36. {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/boss.py +0 -0
  37. {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/cortex.py +0 -0
  38. {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/hive.py +0 -0
  39. {synapse-2.185.0 → synapse-2.186.0}/synapse/common.py +0 -0
  40. {synapse-2.185.0 → synapse-2.186.0}/synapse/cryotank.py +0 -0
  41. {synapse-2.185.0 → synapse-2.186.0}/synapse/daemon.py +0 -0
  42. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/__init__.py +0 -0
  43. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  44. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/attack-flow/README.md +0 -0
  45. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  46. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  47. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  48. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  49. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  50. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/iana.tlds.mpk +0 -0
  51. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/README.md +0 -0
  52. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  53. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  54. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  55. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  56. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  57. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  58. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  59. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  60. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  61. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  62. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  63. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  64. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  65. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  66. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  67. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  68. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  69. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  70. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  71. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  72. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  73. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  74. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  75. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  76. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  77. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  78. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  79. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  80. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  81. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  82. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  83. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  84. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  85. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  86. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  87. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  88. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  89. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  90. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  91. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  92. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  93. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  94. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  95. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  96. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  97. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  98. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  99. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  100. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  101. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  102. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  103. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  104. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  105. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  106. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  107. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  108. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  109. {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  110. {synapse-2.185.0 → synapse-2.186.0}/synapse/datamodel.py +0 -0
  111. {synapse-2.185.0 → synapse-2.186.0}/synapse/glob.py +0 -0
  112. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/__init__.py +0 -0
  113. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/agenda.py +0 -0
  114. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/aha.py +0 -0
  115. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/auth.py +0 -0
  116. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/autodoc.py +0 -0
  117. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/base.py +0 -0
  118. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/boss.py +0 -0
  119. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cache.py +0 -0
  120. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/certdir.py +0 -0
  121. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/chop.py +0 -0
  122. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cli.py +0 -0
  123. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cmd.py +0 -0
  124. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cmdr.py +0 -0
  125. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/config.py +0 -0
  126. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/const.py +0 -0
  127. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/coro.py +0 -0
  128. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/__init__.py +0 -0
  129. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/coin.py +0 -0
  130. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/ecc.py +0 -0
  131. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/passwd.py +0 -0
  132. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/rsa.py +0 -0
  133. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/tinfoil.py +0 -0
  134. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/datfile.py +0 -0
  135. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/dyndeps.py +0 -0
  136. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/encoding.py +0 -0
  137. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/gis.py +0 -0
  138. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/grammar.py +0 -0
  139. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hashitem.py +0 -0
  140. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hashset.py +0 -0
  141. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/health.py +0 -0
  142. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hive.py +0 -0
  143. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hiveauth.py +0 -0
  144. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/httpapi.py +0 -0
  145. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/ingest.py +0 -0
  146. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/interval.py +0 -0
  147. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/jsonstor.py +0 -0
  148. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/layer.py +0 -0
  149. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/link.py +0 -0
  150. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/lmdbslab.py +0 -0
  151. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/modelrev.py +0 -0
  152. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/module.py +0 -0
  153. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/modules.py +0 -0
  154. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/msgpack.py +0 -0
  155. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/multislabseqn.py +0 -0
  156. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/nexus.py +0 -0
  157. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/node.py +0 -0
  158. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/oauth.py +0 -0
  159. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/output.py +0 -0
  160. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/parser.py +0 -0
  161. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/__init__.py +0 -0
  162. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/common.py +0 -0
  163. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/darwin.py +0 -0
  164. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/freebsd.py +0 -0
  165. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/linux.py +0 -0
  166. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/windows.py +0 -0
  167. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/queue.py +0 -0
  168. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/ratelimit.py +0 -0
  169. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/reflect.py +0 -0
  170. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/rstorm.py +0 -0
  171. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/schemas.py +0 -0
  172. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/scope.py +0 -0
  173. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/scrape.py +0 -0
  174. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/share.py +0 -0
  175. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/slaboffs.py +0 -0
  176. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/slabseqn.py +0 -0
  177. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/spooled.py +0 -0
  178. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/storm.lark +0 -0
  179. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/storm.py +0 -0
  180. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/storm_format.py +0 -0
  181. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormctrl.py +0 -0
  182. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormhttp.py +0 -0
  183. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/__init__.py +0 -0
  184. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/aha.py +0 -0
  185. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/auth.py +0 -0
  186. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/backup.py +0 -0
  187. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/basex.py +0 -0
  188. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/cache.py +0 -0
  189. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/cell.py +0 -0
  190. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/compression.py +0 -0
  191. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/cortex.py +0 -0
  192. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/easyperm.py +0 -0
  193. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/env.py +0 -0
  194. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/ethereum.py +0 -0
  195. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/gen.py +0 -0
  196. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/gis.py +0 -0
  197. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/graph.py +0 -0
  198. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/hashes.py +0 -0
  199. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/hex.py +0 -0
  200. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/imap.py +0 -0
  201. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/infosec.py +0 -0
  202. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/ipv6.py +0 -0
  203. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/iters.py +0 -0
  204. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/json.py +0 -0
  205. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/log.py +0 -0
  206. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/macro.py +0 -0
  207. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/math.py +0 -0
  208. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/mime.py +0 -0
  209. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/model.py +0 -0
  210. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/modelext.py +0 -0
  211. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/notifications.py +0 -0
  212. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/oauth.py +0 -0
  213. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/pack.py +0 -0
  214. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/project.py +0 -0
  215. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/random.py +0 -0
  216. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/scrape.py +0 -0
  217. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/smtp.py +0 -0
  218. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/spooled.py +0 -0
  219. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/stats.py +0 -0
  220. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/stix.py +0 -0
  221. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/storm.py +0 -0
  222. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/tabular.py +0 -0
  223. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/vault.py +0 -0
  224. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/version.py +0 -0
  225. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/xml.py +0 -0
  226. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/yaml.py +0 -0
  227. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormsvc.py +0 -0
  228. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormtypes.py +0 -0
  229. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormwhois.py +0 -0
  230. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/structlog.py +0 -0
  231. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/task.py +0 -0
  232. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/thishost.py +0 -0
  233. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/thisplat.py +0 -0
  234. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/threads.py +0 -0
  235. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/time.py +0 -0
  236. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/trigger.py +0 -0
  237. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/urlhelp.py +0 -0
  238. {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/view.py +0 -0
  239. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/__init__.py +0 -0
  240. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/cvss.py +0 -0
  241. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/iana.py +0 -0
  242. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/iso3166.py +0 -0
  243. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/macho.py +0 -0
  244. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/pe.py +0 -0
  245. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/phonenum.py +0 -0
  246. {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/timezones.py +0 -0
  247. {synapse-2.185.0 → synapse-2.186.0}/synapse/mindmeld.py +0 -0
  248. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/__init__.py +0 -0
  249. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/auth.py +0 -0
  250. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/base.py +0 -0
  251. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/belief.py +0 -0
  252. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/biz.py +0 -0
  253. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/crypto.py +0 -0
  254. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/dns.py +0 -0
  255. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/doc.py +0 -0
  256. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/economic.py +0 -0
  257. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/entity.py +0 -0
  258. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/files.py +0 -0
  259. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/geopol.py +0 -0
  260. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/geospace.py +0 -0
  261. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/__init__.py +0 -0
  262. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/cn.py +0 -0
  263. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/intl.py +0 -0
  264. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/us.py +0 -0
  265. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/inet.py +0 -0
  266. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/infotech.py +0 -0
  267. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/language.py +0 -0
  268. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/material.py +0 -0
  269. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/math.py +0 -0
  270. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/media.py +0 -0
  271. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/orgs.py +0 -0
  272. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/person.py +0 -0
  273. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/planning.py +0 -0
  274. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/proj.py +0 -0
  275. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/science.py +0 -0
  276. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/syn.py +0 -0
  277. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/telco.py +0 -0
  278. {synapse-2.185.0 → synapse-2.186.0}/synapse/models/transport.py +0 -0
  279. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/__init__.py +0 -0
  280. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/aha.py +0 -0
  281. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/axon.py +0 -0
  282. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/cell.py +0 -0
  283. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/cortex.py +0 -0
  284. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/cryotank.py +0 -0
  285. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/jsonstor.py +0 -0
  286. {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/stemcell.py +0 -0
  287. {synapse-2.185.0 → synapse-2.186.0}/synapse/telepath.py +0 -0
  288. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/__init__.py +0 -0
  289. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  290. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/__init__.py +0 -0
  291. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  292. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  293. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  294. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  295. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  296. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  297. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  298. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  299. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  300. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  301. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  302. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  303. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  304. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/root.key +0 -0
  305. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  306. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/user.key +0 -0
  307. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  308. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  309. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/cpedata.json +0 -0
  310. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  311. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  312. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  313. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  314. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  315. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_export/basic.json +0 -0
  316. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  317. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  318. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  319. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  320. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  321. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  322. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  323. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  324. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  325. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  326. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  327. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormmod/common +0 -0
  328. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  329. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  330. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  331. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  332. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  333. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  334. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  335. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  336. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  337. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  338. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  339. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  340. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  341. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  342. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  343. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  344. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  345. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  346. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  347. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  348. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  349. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  350. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  351. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/test.dat +0 -0
  352. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  353. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/nopmod.py +0 -0
  354. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_assets.py +0 -0
  355. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_axon.py +0 -0
  356. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cmds_boss.py +0 -0
  357. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cmds_cortex.py +0 -0
  358. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cmds_hive.py +0 -0
  359. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_common.py +0 -0
  360. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cryotank.py +0 -0
  361. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_daemon.py +0 -0
  362. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_data.py +0 -0
  363. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_datamodel.py +0 -0
  364. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_exc.py +0 -0
  365. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_glob.py +0 -0
  366. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_init.py +0 -0
  367. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_agenda.py +0 -0
  368. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_aha.py +0 -0
  369. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_ast.py +0 -0
  370. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_auth.py +0 -0
  371. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_autodoc.py +0 -0
  372. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_boss.py +0 -0
  373. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_cache.py +0 -0
  374. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_certdir.py +0 -0
  375. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_chop.py +0 -0
  376. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_cli.py +0 -0
  377. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_config.py +0 -0
  378. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_const.py +0 -0
  379. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_coro.py +0 -0
  380. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  381. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  382. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  383. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  384. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_datfile.py +0 -0
  385. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  386. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_encoding.py +0 -0
  387. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_gis.py +0 -0
  388. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_grammar.py +0 -0
  389. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_hashitem.py +0 -0
  390. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_hashset.py +0 -0
  391. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_health.py +0 -0
  392. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_hive.py +0 -0
  393. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_httpapi.py +0 -0
  394. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_interval.py +0 -0
  395. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  396. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_layer.py +0 -0
  397. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_link.py +0 -0
  398. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  399. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_modelrev.py +0 -0
  400. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_module.py +0 -0
  401. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_msgpack.py +0 -0
  402. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  403. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_nexus.py +0 -0
  404. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_node.py +0 -0
  405. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_output.py +0 -0
  406. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  407. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_queue.py +0 -0
  408. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  409. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_reflect.py +0 -0
  410. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_rstorm.py +0 -0
  411. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_scope.py +0 -0
  412. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_scrape.py +0 -0
  413. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  414. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  415. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_snap.py +0 -0
  416. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_spooled.py +0 -0
  417. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_storm.py +0 -0
  418. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_storm_format.py +0 -0
  419. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  420. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  421. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  422. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  423. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  424. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  425. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  426. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  427. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  428. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  429. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  430. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  431. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  432. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  433. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  434. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  435. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  436. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  437. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  438. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  439. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  440. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  441. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  442. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  443. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  444. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  445. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  446. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  447. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  448. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  449. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  450. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  451. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  452. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  453. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  454. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  455. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  456. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  457. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  458. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  459. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormtypes.py +0 -0
  460. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  461. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_structlog.py +0 -0
  462. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_task.py +0 -0
  463. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_thishost.py +0 -0
  464. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_time.py +0 -0
  465. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_trigger.py +0 -0
  466. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_types.py +0 -0
  467. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  468. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_version.py +0 -0
  469. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_view.py +0 -0
  470. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  471. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  472. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_mindmeld.py +0 -0
  473. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_auth.py +0 -0
  474. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_base.py +0 -0
  475. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_belief.py +0 -0
  476. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_biz.py +0 -0
  477. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_crypto.py +0 -0
  478. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_dns.py +0 -0
  479. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_doc.py +0 -0
  480. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_economic.py +0 -0
  481. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_files.py +0 -0
  482. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_geopol.py +0 -0
  483. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_geospace.py +0 -0
  484. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_gov_cn.py +0 -0
  485. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_gov_intl.py +0 -0
  486. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_gov_us.py +0 -0
  487. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_inet.py +0 -0
  488. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_infotech.py +0 -0
  489. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_language.py +0 -0
  490. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_material.py +0 -0
  491. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_math.py +0 -0
  492. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_media.py +0 -0
  493. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_orgs.py +0 -0
  494. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_person.py +0 -0
  495. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_planning.py +0 -0
  496. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_proj.py +0 -0
  497. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_science.py +0 -0
  498. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_syn.py +0 -0
  499. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_telco.py +0 -0
  500. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_transport.py +0 -0
  501. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_axon.py +0 -0
  502. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_cortex.py +0 -0
  503. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_cryotank.py +0 -0
  504. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_stemcell.py +0 -0
  505. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_univ.py +0 -0
  506. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_telepath.py +0 -0
  507. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_aha.py +0 -0
  508. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_autodoc.py +0 -0
  509. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  510. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_backup.py +0 -0
  511. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_cellauth.py +0 -0
  512. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_changelog.py +0 -0
  513. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  514. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  515. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_csvtool.py +0 -0
  516. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  517. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_easycert.py +0 -0
  518. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_feed.py +0 -0
  519. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_genpkg.py +0 -0
  520. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_guid.py +0 -0
  521. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  522. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_hiveload.py +0 -0
  523. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_hivesave.py +0 -0
  524. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  525. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_livebackup.py +0 -0
  526. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_modrole.py +0 -0
  527. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_moduser.py +0 -0
  528. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_promote.py +0 -0
  529. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_pullfile.py +0 -0
  530. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_pushfile.py +0 -0
  531. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_reload.py +0 -0
  532. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_rstorm.py +0 -0
  533. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_storm.py +0 -0
  534. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_utils.py +0 -0
  535. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_utils_getrefs.py +0 -0
  536. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_utils_stormcov.py +0 -0
  537. {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/utils.py +0 -0
  538. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/__init__.py +0 -0
  539. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/__init__.py +0 -0
  540. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/list.py +0 -0
  541. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/provision/__init__.py +0 -0
  542. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/autodoc.py +0 -0
  543. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/axon2axon.py +0 -0
  544. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/backup.py +0 -0
  545. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cellauth.py +0 -0
  546. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/changelog.py +0 -0
  547. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cmdr.py +0 -0
  548. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cryo/__init__.py +0 -0
  549. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cryo/cat.py +0 -0
  550. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cryo/list.py +0 -0
  551. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/csvtool.py +0 -0
  552. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/docker/__init__.py +0 -0
  553. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/docker/validate.py +0 -0
  554. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/easycert.py +0 -0
  555. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/feed.py +0 -0
  556. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/genpkg.py +0 -0
  557. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/guid.py +0 -0
  558. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/healthcheck.py +0 -0
  559. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/hive/__init__.py +0 -0
  560. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/hive/load.py +0 -0
  561. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/hive/save.py +0 -0
  562. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/json2mpk.py +0 -0
  563. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/modrole.py +0 -0
  564. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/moduser.py +0 -0
  565. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/pullfile.py +0 -0
  566. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/pushfile.py +0 -0
  567. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/reload.py +0 -0
  568. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/rstorm.py +0 -0
  569. {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/storm.py +0 -0
  570. {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/__init__.py +0 -0
  571. {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/getrefs.py +0 -0
  572. {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/stormcov/__init__.py +0 -0
  573. {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/stormcov/plugin.py +0 -0
  574. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/__init__.py +0 -0
  575. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  576. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  577. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/base58.py +0 -0
  578. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/convert.py +0 -0
  579. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  580. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  581. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  582. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/LICENSE +0 -0
  583. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/__init__.py +0 -0
  584. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  585. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  586. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  587. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  588. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  589. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  590. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  591. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  592. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  593. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  594. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  595. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  596. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  597. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  598. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  599. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  600. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  601. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/utils.py +0 -0
  602. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/LICENSE +0 -0
  603. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/__init__.py +0 -0
  604. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/constants.py +0 -0
  605. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  606. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  607. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  608. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  609. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  610. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  611. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  612. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  613. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  614. {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  615. {synapse-2.185.0 → synapse-2.186.0}/synapse.egg-info/dependency_links.txt +0 -0
  616. {synapse-2.185.0 → synapse-2.186.0}/synapse.egg-info/requires.txt +0 -0
  617. {synapse-2.185.0 → synapse-2.186.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.185.0
3
+ Version: 2.186.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
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.185.0'
7
+ version = '2.186.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -2056,9 +2056,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2056
2056
  continue
2057
2057
 
2058
2058
  if not regex.fullmatch(regx[i], parts[i]):
2059
- return False
2059
+ mesg = f'Tag part ({parts[i]}) of tag ({tagname}) does not match the tag model regex: [{regx[i]}]'
2060
+ return (False, mesg)
2060
2061
 
2061
- return True
2062
+ return (True, None)
2062
2063
 
2063
2064
  async def getTagPrune(self, tagname):
2064
2065
  return self.tagprune.get(tagname)
@@ -141,6 +141,8 @@ class BadTag(SynErr): pass
141
141
  class BadTime(SynErr): pass
142
142
  class BadUrl(SynErr): pass
143
143
 
144
+ class TypeMismatch(SynErr): pass
145
+
144
146
  class CantDelCmd(SynErr): pass
145
147
  class CantDelNode(SynErr): pass
146
148
  class CantDelForm(SynErr): pass
@@ -4579,7 +4579,7 @@ class EditTagAdd(Edit):
4579
4579
  else:
4580
4580
  oper_offset = 0
4581
4581
 
4582
- excignore = (s_exc.BadTypeValu, s_exc.BadTag) if oper_offset == 1 else ()
4582
+ excignore = (s_exc.BadTypeValu,) if oper_offset == 1 else ()
4583
4583
 
4584
4584
  hasval = len(self.kids) > 2 + oper_offset
4585
4585
 
@@ -35,6 +35,7 @@ import synapse.lib.boss as s_boss
35
35
  import synapse.lib.coro as s_coro
36
36
  import synapse.lib.hive as s_hive
37
37
  import synapse.lib.link as s_link
38
+ import synapse.lib.task as s_task
38
39
  import synapse.lib.cache as s_cache
39
40
  import synapse.lib.const as s_const
40
41
  import synapse.lib.drive as s_drive
@@ -206,6 +207,14 @@ class CellApi(s_base.Base):
206
207
  async def initCellApi(self):
207
208
  pass
208
209
 
210
+ @adminapi(log=True)
211
+ async def freeze(self, timeout=30):
212
+ return await self.cell.freeze(timeout=timeout)
213
+
214
+ @adminapi(log=True)
215
+ async def resume(self):
216
+ return await self.cell.resume()
217
+
209
218
  async def allowed(self, perm, default=None):
210
219
  '''
211
220
  Check if the user has the requested permission.
@@ -1102,6 +1111,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
1102
1111
  self.auth = None
1103
1112
  self.cellparent = parent
1104
1113
  self.sessions = {}
1114
+ self.paused = False
1105
1115
  self.isactive = False
1106
1116
  self.activebase = None
1107
1117
  self.inaugural = False
@@ -1767,8 +1777,11 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
1767
1777
 
1768
1778
  return await self.drive.addItemInfo(info, path=path, reldir=reldir)
1769
1779
 
1770
- async def getDriveInfo(self, iden):
1771
- return self.drive.getItemInfo(iden)
1780
+ async def getDriveInfo(self, iden, typename=None):
1781
+ return self.drive.getItemInfo(iden, typename=typename)
1782
+
1783
+ def reqDriveInfo(self, iden, typename=None):
1784
+ return self.drive.reqItemInfo(iden, typename=typename)
1772
1785
 
1773
1786
  async def getDrivePath(self, path, reldir=s_drive.rootdir):
1774
1787
  '''
@@ -4461,6 +4474,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
4461
4474
  'run': await self.getCellRunId(),
4462
4475
  'type': self.getCellType(),
4463
4476
  'iden': self.getCellIden(),
4477
+ 'paused': self.paused,
4464
4478
  'active': self.isactive,
4465
4479
  'started': self.startms,
4466
4480
  'ready': self.nexsroot.ready.is_set(),
@@ -4932,3 +4946,52 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
4932
4946
 
4933
4947
  key = tuple(sorted(opts.items()))
4934
4948
  return self._sslctx_cache.get(key)
4949
+
4950
+ async def freeze(self, timeout=30):
4951
+
4952
+ if self.paused:
4953
+ mesg = 'The service is already frozen.'
4954
+ raise s_exc.BadState(mesg=mesg)
4955
+
4956
+ logger.warning(f'Freezing service for volume snapshot.')
4957
+
4958
+ logger.warning('...acquiring nexus lock to prevent edits.')
4959
+
4960
+ try:
4961
+ await asyncio.wait_for(self.nexslock.acquire(), timeout=timeout)
4962
+
4963
+ except asyncio.TimeoutError:
4964
+ logger.warning('...nexus lock acquire timed out!')
4965
+ logger.warning('Aborting freeze and resuming normal operation.')
4966
+
4967
+ mesg = 'Nexus lock acquire timed out.'
4968
+ raise s_exc.TimeOut(mesg=mesg)
4969
+
4970
+ self.paused = True
4971
+
4972
+ try:
4973
+
4974
+ logger.warning('...committing pending transactions.')
4975
+ await self.slab.syncLoopOnce()
4976
+
4977
+ logger.warning('...flushing dirty buffers to disk.')
4978
+ await s_task.executor(os.sync)
4979
+
4980
+ logger.warning('...done!')
4981
+
4982
+ except Exception:
4983
+ self.paused = False
4984
+ self.nexslock.release()
4985
+ logger.exception('Failed to freeze. Resuming normal operation.')
4986
+ raise
4987
+
4988
+ async def resume(self):
4989
+
4990
+ if not self.paused:
4991
+ mesg = 'The service is not frozen.'
4992
+ raise s_exc.BadState(mesg=mesg)
4993
+
4994
+ logger.warning('Resuming normal operations from a freeze.')
4995
+
4996
+ self.paused = False
4997
+ self.nexslock.release()
@@ -22,6 +22,7 @@ LKEY_INFO = b'\x02' # <bidn> = <info>
22
22
  LKEY_DATA = b'\x03' # <bidn> <vers> = <data>
23
23
  LKEY_VERS = b'\x04' # <bidn> <vers> = <versinfo>
24
24
  LKEY_INFO_BYTYPE = b'\x05' # <type> 00 <bidn> = 01
25
+ LKEY_TYPE_VERS = b'\x06' # <type> = <uint64>
25
26
 
26
27
  rootdir = '00000000000000000000000000000000'
27
28
 
@@ -60,24 +61,36 @@ class Drive(s_base.Base):
60
61
 
61
62
  return [reqValidName(p.strip().lower()) for p in path]
62
63
 
63
- def getItemInfo(self, iden):
64
- return self._getItemInfo(s_common.uhex(iden))
64
+ def _reqInfoType(self, info, typename):
65
+ infotype = info.get('type')
66
+ if infotype != typename:
67
+ mesg = f'Drive item has the wrong type. Expected: {typename} got {infotype}.'
68
+ raise s_exc.TypeMismatch(mesg=mesg, expected=typename, got=infotype)
69
+
70
+ def getItemInfo(self, iden, typename=None):
71
+ info = self._getItemInfo(s_common.uhex(iden))
72
+ if typename is not None:
73
+ self._reqInfoType(info, typename)
74
+ return info
65
75
 
66
76
  def _getItemInfo(self, bidn):
67
77
  byts = self.slab.get(LKEY_INFO + bidn, db=self.dbname)
68
78
  if byts is not None:
69
79
  return s_msgpack.un(byts)
70
80
 
71
- def reqItemInfo(self, iden):
72
- return self._reqItemInfo(s_common.uhex(iden))
81
+ def reqItemInfo(self, iden, typename=None):
82
+ return self._reqItemInfo(s_common.uhex(iden), typename=typename)
73
83
 
74
- def _reqItemInfo(self, bidn):
84
+ def _reqItemInfo(self, bidn, typename=None):
75
85
  info = self._getItemInfo(bidn)
76
- if info is not None:
77
- return info
86
+ if info is None:
87
+ mesg = f'No drive item with ID {s_common.ehex(bidn)}.'
88
+ raise s_exc.NoSuchIden(mesg=mesg)
78
89
 
79
- mesg = f'No drive item with ID {s_common.ehex(bidn)}.'
80
- raise s_exc.NoSuchIden(mesg=mesg)
90
+ if typename is not None:
91
+ self._reqInfoType(info, typename)
92
+
93
+ return info
81
94
 
82
95
  async def setItemPath(self, iden, path):
83
96
  '''
@@ -494,10 +507,27 @@ class Drive(s_base.Base):
494
507
  if byts is not None:
495
508
  return s_msgpack.un(byts)
496
509
 
497
- async def setTypeSchema(self, typename, schema, callback=None):
510
+ def getTypeSchemaVersion(self, typename):
511
+ verskey = LKEY_TYPE_VERS + typename.encode()
512
+ byts = self.slab.get(verskey, db=self.dbname)
513
+ if byts is not None:
514
+ return s_msgpack.un(byts)
515
+
516
+ async def setTypeSchema(self, typename, schema, callback=None, vers=None):
498
517
 
499
518
  reqValidName(typename)
500
519
 
520
+ if vers is not None:
521
+ vers = int(vers)
522
+ curv = self.getTypeSchemaVersion(typename)
523
+ if curv is not None:
524
+ if vers == curv:
525
+ return False
526
+
527
+ if vers < curv:
528
+ mesg = f'Cannot downgrade drive schema version for type {typename}.'
529
+ raise s_exc.BadVersion(mesg=mesg)
530
+
501
531
  vtor = s_config.getJsValidator(schema)
502
532
 
503
533
  self.validators[typename] = vtor
@@ -506,6 +536,10 @@ class Drive(s_base.Base):
506
536
 
507
537
  self.slab.put(lkey, s_msgpack.en(schema), db=self.dbname)
508
538
 
539
+ if vers is not None:
540
+ verskey = LKEY_TYPE_VERS + typename.encode()
541
+ self.slab.put(verskey, s_msgpack.en(vers), db=self.dbname)
542
+
509
543
  if callback is not None:
510
544
  async for info in self.getItemsByType(typename):
511
545
  bidn = s_common.uhex(info.get('iden'))
@@ -516,6 +550,7 @@ class Drive(s_base.Base):
516
550
  vtor(data)
517
551
  self.slab.put(LKEY_DATA + bidn + versindx, s_msgpack.en(data), db=self.dbname)
518
552
  await asyncio.sleep(0)
553
+ return True
519
554
 
520
555
  async def getItemsByType(self, typename):
521
556
  tkey = typename.encode() + b'\x00'
@@ -1559,12 +1559,6 @@ class Snap(s_base.Base):
1559
1559
  return await self.tagnorms.aget(tagname)
1560
1560
 
1561
1561
  async def _getTagNorm(self, tagname):
1562
-
1563
- if not self.core.isTagValid(tagname):
1564
- mesg = f'The tag ({tagname}) does not meet the regex for the tree.'
1565
- await self._raiseOnStrict(s_exc.BadTag, mesg)
1566
- return None
1567
-
1568
1562
  try:
1569
1563
  return self.core.model.type('syn:tag').norm(tagname)
1570
1564
  except s_exc.BadTypeValu as e:
@@ -1903,6 +1903,12 @@ class Tag(Str):
1903
1903
  mesg = f'Tag does not match tagre: [{s_grammar.tagre.pattern}]'
1904
1904
  raise s_exc.BadTypeValu(valu=norm, name=self.name, mesg=mesg)
1905
1905
 
1906
+ core = self.modl.core
1907
+ if core is not None:
1908
+ (ok, mesg) = core.isTagValid(norm)
1909
+ if not ok:
1910
+ raise s_exc.BadTypeValu(valu=norm, name=self.name, mesg=mesg)
1911
+
1906
1912
  return norm, {'subs': subs, 'toks': toks}
1907
1913
 
1908
1914
  def _normPyStr(self, text):
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
223
223
  ##############################################################################
224
224
  # The following are touched during the release process by bumpversion.
225
225
  # Do not modify these directly.
226
- version = (2, 185, 0)
226
+ version = (2, 186, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = 'c2ef0eded02f8ac5f34704a117947f44095f41f4'
228
+ commit = 'ffa4abc52513d4b8ac592496322227eed9e07dc5'
@@ -351,6 +351,9 @@ class RiskModule(s_module.CoreModule):
351
351
  ('mitre:attack:software', ('it:mitre:attack:software', {}), {
352
352
  'doc': 'A mapping to a MITRE ATT&CK software if applicable.'}),
353
353
 
354
+ ('id', ('str', {'strip': True}), {
355
+ 'doc': 'An ID for the tool.'}),
356
+
354
357
  )),
355
358
  ('risk:mitigation:type:taxonomy', {}, ()),
356
359
  ('risk:mitigation', {}, (
@@ -7202,16 +7202,16 @@ class CortexBasicTest(s_t_utils.SynTest):
7202
7202
 
7203
7203
  nodes = await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.12345 ]')
7204
7204
 
7205
- with self.raises(s_exc.BadTag):
7205
+ with self.raises(s_exc.BadTypeValu):
7206
7206
  await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.foo ]')
7207
7207
 
7208
- with self.raises(s_exc.BadTag):
7208
+ with self.raises(s_exc.BadTypeValu):
7209
7209
  await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.hehe ]')
7210
7210
 
7211
- with self.raises(s_exc.BadTag):
7211
+ with self.raises(s_exc.BadTypeValu):
7212
7212
  await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.123456 ]')
7213
7213
 
7214
- with self.raises(s_exc.BadTag):
7214
+ with self.raises(s_exc.BadTypeValu):
7215
7215
  await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.12345 ]')
7216
7216
 
7217
7217
  nodes = await core.nodes('[ test:str=beep +?#cno.cve.12345 ]')
@@ -7229,9 +7229,14 @@ class CortexBasicTest(s_t_utils.SynTest):
7229
7229
  await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.hehe ]')
7230
7230
 
7231
7231
  await core.setTagModel('cno.cve', 'regex', (None, None, '[0-9]{4}', '[0-9]{5}'))
7232
- with self.raises(s_exc.BadTag):
7232
+ with self.raises(s_exc.BadTypeValu):
7233
7233
  await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.haha ]')
7234
7234
 
7235
+ self.eq((False, None), await core.callStorm('return($lib.trycast(syn:tag, cno.cve.2021.haha))'))
7236
+
7237
+ with self.raises(s_exc.BadTypeValu):
7238
+ await core.callStorm('return($lib.cast(syn:tag, cno.cve.2021.haha))')
7239
+
7235
7240
  self.none(await core.callStorm('$lib.model.tags.del(cno.cve)'))
7236
7241
  self.none(await core.callStorm('return($lib.model.tags.get(cno.cve))'))
7237
7242
 
@@ -378,7 +378,7 @@ class BaseTest(s_t_utils.SynTest):
378
378
  proc = ctx.Process(target=block_processing, args=(evt1,))
379
379
  proc.start()
380
380
 
381
- self.true(evt1.wait(timeout=10))
381
+ self.true(evt1.wait(timeout=30))
382
382
  os.kill(proc.pid, signal.SIGTERM)
383
383
  proc.join(timeout=10)
384
384
  self.eq(proc.exitcode, 137)
@@ -396,7 +396,7 @@ class BaseTest(s_t_utils.SynTest):
396
396
  proc = ctx.Process(target=block_processing, args=(evt1,))
397
397
  proc.start()
398
398
 
399
- self.true(evt1.wait(timeout=10))
399
+ self.true(evt1.wait(timeout=30))
400
400
  os.kill(proc.pid, signal.SIGINT)
401
401
 
402
402
  proc.join(timeout=10)
@@ -208,7 +208,12 @@ class CellTest(s_t_utils.SynTest):
208
208
 
209
209
  # TODO how to handle iden match with additional property mismatch
210
210
 
211
- await cell.drive.setTypeSchema('woot', testDataSchema_v0)
211
+ self.true(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=0))
212
+ self.true(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=1))
213
+ self.false(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=1))
214
+
215
+ with self.raises(s_exc.BadVersion):
216
+ await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=0)
212
217
 
213
218
  info = {'name': 'win32k.sys', 'type': 'woot'}
214
219
  info = await cell.addDriveItem(info, reldir=rootdir)
@@ -284,6 +289,12 @@ class CellTest(s_t_utils.SynTest):
284
289
  versinfo, data = await cell.getDriveData(iden, vers=(1, 1, 0))
285
290
  self.eq('woot', data.get('woot'))
286
291
 
292
+ with self.raises(s_exc.NoSuchIden):
293
+ await cell.reqDriveInfo('d7d6107b200e2c039540fc627bc5537d')
294
+
295
+ with self.raises(s_exc.TypeMismatch):
296
+ await cell.getDriveInfo(iden, typename='newp')
297
+
287
298
  self.nn(await cell.getDriveInfo(iden))
288
299
  self.len(2, [vers async for vers in cell.getDriveDataVersions(iden)])
289
300
 
@@ -1899,7 +1910,7 @@ class CellTest(s_t_utils.SynTest):
1899
1910
  proc = ctx.Process(target=lock_target, args=(dirn, evt1,))
1900
1911
  proc.start()
1901
1912
 
1902
- self.true(evt1.wait(timeout=10))
1913
+ self.true(evt1.wait(timeout=30))
1903
1914
 
1904
1915
  with self.raises(s_exc.FatalErr) as cm:
1905
1916
  async with await s_cell.Cell.anit(dirn) as cell:
@@ -2600,7 +2611,7 @@ class CellTest(s_t_utils.SynTest):
2600
2611
  proc = ctx.Process(target=reload_target, args=(dirn, evt1, evt2))
2601
2612
  proc.start()
2602
2613
 
2603
- self.true(evt1.wait(timeout=10))
2614
+ self.true(evt1.wait(timeout=30))
2604
2615
 
2605
2616
  async with await s_telepath.openurl(f'cell://{dirn}') as prox:
2606
2617
  cnfo = await prox.getCellInfo()
@@ -3016,7 +3027,7 @@ class CellTest(s_t_utils.SynTest):
3016
3027
  self.eq(users, s_t_utils.deguidify(json.dumps(await core.callStorm('return($lib.auth.users.list())'))))
3017
3028
  self.eq(gates, s_t_utils.deguidify(json.dumps(await core.callStorm('return($lib.auth.gates.list())'))))
3018
3029
 
3019
- with self.raises(s_exc.BadTag):
3030
+ with self.raises(s_exc.BadTypeValu):
3020
3031
  await core.nodes('[ it:dev:str=foo +#test.newp ]')
3021
3032
 
3022
3033
  stream.seek(0)
@@ -577,6 +577,7 @@ class RiskModelTest(s_t_utils.SynTest):
577
577
  :techniques=(*,)
578
578
  :tag=cno.mal.cobaltstrike
579
579
  :mitre:attack:software=S0001
580
+ :id=" AAAbbb123 "
580
581
 
581
582
  :sophistication=high
582
583
  :availability=public
@@ -593,6 +594,7 @@ class RiskModelTest(s_t_utils.SynTest):
593
594
  self.eq(1643673600000, nodes[0].get('reporter:discovered'))
594
595
  self.eq(1675209600000, nodes[0].get('reporter:published'))
595
596
  self.eq('S0001', nodes[0].get('mitre:attack:software'))
597
+ self.eq('AAAbbb123', nodes[0].get('id'))
596
598
 
597
599
  self.eq('cobaltstrike', nodes[0].get('soft:name'))
598
600
  self.eq(('beacon',), nodes[0].get('soft:names'))
@@ -0,0 +1,47 @@
1
+ from unittest import mock
2
+
3
+ import synapse.lib.output as s_output
4
+ import synapse.tools.snapshot as s_tools_snapshot
5
+
6
+ import synapse.tests.utils as s_t_utils
7
+
8
+ class PromoteToolTest(s_t_utils.SynTest):
9
+
10
+ async def test_tool_snapshot(self):
11
+
12
+ async with self.getTestCore() as core:
13
+
14
+ lurl = core.getLocalUrl()
15
+
16
+ self.eq(0, await s_tools_snapshot.main(('freeze', '--svcurl', lurl)))
17
+ self.true(core.paused)
18
+
19
+ outp = s_output.OutPutStr()
20
+ self.eq(1, await s_tools_snapshot.main(('freeze', '--svcurl', lurl), outp=outp))
21
+ self.isin('ERROR BadState', str(outp))
22
+
23
+ self.eq(0, await s_tools_snapshot.main(('resume', '--svcurl', lurl)))
24
+ self.false(core.paused)
25
+
26
+ outp = s_output.OutPutStr()
27
+ self.eq(1, await s_tools_snapshot.main(('resume', '--svcurl', lurl), outp=outp))
28
+ self.isin('ERROR BadState', str(outp))
29
+
30
+ outp = s_output.OutPutStr()
31
+ async with core.nexslock:
32
+ argv = ('freeze', '--svcurl', lurl, '--timeout', '1')
33
+ self.eq(1, await s_tools_snapshot.main(argv, outp=outp))
34
+ self.isin('ERROR TimeOut', str(outp))
35
+
36
+ def boom():
37
+ raise Exception('boom')
38
+
39
+ outp = s_output.OutPutStr()
40
+ with mock.patch('os.sync', boom):
41
+ self.eq(1, await s_tools_snapshot.main(('freeze', '--svcurl', lurl), outp=outp))
42
+ self.false(core.paused)
43
+ self.isin('ERROR SynErr: boom', str(outp))
44
+
45
+ outp = s_output.OutPutStr()
46
+ self.eq(1, await s_tools_snapshot.main(('freeze', '--svcurl', 'newp://newp'), outp=outp))
47
+ self.isin('ERROR BadUrl', str(outp))
@@ -18,7 +18,9 @@ Examples:
18
18
 
19
19
  async def main(argv, outp=s_output.stdout):
20
20
 
21
- pars = argparse.ArgumentParser(prog='synapse.tools.aha.clone', description=descr)
21
+ pars = argparse.ArgumentParser(prog='synapse.tools.aha.clone', description=descr,
22
+ formatter_class=argparse.RawDescriptionHelpFormatter)
23
+
22
24
  pars.add_argument('dnsname', help='The DNS name of the new AHA server.')
23
25
  pars.add_argument('--port', type=int, default=27492, help='The port that the new AHA server should listen on.')
24
26
  pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
@@ -51,7 +51,7 @@ async def _main(argv, outp):
51
51
 
52
52
  def getArgParser():
53
53
  desc = 'CLI tool to generate simple x509 certificates from an Aha server.'
54
- pars = argparse.ArgumentParser(prog='aha.easycert', description=desc)
54
+ pars = argparse.ArgumentParser(prog='synapse.tools.aha.easycert', description=desc)
55
55
 
56
56
  pars.add_argument('-a', '--aha', required=True, # type=str,
57
57
  help='Aha server to connect too.')
@@ -21,7 +21,9 @@ Examples:
21
21
 
22
22
  async def main(argv, outp=s_output.stdout):
23
23
 
24
- pars = argparse.ArgumentParser(prog='provision', description=descr)
24
+ pars = argparse.ArgumentParser(prog='synapse.tools.aha.enroll', description=descr,
25
+ formatter_class=argparse.RawDescriptionHelpFormatter)
26
+
25
27
  pars.add_argument('onceurl', help='The one-time use AHA user enrollment URL.')
26
28
  opts = pars.parse_args(argv)
27
29
 
@@ -23,7 +23,9 @@ Examples:
23
23
 
24
24
  async def main(argv, outp=s_output.stdout):
25
25
 
26
- pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.service', description=descr)
26
+ pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.service', description=descr,
27
+ formatter_class=argparse.RawDescriptionHelpFormatter)
28
+
27
29
  pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
28
30
  pars.add_argument('--user', help='Provision the new service with the username.')
29
31
  pars.add_argument('--cellyaml', help='Specify the path to a YAML file containing config options for the service.')
@@ -22,7 +22,9 @@ Examples:
22
22
 
23
23
  async def main(argv, outp=s_output.stdout):
24
24
 
25
- pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.user', description=descr)
25
+ pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.user', description=descr,
26
+ formatter_class=argparse.RawDescriptionHelpFormatter)
27
+
26
28
  pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
27
29
  pars.add_argument('--again', default=False, action='store_true', help='Generate a new enroll URL for an existing user.')
28
30
  pars.add_argument('--only-url', help='Only output the URL upon successful execution',
@@ -20,7 +20,9 @@ Examples:
20
20
 
21
21
  async def main(argv, outp=s_output.stdout):
22
22
 
23
- pars = argparse.ArgumentParser(prog='livebackup', description=descr)
23
+ pars = argparse.ArgumentParser(prog='synapse.tools.livebackup', description=descr,
24
+ formatter_class=argparse.RawDescriptionHelpFormatter)
25
+
24
26
  pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL of the Synapse service.')
25
27
  pars.add_argument('--name', default=None, help='Specify a name for the backup. Defaults to an automatically generated timestamp.')
26
28
 
@@ -18,9 +18,15 @@ Example (being run from a Cortex mirror docker container):
18
18
 
19
19
  async def main(argv, outp=s_output.stdout):
20
20
 
21
- pars = argparse.ArgumentParser(prog='provision', description=descr)
22
- pars.add_argument('--svcurl', default='cell:///vertex/storage', help='The telepath URL of the Synapse service.')
23
- pars.add_argument('--failure', default=False, action='store_true', help='Promotion is due to leader being offline. Graceful handoff is not possible.')
21
+ pars = argparse.ArgumentParser(prog='synapse.tools.promote', description=descr,
22
+ formatter_class=argparse.RawDescriptionHelpFormatter)
23
+
24
+ pars.add_argument('--svcurl', default='cell:///vertex/storage',
25
+ help='The telepath URL of the Synapse service.')
26
+
27
+ pars.add_argument('--failure', default=False, action='store_true',
28
+ help='Promotion is due to leader being offline. Graceful handoff is not possible.')
29
+
24
30
  # TODO pars.add_argument('--timeout', type=float, default=30.0, help='The maximum timeout to wait for the mirror to catch up.')
25
31
 
26
32
  opts = pars.parse_args(argv)
@@ -0,0 +1,69 @@
1
+ import sys
2
+ import asyncio
3
+ import logging
4
+ import argparse
5
+
6
+ import synapse.exc as s_exc
7
+ import synapse.telepath as s_telepath
8
+
9
+ import synapse.lib.output as s_output
10
+
11
+ logger = logging.getLogger(__name__)
12
+
13
+ desc = '''
14
+ Command line tool to freeze/resume service operations to allow
15
+ system admins to generate a transactionally consistent volume
16
+ snapshot using 3rd party tools.
17
+
18
+ The use pattern should be::
19
+
20
+ python -m synapse.tools.snapshot freeze
21
+
22
+ <generate volume snapshot using 3rd party tools>
23
+
24
+ python -m synapse.tools.snapshot resume
25
+
26
+ The tool will set the process exit code to 0 on success.
27
+ '''
28
+
29
+ async def main(argv, outp=s_output.stdout):
30
+
31
+ pars = argparse.ArgumentParser('synapse.tools.snapshot',
32
+ description=desc,
33
+ formatter_class=argparse.RawDescriptionHelpFormatter)
34
+
35
+ subs = pars.add_subparsers(required=True, title='commands', dest='cmd')
36
+
37
+ freeze = subs.add_parser('freeze', help='Suspend edits and sync changes to disk.')
38
+ freeze.add_argument('--timeout', type=int, default=120,
39
+ help='Maximum time to wait for the nexus lock.')
40
+
41
+ freeze.add_argument('--svcurl', default='cell:///vertex/storage',
42
+ help='The telepath URL of the Synapse service.')
43
+
44
+ resume = subs.add_parser('resume', help='Resume edits and continue normal operation.')
45
+ resume.add_argument('--svcurl', default='cell:///vertex/storage',
46
+ help='The telepath URL of the Synapse service.')
47
+
48
+ opts = pars.parse_args(argv)
49
+
50
+ try:
51
+ async with s_telepath.withTeleEnv():
52
+
53
+ async with await s_telepath.openurl(opts.svcurl) as proxy:
54
+
55
+ if opts.cmd == 'freeze':
56
+ await proxy.freeze(timeout=opts.timeout)
57
+ return 0
58
+
59
+ if opts.cmd == 'resume':
60
+ await proxy.resume()
61
+ return 0
62
+
63
+ except s_exc.SynErr as e:
64
+ mesg = e.errinfo.get('mesg')
65
+ outp.printf(f'ERROR {e.__class__.__name__}: {mesg}')
66
+ return 1
67
+
68
+ if __name__ == '__main__': # pragma: no cover
69
+ sys.exit(asyncio.run(main(sys.argv[1:])))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.185.0
3
+ Version: 2.186.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