synapse 2.172.0__tar.gz → 2.174.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 (581) hide show
  1. {synapse-2.172.0/synapse.egg-info → synapse-2.174.0}/PKG-INFO +1 -1
  2. {synapse-2.172.0 → synapse-2.174.0}/pyproject.toml +1 -1
  3. {synapse-2.172.0 → synapse-2.174.0}/synapse/axon.py +1 -1
  4. {synapse-2.172.0 → synapse-2.174.0}/synapse/common.py +19 -5
  5. {synapse-2.172.0 → synapse-2.174.0}/synapse/cortex.py +46 -10
  6. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/agenda.py +6 -0
  7. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/ast.py +1 -1
  8. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hiveauth.py +81 -4
  9. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/layer.py +8 -8
  10. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/lmdbslab.py +11 -1
  11. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/modelrev.py +17 -1
  12. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/modules.py +1 -0
  13. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/msgpack.py +25 -3
  14. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/nexus.py +26 -22
  15. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/schemas.py +31 -0
  16. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormsvc.py +30 -11
  17. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormtypes.py +23 -9
  18. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/trigger.py +0 -4
  19. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/version.py +2 -2
  20. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/view.py +2 -0
  21. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/crypto.py +22 -0
  22. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/economic.py +23 -2
  23. synapse-2.174.0/synapse/models/entity.py +16 -0
  24. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/files.py +4 -1
  25. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/geopol.py +3 -0
  26. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/orgs.py +7 -5
  27. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/person.py +5 -2
  28. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/planning.py +5 -0
  29. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cortex.py +13 -0
  30. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_agenda.py +129 -1
  31. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_ast.py +21 -0
  32. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_grammar.py +4 -0
  33. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hiveauth.py +139 -1
  34. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_httpapi.py +1 -0
  35. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_layer.py +67 -13
  36. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_lmdbslab.py +16 -1
  37. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_modelrev.py +57 -0
  38. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_msgpack.py +58 -8
  39. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_nexus.py +44 -1
  40. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_storm.py +7 -7
  41. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormsvc.py +128 -51
  42. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormtypes.py +43 -4
  43. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_trigger.py +23 -4
  44. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_crypto.py +6 -0
  45. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_economic.py +14 -1
  46. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_geopol.py +3 -0
  47. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_orgs.py +8 -2
  48. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_person.py +2 -0
  49. synapse-2.174.0/synapse/tools/changelog.py +236 -0
  50. {synapse-2.172.0 → synapse-2.174.0/synapse.egg-info}/PKG-INFO +1 -1
  51. {synapse-2.172.0 → synapse-2.174.0}/synapse.egg-info/SOURCES.txt +2 -0
  52. {synapse-2.172.0 → synapse-2.174.0}/LICENSE +0 -0
  53. {synapse-2.172.0 → synapse-2.174.0}/README.rst +0 -0
  54. {synapse-2.172.0 → synapse-2.174.0}/setup.cfg +0 -0
  55. {synapse-2.172.0 → synapse-2.174.0}/synapse/__init__.py +0 -0
  56. {synapse-2.172.0 → synapse-2.174.0}/synapse/cells.py +0 -0
  57. {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/__init__.py +0 -0
  58. {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/boss.py +0 -0
  59. {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/cortex.py +0 -0
  60. {synapse-2.172.0 → synapse-2.174.0}/synapse/cmds/hive.py +0 -0
  61. {synapse-2.172.0 → synapse-2.174.0}/synapse/cryotank.py +0 -0
  62. {synapse-2.172.0 → synapse-2.174.0}/synapse/daemon.py +0 -0
  63. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/__init__.py +0 -0
  64. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  65. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/attack-flow/README.md +0 -0
  66. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  67. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  68. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  69. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  70. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  71. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/iana.tlds.mpk +0 -0
  72. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/README.md +0 -0
  73. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  74. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  75. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  76. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  77. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  78. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  79. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  80. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  81. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  82. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  83. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  84. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  85. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  86. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  87. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  88. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  89. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  90. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  91. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  92. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  93. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  94. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  95. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  96. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  97. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  98. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  99. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  100. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  101. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  102. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  103. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  104. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  105. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  106. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  107. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  108. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  109. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  110. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  111. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  112. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  113. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  114. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  115. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  116. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  117. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  118. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  119. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  120. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  121. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  122. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  123. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  124. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  125. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  126. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  127. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  128. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  129. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  130. {synapse-2.172.0 → synapse-2.174.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  131. {synapse-2.172.0 → synapse-2.174.0}/synapse/datamodel.py +0 -0
  132. {synapse-2.172.0 → synapse-2.174.0}/synapse/exc.py +0 -0
  133. {synapse-2.172.0 → synapse-2.174.0}/synapse/glob.py +0 -0
  134. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/__init__.py +0 -0
  135. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/aha.py +0 -0
  136. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/autodoc.py +0 -0
  137. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/base.py +0 -0
  138. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/boss.py +0 -0
  139. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cache.py +0 -0
  140. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cell.py +0 -0
  141. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/certdir.py +0 -0
  142. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/chop.py +0 -0
  143. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cli.py +0 -0
  144. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cmd.py +0 -0
  145. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/cmdr.py +0 -0
  146. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/config.py +0 -0
  147. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/const.py +0 -0
  148. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/coro.py +0 -0
  149. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/__init__.py +0 -0
  150. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/coin.py +0 -0
  151. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/ecc.py +0 -0
  152. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/passwd.py +0 -0
  153. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/rsa.py +0 -0
  154. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/crypto/tinfoil.py +0 -0
  155. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/datfile.py +0 -0
  156. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/dyndeps.py +0 -0
  157. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/encoding.py +0 -0
  158. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/gis.py +0 -0
  159. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/grammar.py +0 -0
  160. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hashitem.py +0 -0
  161. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hashset.py +0 -0
  162. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/health.py +0 -0
  163. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/hive.py +0 -0
  164. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/httpapi.py +0 -0
  165. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/ingest.py +0 -0
  166. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/interval.py +0 -0
  167. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/jsonstor.py +0 -0
  168. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/jupyter.py +0 -0
  169. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/link.py +0 -0
  170. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/module.py +0 -0
  171. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/multislabseqn.py +0 -0
  172. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/node.py +0 -0
  173. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/oauth.py +0 -0
  174. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/output.py +0 -0
  175. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/parser.py +0 -0
  176. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/__init__.py +0 -0
  177. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/common.py +0 -0
  178. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/darwin.py +0 -0
  179. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/freebsd.py +0 -0
  180. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/linux.py +0 -0
  181. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/platforms/windows.py +0 -0
  182. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/queue.py +0 -0
  183. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/ratelimit.py +0 -0
  184. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/reflect.py +0 -0
  185. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/rstorm.py +0 -0
  186. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/scope.py +0 -0
  187. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/scrape.py +0 -0
  188. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/share.py +0 -0
  189. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/slaboffs.py +0 -0
  190. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/slabseqn.py +0 -0
  191. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/snap.py +0 -0
  192. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/spooled.py +0 -0
  193. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/storm.lark +0 -0
  194. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/storm.py +0 -0
  195. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/storm_format.py +0 -0
  196. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormctrl.py +0 -0
  197. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormhttp.py +0 -0
  198. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/__init__.py +0 -0
  199. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/aha.py +0 -0
  200. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/auth.py +0 -0
  201. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/backup.py +0 -0
  202. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/basex.py +0 -0
  203. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/cache.py +0 -0
  204. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/cell.py +0 -0
  205. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/compression.py +0 -0
  206. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/cortex.py +0 -0
  207. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/easyperm.py +0 -0
  208. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/env.py +0 -0
  209. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/ethereum.py +0 -0
  210. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/gen.py +0 -0
  211. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/gis.py +0 -0
  212. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/graph.py +0 -0
  213. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/hashes.py +0 -0
  214. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/hex.py +0 -0
  215. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/imap.py +0 -0
  216. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/infosec.py +0 -0
  217. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/ipv6.py +0 -0
  218. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/iters.py +0 -0
  219. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/json.py +0 -0
  220. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/log.py +0 -0
  221. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/macro.py +0 -0
  222. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/math.py +0 -0
  223. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/mime.py +0 -0
  224. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/model.py +0 -0
  225. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/modelext.py +0 -0
  226. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/notifications.py +0 -0
  227. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/oauth.py +0 -0
  228. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/pack.py +0 -0
  229. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/project.py +0 -0
  230. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/random.py +0 -0
  231. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/scrape.py +0 -0
  232. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/smtp.py +0 -0
  233. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/spooled.py +0 -0
  234. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/stats.py +0 -0
  235. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/stix.py +0 -0
  236. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/storm.py +0 -0
  237. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/vault.py +0 -0
  238. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/version.py +0 -0
  239. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/xml.py +0 -0
  240. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormlib/yaml.py +0 -0
  241. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/stormwhois.py +0 -0
  242. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/structlog.py +0 -0
  243. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/task.py +0 -0
  244. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/thishost.py +0 -0
  245. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/thisplat.py +0 -0
  246. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/threads.py +0 -0
  247. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/time.py +0 -0
  248. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/types.py +0 -0
  249. {synapse-2.172.0 → synapse-2.174.0}/synapse/lib/urlhelp.py +0 -0
  250. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/__init__.py +0 -0
  251. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/cvss.py +0 -0
  252. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/iana.py +0 -0
  253. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/iso3166.py +0 -0
  254. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/macho.py +0 -0
  255. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/pe.py +0 -0
  256. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/phonenum.py +0 -0
  257. {synapse-2.172.0 → synapse-2.174.0}/synapse/lookup/timezones.py +0 -0
  258. {synapse-2.172.0 → synapse-2.174.0}/synapse/mindmeld.py +0 -0
  259. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/__init__.py +0 -0
  260. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/auth.py +0 -0
  261. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/base.py +0 -0
  262. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/belief.py +0 -0
  263. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/biz.py +0 -0
  264. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/dns.py +0 -0
  265. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/geospace.py +0 -0
  266. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/__init__.py +0 -0
  267. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/cn.py +0 -0
  268. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/intl.py +0 -0
  269. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/gov/us.py +0 -0
  270. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/inet.py +0 -0
  271. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/infotech.py +0 -0
  272. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/language.py +0 -0
  273. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/material.py +0 -0
  274. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/media.py +0 -0
  275. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/proj.py +0 -0
  276. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/risk.py +0 -0
  277. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/science.py +0 -0
  278. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/syn.py +0 -0
  279. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/telco.py +0 -0
  280. {synapse-2.172.0 → synapse-2.174.0}/synapse/models/transport.py +0 -0
  281. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/__init__.py +0 -0
  282. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/aha.py +0 -0
  283. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/axon.py +0 -0
  284. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/cell.py +0 -0
  285. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/cortex.py +0 -0
  286. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/cryotank.py +0 -0
  287. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/jsonstor.py +0 -0
  288. {synapse-2.172.0 → synapse-2.174.0}/synapse/servers/stemcell.py +0 -0
  289. {synapse-2.172.0 → synapse-2.174.0}/synapse/telepath.py +0 -0
  290. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/__init__.py +0 -0
  291. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  292. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/__init__.py +0 -0
  293. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  294. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  295. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  296. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  297. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  298. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  299. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  300. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/root.key +0 -0
  301. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  302. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/certdir/users/user.key +0 -0
  303. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/cpedata.json +0 -0
  304. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  305. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  306. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  307. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  308. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  309. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_export/basic.json +0 -0
  310. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  311. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  312. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  313. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  314. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  315. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  316. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  317. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  318. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  319. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  320. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormmod/common +0 -0
  321. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  322. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  323. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  324. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  325. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  326. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  327. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  328. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  329. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  330. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  331. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  332. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  333. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  334. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  335. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  336. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  337. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  338. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  339. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  340. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  341. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  342. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  343. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  344. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/test.dat +0 -0
  345. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  346. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/nopmod.py +0 -0
  347. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_axon.py +0 -0
  348. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cmds_boss.py +0 -0
  349. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cmds_cortex.py +0 -0
  350. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cmds_hive.py +0 -0
  351. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_common.py +0 -0
  352. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_cryotank.py +0 -0
  353. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_daemon.py +0 -0
  354. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_data.py +0 -0
  355. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_datamodel.py +0 -0
  356. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_exc.py +0 -0
  357. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_glob.py +0 -0
  358. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_init.py +0 -0
  359. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_aha.py +0 -0
  360. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_autodoc.py +0 -0
  361. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_base.py +0 -0
  362. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_boss.py +0 -0
  363. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_cache.py +0 -0
  364. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_cell.py +0 -0
  365. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_certdir.py +0 -0
  366. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_chop.py +0 -0
  367. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_cli.py +0 -0
  368. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_config.py +0 -0
  369. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_const.py +0 -0
  370. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_coro.py +0 -0
  371. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  372. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  373. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  374. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  375. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_datfile.py +0 -0
  376. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  377. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_encoding.py +0 -0
  378. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_gis.py +0 -0
  379. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hashitem.py +0 -0
  380. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hashset.py +0 -0
  381. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_health.py +0 -0
  382. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_hive.py +0 -0
  383. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_interval.py +0 -0
  384. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  385. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_jupyter.py +0 -0
  386. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_link.py +0 -0
  387. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_module.py +0 -0
  388. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  389. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_node.py +0 -0
  390. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_output.py +0 -0
  391. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  392. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_queue.py +0 -0
  393. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  394. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_reflect.py +0 -0
  395. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_rstorm.py +0 -0
  396. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_scope.py +0 -0
  397. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_scrape.py +0 -0
  398. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  399. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  400. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_snap.py +0 -0
  401. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_spooled.py +0 -0
  402. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_storm_format.py +0 -0
  403. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  404. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  405. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  406. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  407. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  408. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  409. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  410. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  411. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  412. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  413. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  414. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  415. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  416. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  417. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  418. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  419. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  420. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  421. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  422. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  423. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  424. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  425. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  426. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  427. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  428. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  429. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  430. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  431. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  432. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  433. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  434. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  435. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  436. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  437. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  438. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  439. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  440. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  441. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  442. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_structlog.py +0 -0
  443. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_task.py +0 -0
  444. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_thishost.py +0 -0
  445. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_time.py +0 -0
  446. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_types.py +0 -0
  447. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  448. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_version.py +0 -0
  449. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lib_view.py +0 -0
  450. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  451. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  452. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_mindmeld.py +0 -0
  453. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_auth.py +0 -0
  454. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_base.py +0 -0
  455. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_belief.py +0 -0
  456. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_biz.py +0 -0
  457. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_dns.py +0 -0
  458. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_files.py +0 -0
  459. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_geospace.py +0 -0
  460. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_gov_cn.py +0 -0
  461. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_gov_intl.py +0 -0
  462. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_gov_us.py +0 -0
  463. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_inet.py +0 -0
  464. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_infotech.py +0 -0
  465. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_language.py +0 -0
  466. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_material.py +0 -0
  467. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_media.py +0 -0
  468. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_planning.py +0 -0
  469. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_proj.py +0 -0
  470. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_risk.py +0 -0
  471. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_science.py +0 -0
  472. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_syn.py +0 -0
  473. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_telco.py +0 -0
  474. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_model_transport.py +0 -0
  475. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_axon.py +0 -0
  476. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_cortex.py +0 -0
  477. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_cryotank.py +0 -0
  478. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_stemcell.py +0 -0
  479. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_servers_univ.py +0 -0
  480. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_telepath.py +0 -0
  481. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_aha.py +0 -0
  482. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_autodoc.py +0 -0
  483. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  484. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_backup.py +0 -0
  485. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_cellauth.py +0 -0
  486. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  487. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  488. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_csvtool.py +0 -0
  489. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  490. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_easycert.py +0 -0
  491. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_feed.py +0 -0
  492. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_genpkg.py +0 -0
  493. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_guid.py +0 -0
  494. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  495. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_hiveload.py +0 -0
  496. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_hivesave.py +0 -0
  497. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  498. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_livebackup.py +0 -0
  499. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_modrole.py +0 -0
  500. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_moduser.py +0 -0
  501. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_pullfile.py +0 -0
  502. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_pushfile.py +0 -0
  503. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_reload.py +0 -0
  504. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_rstorm.py +0 -0
  505. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_tools_storm.py +0 -0
  506. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_utils.py +0 -0
  507. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_utils_getrefs.py +0 -0
  508. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/test_utils_stormcov.py +0 -0
  509. {synapse-2.172.0 → synapse-2.174.0}/synapse/tests/utils.py +0 -0
  510. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/__init__.py +0 -0
  511. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/__init__.py +0 -0
  512. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/easycert.py +0 -0
  513. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/enroll.py +0 -0
  514. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/list.py +0 -0
  515. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/provision/__init__.py +0 -0
  516. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/provision/service.py +0 -0
  517. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/aha/provision/user.py +0 -0
  518. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/autodoc.py +0 -0
  519. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/axon2axon.py +0 -0
  520. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/backup.py +0 -0
  521. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cellauth.py +0 -0
  522. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cmdr.py +0 -0
  523. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cryo/__init__.py +0 -0
  524. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cryo/cat.py +0 -0
  525. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/cryo/list.py +0 -0
  526. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/csvtool.py +0 -0
  527. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/docker/__init__.py +0 -0
  528. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/docker/validate.py +0 -0
  529. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/easycert.py +0 -0
  530. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/feed.py +0 -0
  531. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/genpkg.py +0 -0
  532. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/guid.py +0 -0
  533. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/healthcheck.py +0 -0
  534. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/hive/__init__.py +0 -0
  535. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/hive/load.py +0 -0
  536. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/hive/save.py +0 -0
  537. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/json2mpk.py +0 -0
  538. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/livebackup.py +0 -0
  539. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/modrole.py +0 -0
  540. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/moduser.py +0 -0
  541. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/promote.py +0 -0
  542. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/pullfile.py +0 -0
  543. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/pushfile.py +0 -0
  544. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/reload.py +0 -0
  545. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/rstorm.py +0 -0
  546. {synapse-2.172.0 → synapse-2.174.0}/synapse/tools/storm.py +0 -0
  547. {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/__init__.py +0 -0
  548. {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/getrefs.py +0 -0
  549. {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/stormcov/__init__.py +0 -0
  550. {synapse-2.172.0 → synapse-2.174.0}/synapse/utils/stormcov/plugin.py +0 -0
  551. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/__init__.py +0 -0
  552. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  553. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  554. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/base58.py +0 -0
  555. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/convert.py +0 -0
  556. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  557. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  558. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  559. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  560. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  561. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  562. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  563. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  564. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  565. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/utils.py +0 -0
  566. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/LICENSE +0 -0
  567. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/__init__.py +0 -0
  568. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/constants.py +0 -0
  569. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  570. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  571. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  572. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  573. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  574. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  575. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  576. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  577. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  578. {synapse-2.172.0 → synapse-2.174.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  579. {synapse-2.172.0 → synapse-2.174.0}/synapse.egg-info/dependency_links.txt +0 -0
  580. {synapse-2.172.0 → synapse-2.174.0}/synapse.egg-info/requires.txt +0 -0
  581. {synapse-2.172.0 → synapse-2.174.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.172.0
3
+ Version: 2.174.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.172.0'
7
+ version = '2.174.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -493,7 +493,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
493
493
 
494
494
  async def wants(self, sha256s):
495
495
  '''
496
- Get a list of sha256 values the axon does not have from a input list.
496
+ Get a list of sha256 values the axon does not have from an input list.
497
497
 
498
498
  Args:
499
499
  sha256s (list): A list of sha256 values as bytes.
@@ -11,6 +11,7 @@ import types
11
11
  import base64
12
12
  import shutil
13
13
  import struct
14
+ import typing
14
15
  import asyncio
15
16
  import decimal
16
17
  import fnmatch
@@ -379,7 +380,7 @@ def reqbytes(*paths):
379
380
  with reqfile(*paths) as fd:
380
381
  return fd.read()
381
382
 
382
- def genfile(*paths):
383
+ def genfile(*paths) -> typing.BinaryIO:
383
384
  '''
384
385
  Create or open (for read/write) a file path join.
385
386
 
@@ -396,7 +397,7 @@ def genfile(*paths):
396
397
  to append.
397
398
 
398
399
  Returns:
399
- io.BufferedRandom: A file-object which can be read/written too.
400
+ A file-object which can be read/written too.
400
401
  '''
401
402
  path = genpath(*paths)
402
403
  gendir(os.path.dirname(path))
@@ -535,13 +536,26 @@ def yamlload(*paths):
535
536
  with io.open(path, 'rb') as fd:
536
537
  return yamlloads(fd)
537
538
 
539
+ def yamldump(obj, stream: typing.Optional[typing.BinaryIO] =None) -> bytes:
540
+ '''
541
+ Dump a object to yaml.
542
+
543
+ Args:
544
+ obj: The object to serialize.
545
+ stream: The optional stream to write the stream too.
546
+
547
+ Returns:
548
+ The raw yaml bytes if stream is not provided.
549
+ '''
550
+ return yaml.dump(obj, allow_unicode=True, default_flow_style=False,
551
+ default_style='', explicit_start=True, explicit_end=True,
552
+ encoding='utf8', stream=stream, Dumper=Dumper)
553
+
538
554
  def yamlsave(obj, *paths):
539
555
  path = genpath(*paths)
540
556
  with genfile(path) as fd:
541
557
  fd.truncate(0)
542
- yaml.dump(obj, allow_unicode=True, default_flow_style=False,
543
- default_style='', explicit_start=True, explicit_end=True,
544
- encoding='utf8', stream=fd, Dumper=Dumper)
558
+ yamldump(obj, stream=fd)
545
559
 
546
560
  def yamlmod(obj, *paths):
547
561
  '''
@@ -42,6 +42,7 @@ import synapse.lib.schemas as s_schemas
42
42
  import synapse.lib.spooled as s_spooled
43
43
  import synapse.lib.version as s_version
44
44
  import synapse.lib.urlhelp as s_urlhelp
45
+ import synapse.lib.hashitem as s_hashitem
45
46
  import synapse.lib.jsonstor as s_jsonstor
46
47
  import synapse.lib.modelrev as s_modelrev
47
48
  import synapse.lib.stormsvc as s_stormsvc
@@ -949,6 +950,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
949
950
 
950
951
  # Initialize our storage and views
951
952
  await self._initCoreAxon()
953
+ await self._initJsonStor()
952
954
 
953
955
  await self._initCoreLayers()
954
956
  await self._initCoreViews()
@@ -1009,8 +1011,16 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1009
1011
  await self._bumpCellVers('cortex:storage', (
1010
1012
  (1, self._storUpdateMacros),
1011
1013
  (2, self._storLayrFeedDefaults),
1014
+ (3, self._updateTriggerViewIdens),
1012
1015
  ), nexs=False)
1013
1016
 
1017
+ async def _updateTriggerViewIdens(self):
1018
+ for view in self.views.values():
1019
+ for trigiden, trigger in await view.listTriggers():
1020
+ if trigger.get('view') != view.iden:
1021
+ trigger.tdef['view'] = view.iden
1022
+ await view.trigdict.set(trigiden, trigger.tdef)
1023
+
1014
1024
  async def _viewNomergeToProtected(self):
1015
1025
  for view in self.views.values():
1016
1026
  nomerge = view.info.get('nomerge', False)
@@ -1462,8 +1472,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1462
1472
  async def initServiceRuntime(self):
1463
1473
 
1464
1474
  # do any post-nexus initialization here...
1465
- await self._initJsonStor()
1466
-
1467
1475
  if self.isactive:
1468
1476
  await self._checkNexsIndx()
1469
1477
 
@@ -2550,7 +2558,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2550
2558
  name = pkgdef.get('name')
2551
2559
  olddef = self.pkghive.get(name, None)
2552
2560
  if olddef is not None:
2553
- await self._dropStormPkg(olddef)
2561
+ if s_hashitem.hashitem(pkgdef) != s_hashitem.hashitem(olddef):
2562
+ await self._dropStormPkg(olddef)
2563
+ else:
2564
+ return
2554
2565
 
2555
2566
  await self.loadStormPkg(pkgdef)
2556
2567
  await self.pkghive.set(name, pkgdef)
@@ -2965,17 +2976,19 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2965
2976
  '''
2966
2977
  Delete storm packages associated with a service.
2967
2978
  '''
2968
- oldpkgs = []
2969
- for _, pdef in self.pkghive.items():
2970
- pkgiden = pdef.get('svciden')
2971
- if pkgiden and pkgiden == iden:
2972
- oldpkgs.append(pdef)
2973
-
2974
- for pkg in oldpkgs:
2979
+ for pkg in self.getStormSvcPkgs(iden):
2975
2980
  name = pkg.get('name')
2976
2981
  if name:
2977
2982
  await self._delStormPkg(name)
2978
2983
 
2984
+ def getStormSvcPkgs(self, iden):
2985
+ pkgs = []
2986
+ for _, pdef in self.pkghive.items():
2987
+ pkgiden = pdef.get('svciden')
2988
+ if pkgiden and pkgiden == iden:
2989
+ pkgs.append(pdef)
2990
+ return pkgs
2991
+
2979
2992
  async def setStormSvcEvents(self, iden, edef):
2980
2993
  '''
2981
2994
  Set the event callbacks for a storm service. Extends the sdef dict.
@@ -6113,6 +6126,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
6113
6126
  Args:
6114
6127
  iden (bytes): The iden of the cron job to be deleted
6115
6128
  '''
6129
+ await self._killCronTask(iden)
6116
6130
  try:
6117
6131
  await self.agenda.delete(iden)
6118
6132
  except s_exc.NoSuchIden:
@@ -6142,6 +6156,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
6142
6156
  '''
6143
6157
  await self.agenda.enable(iden)
6144
6158
  await self.feedBeholder('cron:enable', {'iden': iden}, gates=[iden])
6159
+ logger.info(f'Enabled cron job {iden}', extra=await self.getLogExtra(iden=iden, status='MODIFY'))
6145
6160
 
6146
6161
  @s_nexus.Pusher.onPushAuto('cron:disable')
6147
6162
  async def disableCronJob(self, iden):
@@ -6152,7 +6167,28 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
6152
6167
  iden (bytes): The iden of the cron job to be changed
6153
6168
  '''
6154
6169
  await self.agenda.disable(iden)
6170
+ await self._killCronTask(iden)
6155
6171
  await self.feedBeholder('cron:disable', {'iden': iden}, gates=[iden])
6172
+ logger.info(f'Disabled cron job {iden}', extra=await self.getLogExtra(iden=iden, status='MODIFY'))
6173
+
6174
+ async def killCronTask(self, iden):
6175
+ if self.agenda.appts.get(iden) is None:
6176
+ return False
6177
+ return await self._push('cron:task:kill', iden)
6178
+
6179
+ @s_nexus.Pusher.onPush('cron:task:kill')
6180
+ async def _killCronTask(self, iden):
6181
+
6182
+ appt = self.agenda.appts.get(iden)
6183
+ if appt is None:
6184
+ return False
6185
+
6186
+ task = appt.task
6187
+ if task is None:
6188
+ return False
6189
+
6190
+ self.schedCoro(task.kill())
6191
+ return True
6156
6192
 
6157
6193
  async def listCronJobs(self):
6158
6194
  '''
@@ -274,6 +274,7 @@ class _Appt:
274
274
  def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None, pool=False):
275
275
  self.doc = ''
276
276
  self.name = ''
277
+ self.task = None
277
278
  self.stor = stor
278
279
  self.pool = pool
279
280
  self.iden = iden
@@ -801,7 +802,12 @@ class Agenda(s_base.Base):
801
802
 
802
803
  coro = self._runJob(user, appt)
803
804
  task = self.core.runActiveTask(coro)
805
+
804
806
  appt.task = await self.core.boss.promotetask(task, f'Cron {appt.iden}', user, info=info)
807
+ async def fini():
808
+ appt.task = None
809
+
810
+ appt.task.onfini(fini)
805
811
 
806
812
  async def _markfailed(self, appt, reason):
807
813
  now = self._getNowTick()
@@ -3017,11 +3017,11 @@ class ArrayCond(Cond):
3017
3017
 
3018
3018
  async def getCondEval(self, runt):
3019
3019
 
3020
- name = await self.kids[0].compute(runt, None)
3021
3020
  cmpr = await self.kids[1].compute(runt, None)
3022
3021
 
3023
3022
  async def cond(node, path):
3024
3023
 
3024
+ name = await self.kids[0].compute(runt, None)
3025
3025
  prop = node.form.props.get(name)
3026
3026
  if prop is None:
3027
3027
  raise self.kids[0].addExcInfo(s_exc.NoSuchProp.init(name))
@@ -1,7 +1,7 @@
1
1
  import logging
2
2
  import dataclasses
3
3
 
4
- from typing import Union
4
+ from typing import Optional, Union
5
5
 
6
6
  import synapse.exc as s_exc
7
7
  import synapse.common as s_common
@@ -941,16 +941,38 @@ class HiveUser(HiveRuler):
941
941
  if not self.allowed(perm):
942
942
  await self.addRule((True, perm), indx=0)
943
943
 
944
- def allowed(self, perm, default=None, gateiden=None):
944
+ def allowed(self,
945
+ perm: tuple[str, ...],
946
+ default: Optional[str] = None,
947
+ gateiden: Optional[str] = None,
948
+ deepdeny: bool = False) -> Union[bool, None]:
949
+ '''
950
+ Check if a user is allowed a given permission.
951
+
952
+ Args:
953
+ perm: The permission tuple to check.
954
+ default: The default rule value if there is no match.
955
+ gateiden: The gate iden to check against.
956
+ deepdeny: If True, give precedence for checking deny rules which are more specific than the requested
957
+ permission.
958
+
959
+ Notes:
960
+ The use of the deepdeny argument is intended for checking a less-specific part of a permissions tree, in
961
+ order to know about possible short circuit options. Using it to check a more specific part may have
962
+ unintended results.
963
+
964
+ Returns:
965
+ The allowed value of the permission.
966
+ '''
945
967
  perm = tuple(perm)
946
- return self.permcache.get((perm, default, gateiden))
968
+ return self.permcache.get((perm, default, gateiden, deepdeny))
947
969
 
948
970
  def _allowed(self, pkey):
949
971
  '''
950
972
  NOTE: This must remain in sync with any changes to _getAllowedReason()!
951
973
  '''
952
974
 
953
- perm, default, gateiden = pkey
975
+ perm, default, gateiden, deepdeny = pkey
954
976
 
955
977
  if self.info.get('locked'):
956
978
  return False
@@ -958,6 +980,9 @@ class HiveUser(HiveRuler):
958
980
  if self.info.get('admin'):
959
981
  return True
960
982
 
983
+ if deepdeny and self._hasDeepDeny(perm, gateiden):
984
+ return False
985
+
961
986
  # 1. check authgate user rules
962
987
  if gateiden is not None:
963
988
 
@@ -1055,6 +1080,58 @@ class HiveUser(HiveRuler):
1055
1080
 
1056
1081
  return _allowedReason(default, default=True)
1057
1082
 
1083
+ def _hasDeepDeny(self, perm, gateiden):
1084
+
1085
+ permlen = len(perm)
1086
+
1087
+ # 1. check authgate user rules
1088
+ if gateiden is not None:
1089
+
1090
+ info = self.authgates.get(gateiden)
1091
+ if info is not None:
1092
+
1093
+ if info.get('admin'):
1094
+ return False
1095
+
1096
+ for allow, path in info.get('rules', ()):
1097
+ if allow:
1098
+ continue
1099
+ if path[:permlen] == perm and len(path) > permlen:
1100
+ return True
1101
+
1102
+ # 2. check user rules
1103
+ for allow, path in self.info.get('rules', ()):
1104
+ if allow:
1105
+ continue
1106
+
1107
+ if path[:permlen] == perm and len(path) > permlen:
1108
+ return True
1109
+
1110
+ # 3. check authgate role rules
1111
+ if gateiden is not None:
1112
+
1113
+ for role in self.getRoles():
1114
+
1115
+ info = role.authgates.get(gateiden)
1116
+ if info is None:
1117
+ continue
1118
+
1119
+ for allow, path in info.get('rules', ()):
1120
+ if allow:
1121
+ continue
1122
+ if path[:permlen] == perm and len(path) > permlen:
1123
+ return True
1124
+
1125
+ # 4. check role rules
1126
+ for role in self.getRoles():
1127
+ for allow, path in role.info.get('rules', ()):
1128
+ if allow:
1129
+ continue
1130
+ if path[:permlen] == perm and len(path) > permlen:
1131
+ return True
1132
+
1133
+ return False
1134
+
1058
1135
  def clearAuthCache(self):
1059
1136
  self.permcache.clear()
1060
1137
  self.allowedcache.clear()
@@ -4095,9 +4095,6 @@ class Layer(s_nexus.Pusher):
4095
4095
  yield prop[0]
4096
4096
 
4097
4097
  async def confirmLayerEditPerms(self, user, gateiden, delete=False):
4098
- if user.allowed(('node',), gateiden=gateiden):
4099
- return
4100
-
4101
4098
  if delete:
4102
4099
  perm_forms = ('node', 'del')
4103
4100
  perm_props = ('node', 'prop', 'del')
@@ -4111,11 +4108,14 @@ class Layer(s_nexus.Pusher):
4111
4108
  perm_ndata = ('node', 'data', 'set')
4112
4109
  perm_edges = ('node', 'edge', 'add')
4113
4110
 
4114
- allow_forms = user.allowed(perm_forms, gateiden=gateiden)
4115
- allow_props = user.allowed(perm_props, gateiden=gateiden)
4116
- allow_tags = user.allowed(perm_tags, gateiden=gateiden)
4117
- allow_ndata = user.allowed(perm_ndata, gateiden=gateiden)
4118
- allow_edges = user.allowed(perm_edges, gateiden=gateiden)
4111
+ if user.allowed(('node',), gateiden=gateiden, deepdeny=True):
4112
+ return
4113
+
4114
+ allow_forms = user.allowed(perm_forms, gateiden=gateiden, deepdeny=True)
4115
+ allow_props = user.allowed(perm_props, gateiden=gateiden, deepdeny=True)
4116
+ allow_tags = user.allowed(perm_tags, gateiden=gateiden, deepdeny=True)
4117
+ allow_ndata = user.allowed(perm_ndata, gateiden=gateiden, deepdeny=True)
4118
+ allow_edges = user.allowed(perm_edges, gateiden=gateiden, deepdeny=True)
4119
4119
 
4120
4120
  if all((allow_forms, allow_props, allow_tags, allow_ndata, allow_edges)):
4121
4121
  return
@@ -1623,7 +1623,17 @@ class Slab(s_base.Base):
1623
1623
  self.commitstats.append((starttime, xactopslen, delta))
1624
1624
 
1625
1625
  if self.WARN_COMMIT_TIME_MS and delta > self.WARN_COMMIT_TIME_MS:
1626
- logger.warning(f'Commit with {xactopslen} items in {self!r} took {delta} ms.')
1626
+
1627
+ extra = {
1628
+ 'delta': delta,
1629
+ 'path': self.path,
1630
+ 'sysctls': s_thisplat.getSysctls(),
1631
+ 'xactopslen': xactopslen,
1632
+ }
1633
+
1634
+ mesg = f'Commit with {xactopslen} items in {self!r} took {delta} ms - performance may be degraded.'
1635
+ logger.warning(mesg, extra={'synapse': extra})
1636
+
1627
1637
  self._initCoXact()
1628
1638
  return True
1629
1639
 
@@ -8,7 +8,7 @@ import synapse.lib.layer as s_layer
8
8
 
9
9
  logger = logging.getLogger(__name__)
10
10
 
11
- maxvers = (0, 2, 24)
11
+ maxvers = (0, 2, 25)
12
12
 
13
13
  class ModelRev:
14
14
 
@@ -38,6 +38,7 @@ class ModelRev:
38
38
  ((0, 2, 22), self.revModel_0_2_22),
39
39
  ((0, 2, 23), self.revModel_0_2_23),
40
40
  ((0, 2, 24), self.revModel_0_2_24),
41
+ ((0, 2, 25), self.revModel_0_2_25),
41
42
  )
42
43
 
43
44
  async def _uniqSortArray(self, todoprops, layers):
@@ -757,6 +758,17 @@ class ModelRev:
757
758
  for form, props in formprops.items():
758
759
  await self._normVelocityProps(layers, form, props)
759
760
 
761
+ async def revModel_0_2_25(self, layers):
762
+ await self._typeToForm(layers, 'econ:currency', 'econ:currency')
763
+ await self._normPropValu(layers, 'ou:position:title')
764
+ await self._propToForm(layers, 'ou:position:title', 'ou:jobtitle')
765
+
766
+ await self._normPropValu(layers, 'ou:conference:name')
767
+ await self._propToForm(layers, 'ou:conference:name', 'entity:name')
768
+
769
+ await self._normPropValu(layers, 'ou:conference:names')
770
+ await self._propArrayToForm(layers, 'ou:conference:names', 'entity:name')
771
+
760
772
  async def runStorm(self, text, opts=None):
761
773
  '''
762
774
  Run storm code in a schedcoro and log the output messages.
@@ -1116,6 +1128,10 @@ class ModelRev:
1116
1128
  '''
1117
1129
  await self.runStorm(storm, opts=opts)
1118
1130
 
1131
+ async def _typeToForm(self, layers, typename, formname):
1132
+ for prop in layers[0].core.model.getPropsByType(typename):
1133
+ await self._propToForm(layers, prop.full, formname)
1134
+
1119
1135
  async def _propArrayToForm(self, layers, propfull, formname):
1120
1136
 
1121
1137
  opts = {'vars': {
@@ -17,6 +17,7 @@ coremods = (
17
17
  'synapse.models.telco.TelcoModule',
18
18
  'synapse.models.inet.InetModule',
19
19
  'synapse.models.material.MatModule',
20
+ 'synapse.models.entity.EntityModule',
20
21
  'synapse.models.language.LangModule',
21
22
  'synapse.models.crypto.CryptoModule',
22
23
  'synapse.models.gov.cn.GovCnModule',
@@ -7,8 +7,27 @@ import synapse.exc as s_exc
7
7
 
8
8
  logger = logging.getLogger(__name__)
9
9
 
10
+ def _ext_un(code, byts):
11
+ if code == 0:
12
+ return int.from_bytes(byts, 'big')
13
+ elif code == 1:
14
+ return int.from_bytes(byts, 'big', signed=True)
15
+ else: # pragma: no cover
16
+ mesg = f'Invalid msgpack ext code: {code} ({repr(byts)[:20]})'
17
+ raise s_exc.SynErr(mesg=mesg)
18
+
19
+ def _ext_en(item):
20
+ if isinstance(item, int):
21
+ if item > 0xffffffffffffffff:
22
+ size = (item.bit_length() + 7) // 8
23
+ return msgpack.ExtType(0, item.to_bytes(size, 'big'))
24
+ if item < -0x8000000000000000:
25
+ size = (item.bit_length() // 8) + 1
26
+ return msgpack.ExtType(1, item.to_bytes(size, 'big', signed=True))
27
+ return item
28
+
10
29
  # Single Packer object which is reused for performance
11
- pakr = msgpack.Packer(use_bin_type=True, unicode_errors='surrogatepass')
30
+ pakr = msgpack.Packer(use_bin_type=True, unicode_errors='surrogatepass', default=_ext_en)
12
31
  if isinstance(pakr, m_fallback.Packer): # pragma: no cover
13
32
  logger.warning('******************************************************************************************************')
14
33
  logger.warning('* msgpack is using the pure python fallback implementation. This will impact performance negatively. *')
@@ -21,6 +40,7 @@ unpacker_kwargs = {
21
40
  'raw': False,
22
41
  'use_list': False,
23
42
  'strict_map_key': False,
43
+ 'ext_hook': _ext_un,
24
44
  'max_buffer_size': 2**32 - 1,
25
45
  'unicode_errors': 'surrogatepass'
26
46
  }
@@ -67,7 +87,8 @@ def _fallback_en(item):
67
87
  bytes: The serialized bytes in msgpack format.
68
88
  '''
69
89
  try:
70
- return msgpack.packb(item, use_bin_type=True, unicode_errors='surrogatepass')
90
+ return msgpack.packb(item, use_bin_type=True,
91
+ unicode_errors='surrogatepass', default=_ext_en)
71
92
  except TypeError as e:
72
93
  mesg = f'{e.args[0]}: {repr(item)[:20]}'
73
94
  raise s_exc.NotMsgpackSafe(mesg=mesg) from e
@@ -95,7 +116,8 @@ def un(byts, use_list=False):
95
116
  obj: The de-serialized object
96
117
  '''
97
118
  # This uses a subset of unpacker_kwargs
98
- return msgpack.loads(byts, use_list=use_list, raw=False, strict_map_key=False, unicode_errors='surrogatepass')
119
+ return msgpack.loads(byts, use_list=use_list, raw=False, strict_map_key=False,
120
+ unicode_errors='surrogatepass', ext_hook=_ext_un)
99
121
 
100
122
  def isok(item):
101
123
  '''
@@ -12,7 +12,6 @@ import synapse.common as s_common
12
12
  import synapse.telepath as s_telepath
13
13
 
14
14
  import synapse.lib.base as s_base
15
- import synapse.lib.version as s_version
16
15
 
17
16
  logger = logging.getLogger(__name__)
18
17
 
@@ -267,7 +266,7 @@ class NexsRoot(s_base.Base):
267
266
  raise
268
267
 
269
268
  except Exception:
270
- logger.exception('Exception while replaying log')
269
+ logger.exception(f'Exception while replaying log: {s_common.trimText(repr(indxitem))}')
271
270
 
272
271
  async def addWriteHold(self, reason):
273
272
 
@@ -497,27 +496,32 @@ class NexsRoot(s_base.Base):
497
496
 
498
497
  async def runMirrorLoop(self, proxy):
499
498
 
500
- cellinfo = await proxy.getCellInfo()
501
- features = cellinfo.get('features', {})
502
- if features.get('dynmirror'):
503
- await proxy.readyToMirror()
499
+ try:
500
+ cellinfo = await proxy.getCellInfo()
501
+ features = cellinfo.get('features', {})
502
+ if features.get('dynmirror'):
503
+ await proxy.readyToMirror()
504
+
505
+ cellvers = cellinfo['cell']['version']
506
+ if cellvers > self.cell.VERSION:
507
+ logger.error('Leader is a higher version than we are. Mirrors must be updated first. Entering read-only mode.')
508
+ await self.addWriteHold(leaderversion)
509
+ # this will fire again on reconnect...
510
+ return
504
511
 
505
- cellvers = cellinfo['cell']['version']
506
- if cellvers > self.cell.VERSION:
507
- logger.error('Leader is a higher version than we are. Mirrors must be updated first. Entering read-only mode.')
508
- await self.addWriteHold(leaderversion)
509
- # this will fire again on reconnect...
510
- return
512
+ # When we reconnect and the leader version has become ok...
513
+ await self.delWriteHold(leaderversion)
511
514
 
512
- # When we reconnect and the leader version has become ok...
513
- await self.delWriteHold(leaderversion)
515
+ if self.celliden is not None:
516
+ if self.celliden != await proxy.getCellIden():
517
+ logger.error('remote cell has different iden! Aborting mirror sync')
518
+ await proxy.fini()
519
+ await self.fini()
520
+ return
514
521
 
515
- if self.celliden is not None:
516
- if self.celliden != await proxy.getCellIden():
517
- logger.error('remote cell has different iden! Aborting mirror sync')
518
- await proxy.fini()
519
- await self.fini()
520
- return
522
+ except Exception as exc:
523
+ logger.exception(f'Unknown error during mirror loop startup: {exc}')
524
+ await proxy.fini()
521
525
 
522
526
  while not proxy.isfini:
523
527
 
@@ -573,8 +577,8 @@ class NexsRoot(s_base.Base):
573
577
  if respfutu is not None:
574
578
  respfutu.set_result(retn)
575
579
 
576
- except Exception: # pragma: no cover
577
- logger.exception('error in mirror loop')
580
+ except Exception as exc: # pragma: no cover
581
+ logger.exception(f'error in mirror loop: {exc}')
578
582
 
579
583
  # If we've left the mirror loop for some reason, we no longer know if we
580
584
  # will be in the realtime window or not. So we should try to set the ready
@@ -287,3 +287,34 @@ _stormPoolOptsSchema = {
287
287
  'additionalProperties': False,
288
288
  }
289
289
  reqValidStormPoolOpts = s_config.getJsValidator(_stormPoolOptsSchema)
290
+
291
+ # These types are order sensitive
292
+ _changelogTypes = {'migration': 'Automatic Migrations',
293
+ 'model': 'Model Changes',
294
+ 'feat': 'Features and Enhancements',
295
+ 'bug': 'Bugfixes',
296
+ 'doc': 'Improved documentation',
297
+ 'deprecation': 'Deprecations'}
298
+
299
+ _changelogSchema = {
300
+ 'type': 'object',
301
+ 'properties': {
302
+ 'type': {
303
+ 'type': 'string',
304
+ 'enum': list(_changelogTypes.keys()),
305
+ },
306
+ 'desc': {
307
+ 'type': 'string',
308
+ 'minLength': 1,
309
+ },
310
+ 'prs': {
311
+ 'type': 'array',
312
+ 'items': {
313
+ 'type': 'integer',
314
+ }
315
+ }
316
+ },
317
+ 'additionalProperties': False,
318
+ 'required': ['type', 'desc']
319
+ }
320
+ _reqChanglogSchema = s_config.getJsValidator(_changelogSchema)