synapse 2.209.0__tar.gz → 2.210.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 (634) hide show
  1. {synapse-2.209.0/synapse.egg-info → synapse-2.210.0}/PKG-INFO +2 -2
  2. {synapse-2.209.0 → synapse-2.210.0}/pyproject.toml +2 -2
  3. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/cell.py +14 -4
  4. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/coro.py +5 -0
  5. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/json.py +48 -22
  6. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/nexus.py +6 -0
  7. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/storm.py +10 -2
  8. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/auth.py +6 -0
  9. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/notifications.py +12 -2
  10. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/version.py +2 -2
  11. synapse-2.210.0/synapse/models/entity.py +42 -0
  12. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/inet.py +11 -0
  13. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/person.py +9 -2
  14. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_cortex.py +3 -3
  15. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_aha.py +1 -1
  16. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_cell.py +28 -8
  17. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_coro.py +23 -0
  18. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_json.py +41 -16
  19. synapse-2.210.0/synapse/tests/test_model_entity.py +21 -0
  20. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_gov_intl.py +2 -2
  21. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_inet.py +15 -0
  22. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_media.py +1 -0
  23. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_person.py +12 -0
  24. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_telepath.py +52 -41
  25. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_aha.py +7 -8
  26. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/utils.py +1 -1
  27. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/aha/clone.py +7 -1
  28. synapse-2.210.0/synapse/tools/aha/easycert.py +85 -0
  29. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/aha/enroll.py +7 -1
  30. synapse-2.210.0/synapse/tools/aha/list.py +84 -0
  31. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/aha/mirror.py +7 -1
  32. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/aha/provision/service.py +7 -1
  33. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/aha/provision/user.py +7 -1
  34. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/apikey.py +8 -1
  35. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/axon2axon.py +7 -1
  36. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/cellauth.py +6 -5
  37. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/cmdr.py +2 -1
  38. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/csvtool.py +7 -2
  39. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/feed.py +8 -2
  40. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/genpkg.py +7 -1
  41. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/healthcheck.py +7 -1
  42. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/livebackup.py +7 -3
  43. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/modrole.py +7 -1
  44. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/moduser.py +7 -2
  45. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/promote.py +7 -3
  46. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/pullfile.py +6 -1
  47. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/pushfile.py +7 -1
  48. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/reload.py +7 -4
  49. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/snapshot.py +7 -1
  50. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/storm.py +7 -1
  51. {synapse-2.209.0 → synapse-2.210.0/synapse.egg-info}/PKG-INFO +2 -2
  52. {synapse-2.209.0 → synapse-2.210.0}/synapse.egg-info/SOURCES.txt +1 -0
  53. {synapse-2.209.0 → synapse-2.210.0}/synapse.egg-info/requires.txt +1 -1
  54. synapse-2.209.0/synapse/models/entity.py +0 -16
  55. synapse-2.209.0/synapse/tools/aha/easycert.py +0 -90
  56. synapse-2.209.0/synapse/tools/aha/list.py +0 -89
  57. {synapse-2.209.0 → synapse-2.210.0}/LICENSE +0 -0
  58. {synapse-2.209.0 → synapse-2.210.0}/README.rst +0 -0
  59. {synapse-2.209.0 → synapse-2.210.0}/setup.cfg +0 -0
  60. {synapse-2.209.0 → synapse-2.210.0}/synapse/__init__.py +0 -0
  61. {synapse-2.209.0 → synapse-2.210.0}/synapse/axon.py +0 -0
  62. {synapse-2.209.0 → synapse-2.210.0}/synapse/cells.py +0 -0
  63. {synapse-2.209.0 → synapse-2.210.0}/synapse/cmds/__init__.py +0 -0
  64. {synapse-2.209.0 → synapse-2.210.0}/synapse/cmds/boss.py +0 -0
  65. {synapse-2.209.0 → synapse-2.210.0}/synapse/cmds/cortex.py +0 -0
  66. {synapse-2.209.0 → synapse-2.210.0}/synapse/cmds/hive.py +0 -0
  67. {synapse-2.209.0 → synapse-2.210.0}/synapse/common.py +0 -0
  68. {synapse-2.209.0 → synapse-2.210.0}/synapse/cortex.py +0 -0
  69. {synapse-2.209.0 → synapse-2.210.0}/synapse/cryotank.py +0 -0
  70. {synapse-2.209.0 → synapse-2.210.0}/synapse/daemon.py +0 -0
  71. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/__init__.py +0 -0
  72. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  73. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/attack-flow/README.md +0 -0
  74. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  75. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  76. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  77. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  78. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  79. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/iana.tlds.mpk +0 -0
  80. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/iana.uris.mpk +0 -0
  81. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/README.md +0 -0
  82. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  83. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  84. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  85. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  86. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  87. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  88. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  89. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  90. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  91. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  92. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  93. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  94. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  95. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  96. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  97. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  98. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  99. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  100. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  101. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  102. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  103. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  104. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  105. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  106. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  107. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  108. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  109. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  110. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  111. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  112. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  113. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  114. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  115. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  116. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  117. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  118. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  119. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  120. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  121. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  122. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  123. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  124. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  125. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  126. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  127. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  128. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  129. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  130. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  131. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  132. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  133. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  134. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  135. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  136. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  137. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  138. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  139. {synapse-2.209.0 → synapse-2.210.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  140. {synapse-2.209.0 → synapse-2.210.0}/synapse/datamodel.py +0 -0
  141. {synapse-2.209.0 → synapse-2.210.0}/synapse/exc.py +0 -0
  142. {synapse-2.209.0 → synapse-2.210.0}/synapse/glob.py +0 -0
  143. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/__init__.py +0 -0
  144. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/agenda.py +0 -0
  145. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/aha.py +0 -0
  146. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/ast.py +0 -0
  147. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/auth.py +0 -0
  148. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/autodoc.py +0 -0
  149. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/base.py +0 -0
  150. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/boss.py +0 -0
  151. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/cache.py +0 -0
  152. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/certdir.py +0 -0
  153. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/chop.py +0 -0
  154. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/cli.py +0 -0
  155. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/cmd.py +0 -0
  156. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/cmdr.py +0 -0
  157. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/config.py +0 -0
  158. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/const.py +0 -0
  159. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/crypto/__init__.py +0 -0
  160. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/crypto/coin.py +0 -0
  161. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/crypto/ecc.py +0 -0
  162. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/crypto/passwd.py +0 -0
  163. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/crypto/rsa.py +0 -0
  164. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/crypto/tinfoil.py +0 -0
  165. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/datfile.py +0 -0
  166. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/drive.py +0 -0
  167. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/dyndeps.py +0 -0
  168. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/encoding.py +0 -0
  169. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/gis.py +0 -0
  170. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/grammar.py +0 -0
  171. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/hashitem.py +0 -0
  172. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/hashset.py +0 -0
  173. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/health.py +0 -0
  174. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/hive.py +0 -0
  175. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/httpapi.py +0 -0
  176. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/ingest.py +0 -0
  177. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/interval.py +0 -0
  178. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/jsonstor.py +0 -0
  179. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/layer.py +0 -0
  180. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/link.py +0 -0
  181. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/lmdbslab.py +0 -0
  182. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/modelrev.py +0 -0
  183. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/module.py +0 -0
  184. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/modules.py +0 -0
  185. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/msgpack.py +0 -0
  186. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/multislabseqn.py +0 -0
  187. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/node.py +0 -0
  188. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/oauth.py +0 -0
  189. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/output.py +0 -0
  190. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/parser.py +0 -0
  191. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/platforms/__init__.py +0 -0
  192. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/platforms/common.py +0 -0
  193. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/platforms/darwin.py +0 -0
  194. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/platforms/freebsd.py +0 -0
  195. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/platforms/linux.py +0 -0
  196. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/platforms/windows.py +0 -0
  197. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/queue.py +0 -0
  198. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/ratelimit.py +0 -0
  199. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/reflect.py +0 -0
  200. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/rstorm.py +0 -0
  201. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/schemas.py +0 -0
  202. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/scope.py +0 -0
  203. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/scrape.py +0 -0
  204. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/share.py +0 -0
  205. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/slaboffs.py +0 -0
  206. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/slabseqn.py +0 -0
  207. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/snap.py +0 -0
  208. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/spooled.py +0 -0
  209. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/storm.lark +0 -0
  210. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/storm_format.py +0 -0
  211. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormctrl.py +0 -0
  212. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormhttp.py +0 -0
  213. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/__init__.py +0 -0
  214. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/aha.py +0 -0
  215. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/backup.py +0 -0
  216. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/basex.py +0 -0
  217. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/cache.py +0 -0
  218. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/cell.py +0 -0
  219. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/compression.py +0 -0
  220. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/cortex.py +0 -0
  221. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/easyperm.py +0 -0
  222. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/env.py +0 -0
  223. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/ethereum.py +0 -0
  224. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/gen.py +0 -0
  225. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/gis.py +0 -0
  226. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/graph.py +0 -0
  227. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/hashes.py +0 -0
  228. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/hex.py +0 -0
  229. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/imap.py +0 -0
  230. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/index.py +0 -0
  231. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/infosec.py +0 -0
  232. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/ipv6.py +0 -0
  233. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/iters.py +0 -0
  234. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/json.py +0 -0
  235. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/log.py +0 -0
  236. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/macro.py +0 -0
  237. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/math.py +0 -0
  238. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/mime.py +0 -0
  239. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/model.py +0 -0
  240. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/modelext.py +0 -0
  241. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/oauth.py +0 -0
  242. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/pack.py +0 -0
  243. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/project.py +0 -0
  244. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/random.py +0 -0
  245. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/scrape.py +0 -0
  246. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/smtp.py +0 -0
  247. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/spooled.py +0 -0
  248. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/stats.py +0 -0
  249. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/stix.py +0 -0
  250. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/storm.py +0 -0
  251. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/tabular.py +0 -0
  252. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/utils.py +0 -0
  253. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/vault.py +0 -0
  254. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/version.py +0 -0
  255. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/xml.py +0 -0
  256. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormlib/yaml.py +0 -0
  257. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormsvc.py +0 -0
  258. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormtypes.py +0 -0
  259. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/stormwhois.py +0 -0
  260. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/structlog.py +0 -0
  261. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/task.py +0 -0
  262. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/thishost.py +0 -0
  263. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/thisplat.py +0 -0
  264. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/threads.py +0 -0
  265. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/time.py +0 -0
  266. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/trigger.py +0 -0
  267. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/types.py +0 -0
  268. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/urlhelp.py +0 -0
  269. {synapse-2.209.0 → synapse-2.210.0}/synapse/lib/view.py +0 -0
  270. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/__init__.py +0 -0
  271. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/cvss.py +0 -0
  272. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/iana.py +0 -0
  273. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/iso3166.py +0 -0
  274. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/macho.py +0 -0
  275. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/pe.py +0 -0
  276. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/phonenum.py +0 -0
  277. {synapse-2.209.0 → synapse-2.210.0}/synapse/lookup/timezones.py +0 -0
  278. {synapse-2.209.0 → synapse-2.210.0}/synapse/mindmeld.py +0 -0
  279. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/__init__.py +0 -0
  280. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/auth.py +0 -0
  281. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/base.py +0 -0
  282. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/belief.py +0 -0
  283. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/biz.py +0 -0
  284. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/crypto.py +0 -0
  285. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/dns.py +0 -0
  286. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/doc.py +0 -0
  287. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/economic.py +0 -0
  288. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/files.py +0 -0
  289. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/geopol.py +0 -0
  290. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/geospace.py +0 -0
  291. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/gov/__init__.py +0 -0
  292. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/gov/cn.py +0 -0
  293. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/gov/intl.py +0 -0
  294. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/gov/us.py +0 -0
  295. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/infotech.py +0 -0
  296. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/language.py +0 -0
  297. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/material.py +0 -0
  298. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/math.py +0 -0
  299. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/media.py +0 -0
  300. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/orgs.py +0 -0
  301. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/planning.py +0 -0
  302. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/proj.py +0 -0
  303. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/risk.py +0 -0
  304. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/science.py +0 -0
  305. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/syn.py +0 -0
  306. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/telco.py +0 -0
  307. {synapse-2.209.0 → synapse-2.210.0}/synapse/models/transport.py +0 -0
  308. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/__init__.py +0 -0
  309. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/aha.py +0 -0
  310. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/axon.py +0 -0
  311. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/cell.py +0 -0
  312. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/cortex.py +0 -0
  313. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/cryotank.py +0 -0
  314. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/jsonstor.py +0 -0
  315. {synapse-2.209.0 → synapse-2.210.0}/synapse/servers/stemcell.py +0 -0
  316. {synapse-2.209.0 → synapse-2.210.0}/synapse/telepath.py +0 -0
  317. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/__init__.py +0 -0
  318. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  319. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/__init__.py +0 -0
  320. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  321. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  322. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  323. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  324. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  325. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  326. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  327. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  328. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  329. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  330. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  331. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  332. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  333. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/users/root.key +0 -0
  334. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  335. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/certdir/users/user.key +0 -0
  336. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  337. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  338. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/cpedata.json +0 -0
  339. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  340. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  341. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  342. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  343. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  344. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stix_export/basic.json +0 -0
  345. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  346. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  347. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  348. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  349. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  350. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  351. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  352. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  353. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  354. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  355. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  356. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormmod/common +0 -0
  357. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  358. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  359. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
  360. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  361. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  362. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  363. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  364. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  365. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  366. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  367. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  368. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  369. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  370. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  371. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  372. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  373. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  374. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  375. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  376. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  377. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  378. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  379. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  380. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  381. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/test.dat +0 -0
  382. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  383. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/nopmod.py +0 -0
  384. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_axon.py +0 -0
  385. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_cmds_boss.py +0 -0
  386. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_cmds_cortex.py +0 -0
  387. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_cmds_hive.py +0 -0
  388. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_common.py +0 -0
  389. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_cryotank.py +0 -0
  390. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_daemon.py +0 -0
  391. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_data.py +0 -0
  392. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_datamodel.py +0 -0
  393. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_exc.py +0 -0
  394. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_glob.py +0 -0
  395. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_init.py +0 -0
  396. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_agenda.py +0 -0
  397. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_ast.py +0 -0
  398. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_auth.py +0 -0
  399. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_autodoc.py +0 -0
  400. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_base.py +0 -0
  401. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_boss.py +0 -0
  402. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_cache.py +0 -0
  403. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_certdir.py +0 -0
  404. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_chop.py +0 -0
  405. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_cli.py +0 -0
  406. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_config.py +0 -0
  407. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_const.py +0 -0
  408. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  409. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  410. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  411. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  412. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_datfile.py +0 -0
  413. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  414. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_encoding.py +0 -0
  415. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_gis.py +0 -0
  416. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_grammar.py +0 -0
  417. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_hashitem.py +0 -0
  418. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_hashset.py +0 -0
  419. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_health.py +0 -0
  420. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_hive.py +0 -0
  421. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_httpapi.py +0 -0
  422. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_interval.py +0 -0
  423. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  424. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_layer.py +0 -0
  425. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_link.py +0 -0
  426. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  427. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_modelrev.py +0 -0
  428. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_module.py +0 -0
  429. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_msgpack.py +0 -0
  430. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  431. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_nexus.py +0 -0
  432. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_node.py +0 -0
  433. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_output.py +0 -0
  434. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  435. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_queue.py +0 -0
  436. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  437. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_reflect.py +0 -0
  438. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_rstorm.py +0 -0
  439. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_scope.py +0 -0
  440. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_scrape.py +0 -0
  441. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  442. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  443. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_snap.py +0 -0
  444. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_spooled.py +0 -0
  445. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_storm.py +0 -0
  446. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_storm_format.py +0 -0
  447. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormctrl.py +0 -0
  448. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  449. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  450. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  451. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  452. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  453. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  454. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  455. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  456. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  457. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  458. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  459. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  460. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  461. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  462. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  463. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  464. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  465. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
  466. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  467. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  468. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  469. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  470. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  471. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  472. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  473. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  474. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  475. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  476. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  477. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  478. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  479. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  480. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  481. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  482. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  483. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  484. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  485. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
  486. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  487. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  488. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  489. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  490. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormtypes.py +0 -0
  491. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  492. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_structlog.py +0 -0
  493. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_task.py +0 -0
  494. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_thishost.py +0 -0
  495. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_time.py +0 -0
  496. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_trigger.py +0 -0
  497. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_types.py +0 -0
  498. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  499. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_version.py +0 -0
  500. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lib_view.py +0 -0
  501. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  502. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  503. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_mindmeld.py +0 -0
  504. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_auth.py +0 -0
  505. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_base.py +0 -0
  506. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_belief.py +0 -0
  507. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_biz.py +0 -0
  508. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_crypto.py +0 -0
  509. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_dns.py +0 -0
  510. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_doc.py +0 -0
  511. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_economic.py +0 -0
  512. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_files.py +0 -0
  513. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_geopol.py +0 -0
  514. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_geospace.py +0 -0
  515. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_gov_cn.py +0 -0
  516. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_gov_us.py +0 -0
  517. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_infotech.py +0 -0
  518. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_language.py +0 -0
  519. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_material.py +0 -0
  520. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_math.py +0 -0
  521. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_orgs.py +0 -0
  522. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_planning.py +0 -0
  523. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_proj.py +0 -0
  524. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_risk.py +0 -0
  525. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_science.py +0 -0
  526. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_syn.py +0 -0
  527. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_telco.py +0 -0
  528. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_model_transport.py +0 -0
  529. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_servers_axon.py +0 -0
  530. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_servers_cortex.py +0 -0
  531. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_servers_cryotank.py +0 -0
  532. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_servers_stemcell.py +0 -0
  533. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_servers_univ.py +0 -0
  534. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_apikey.py +0 -0
  535. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_autodoc.py +0 -0
  536. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  537. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_backup.py +0 -0
  538. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_cellauth.py +0 -0
  539. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_changelog.py +0 -0
  540. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  541. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  542. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_csvtool.py +0 -0
  543. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  544. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_easycert.py +0 -0
  545. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_feed.py +0 -0
  546. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_genpkg.py +0 -0
  547. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_guid.py +0 -0
  548. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  549. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_hiveload.py +0 -0
  550. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_hivesave.py +0 -0
  551. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  552. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_livebackup.py +0 -0
  553. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_modrole.py +0 -0
  554. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_moduser.py +0 -0
  555. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_promote.py +0 -0
  556. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_pullfile.py +0 -0
  557. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_pushfile.py +0 -0
  558. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_reload.py +0 -0
  559. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_rstorm.py +0 -0
  560. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_snapshot.py +0 -0
  561. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_tools_storm.py +0 -0
  562. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_utils.py +0 -0
  563. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_utils_getrefs.py +0 -0
  564. {synapse-2.209.0 → synapse-2.210.0}/synapse/tests/test_utils_stormcov.py +0 -0
  565. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/__init__.py +0 -0
  566. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/aha/__init__.py +0 -0
  567. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/aha/provision/__init__.py +0 -0
  568. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/autodoc.py +0 -0
  569. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/backup.py +0 -0
  570. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/changelog.py +0 -0
  571. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/cryo/__init__.py +0 -0
  572. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/cryo/cat.py +0 -0
  573. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/cryo/list.py +0 -0
  574. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/docker/__init__.py +0 -0
  575. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/docker/validate.py +0 -0
  576. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/easycert.py +0 -0
  577. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/guid.py +0 -0
  578. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/hive/__init__.py +0 -0
  579. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/hive/load.py +0 -0
  580. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/hive/save.py +0 -0
  581. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/json2mpk.py +0 -0
  582. {synapse-2.209.0 → synapse-2.210.0}/synapse/tools/rstorm.py +0 -0
  583. {synapse-2.209.0 → synapse-2.210.0}/synapse/utils/__init__.py +0 -0
  584. {synapse-2.209.0 → synapse-2.210.0}/synapse/utils/getrefs.py +0 -0
  585. {synapse-2.209.0 → synapse-2.210.0}/synapse/utils/stormcov/__init__.py +0 -0
  586. {synapse-2.209.0 → synapse-2.210.0}/synapse/utils/stormcov/plugin.py +0 -0
  587. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/__init__.py +0 -0
  588. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  589. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  590. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cashaddress/base58.py +0 -0
  591. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cashaddress/convert.py +0 -0
  592. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  593. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  594. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  595. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/LICENSE +0 -0
  596. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/__init__.py +0 -0
  597. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  598. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  599. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  600. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  601. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
  602. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
  603. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  604. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/json.py +0 -0
  605. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  606. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  607. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  608. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  609. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  610. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
  611. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  612. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
  613. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  614. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  615. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  616. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  617. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  618. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  619. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/utils.py +0 -0
  620. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/LICENSE +0 -0
  621. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/__init__.py +0 -0
  622. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/constants.py +0 -0
  623. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  624. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  625. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  626. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  627. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  628. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  629. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  630. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  631. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  632. {synapse-2.209.0 → synapse-2.210.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  633. {synapse-2.209.0 → synapse-2.210.0}/synapse.egg-info/dependency_links.txt +0 -0
  634. {synapse-2.209.0 → synapse-2.210.0}/synapse.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse
3
- Version: 2.209.0
3
+ Version: 2.210.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License-Expression: Apache-2.0
@@ -49,7 +49,7 @@ Requires-Dist: idna<3.11,>=3.6
49
49
  Requires-Dist: python-dateutil<3.0,>=2.8
50
50
  Requires-Dist: pytz<2025.3,>=2023.3
51
51
  Requires-Dist: beautifulsoup4[html5lib]<5.0,>=4.11.1
52
- Requires-Dist: orjson<4.0,>=3.10.15
52
+ Requires-Dist: vtx-yyjson<5.0.0,>=4.3.0
53
53
  Provides-Extra: dev
54
54
  Requires-Dist: pytest<8.0.0,>=7.2.0; extra == "dev"
55
55
  Requires-Dist: autopep8<3.0.0,>=2.0.4; extra == "dev"
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.209.0'
7
+ version = '2.210.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -53,7 +53,7 @@ dependencies = [
53
53
  'python-dateutil>=2.8,<3.0',
54
54
  'pytz>=2023.3,<2025.3',
55
55
  'beautifulsoup4[html5lib]>=4.11.1,<5.0',
56
- 'orjson>=3.10.15,<4.0'
56
+ 'vtx-yyjson>=4.3.0,<5.0.0',
57
57
  ]
58
58
 
59
59
  [project.optional-dependencies]
@@ -2220,14 +2220,24 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
2220
2220
 
2221
2221
  logger.debug(f'HANDOFF: Connected to {s_urlhelp.sanitizeUrl(turl)}{_dispname}.')
2222
2222
 
2223
- if self.iden != await cell.getCellIden(): # pragma: no cover
2223
+ cellinfo = await cell.getCellInfo()
2224
+ cnfo = cellinfo.get('cell')
2225
+ if self.iden != cnfo.get('iden'): # pragma: no cover
2224
2226
  mesg = 'Mirror handoff remote cell iden does not match!'
2225
2227
  raise s_exc.BadArg(mesg=mesg)
2226
2228
 
2227
- if self.runid == await cell.getCellRunId(): # pragma: no cover
2229
+ if self.runid == cnfo.get('run'): # pragma: no cover
2228
2230
  mesg = 'Cannot handoff mirror leadership to myself!'
2229
2231
  raise s_exc.BadArg(mesg=mesg)
2230
2232
 
2233
+ ahalead = cnfo.get('aha', {}).get('leader')
2234
+ mirror_url = turl
2235
+ if turl.startswith('aha://') and ahalead is not None:
2236
+ ahauser = self.conf.get('aha:user')
2237
+ if ahauser is not None:
2238
+ ahauser = f'{ahauser}@'
2239
+ mirror_url = f'aha://{ahauser}{ahalead}...'
2240
+
2231
2241
  logger.debug(f'HANDOFF: Obtaining nexus lock{_dispname}.')
2232
2242
 
2233
2243
  async with self.nexslock:
@@ -2247,8 +2257,8 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
2247
2257
  logger.debug(f'HANDOFF: Setting the service as inactive{_dispname}.')
2248
2258
  await self.setCellActive(False)
2249
2259
 
2250
- logger.debug(f'HANDOFF: Configuring service to sync from new leader{_dispname}.')
2251
- self.modCellConf({'mirror': turl})
2260
+ logger.debug(f'HANDOFF: Configuring service to sync from new leader{_dispname} @ {s_urlhelp.sanitizeUrl(mirror_url)}.')
2261
+ self.modCellConf({'mirror': mirror_url})
2252
2262
 
2253
2263
  logger.debug(f'HANDOFF: Restarting the nexus{_dispname}.')
2254
2264
  await self.nexsroot.startup()
@@ -175,6 +175,11 @@ def create_task(coro):
175
175
 
176
176
  return task
177
177
 
178
+ async def await_bg_tasks():
179
+ if not bgtasks:
180
+ return []
181
+ return await asyncio.gather(*tuple(bgtasks), return_exceptions=True)
182
+
178
183
  class GenrHelp:
179
184
 
180
185
  def __init__(self, genr):
@@ -7,7 +7,7 @@ from typing import Any, BinaryIO, Callable, Iterator, Optional
7
7
 
8
8
  from synapse.vendor.cpython.lib.json import detect_encoding
9
9
 
10
- import orjson
10
+ import yyjson
11
11
 
12
12
  import synapse.exc as s_exc
13
13
 
@@ -37,8 +37,9 @@ def loads(s: str | bytes) -> Any:
37
37
  deserializing the provided data.
38
38
  '''
39
39
  try:
40
- return orjson.loads(s)
41
- except orjson.JSONDecodeError as exc:
40
+ return yyjson.Document(s, flags=yyjson.ReaderFlags.BIGNUM_AS_RAW).as_obj
41
+
42
+ except (ValueError, TypeError) as exc:
42
43
  extra = {'synapse': {'fn': 'loads', 'reason': str(exc)}}
43
44
  logger.warning('Using fallback JSON deserialization. Please report this to Vertex.', extra=extra)
44
45
  return _fallback_loads(s)
@@ -70,6 +71,33 @@ def _fallback_dumps(obj: Any, sort_keys: bool = False, indent: bool = False, def
70
71
  except TypeError as exc:
71
72
  raise s_exc.MustBeJsonSafe(mesg=exc.args[0])
72
73
 
74
+ def _dumps(obj, sort_keys=False, indent=False, default=None, newline=False):
75
+ rflags = 0
76
+ wflags = 0
77
+
78
+ if sort_keys:
79
+ rflags |= yyjson.ReaderFlags.SORT_KEYS
80
+
81
+ if indent:
82
+ wflags |= yyjson.WriterFlags.PRETTY_TWO_SPACES
83
+
84
+ if newline:
85
+ wflags |= yyjson.WriterFlags.WRITE_NEWLINE_AT_END
86
+
87
+ if isinstance(obj, bytes):
88
+ mesg = 'Object of type bytes is not JSON serializable'
89
+ raise s_exc.MustBeJsonSafe(mesg=mesg)
90
+
91
+ # Raw strings have to be double-quoted. This is because the default behavior for `yyjson.Document`
92
+ # is to attempt to parse the string as a serialized JSON string into objects, so we escape string
93
+ # values so we can get the JSON encoded string as output.
94
+ if isinstance(obj, str) and obj not in ('null', 'true', 'false'):
95
+ # TODO in 3xx convert this into obj = f'''"{obj.replace('"', '\\"')}"'''
96
+ obj = ''.join(('"', obj.replace('"', '\\"'), '"'))
97
+
98
+ doc = yyjson.Document(obj, default=default, flags=rflags)
99
+ return doc.dumps(flags=wflags).encode()
100
+
73
101
  def dumps(obj: Any, sort_keys: bool = False, indent: bool = False, default: Optional[Callable] = None, newline: bool = False) -> bytes:
74
102
  '''
75
103
  Serialize a python object to byte string.
@@ -89,24 +117,9 @@ def dumps(obj: Any, sort_keys: bool = False, indent: bool = False, default: Opti
89
117
  Raises:
90
118
  synapse.exc.MustBeJsonSafe: This exception is raised when a python object cannot be serialized.
91
119
  '''
92
- opts = 0
93
-
94
- if indent:
95
- opts |= orjson.OPT_INDENT_2
96
-
97
- if sort_keys:
98
- opts |= orjson.OPT_SORT_KEYS
99
-
100
- if newline:
101
- opts |= orjson.OPT_APPEND_NEWLINE
102
-
103
120
  try:
104
- return orjson.dumps(obj, option=opts, default=default)
105
-
106
- except orjson.JSONEncodeError as exc:
107
- if not isinstance(exc.__cause__, UnicodeEncodeError):
108
- raise s_exc.MustBeJsonSafe(mesg=exc.args[0])
109
-
121
+ return _dumps(obj, sort_keys=sort_keys, indent=indent, default=default, newline=newline)
122
+ except UnicodeEncodeError as exc:
110
123
  extra = {'synapse': {'fn': 'dumps', 'reason': str(exc)}}
111
124
  logger.warning('Using fallback JSON serialization. Please report this to Vertex.', extra=extra)
112
125
 
@@ -117,6 +130,10 @@ def dumps(obj: Any, sort_keys: bool = False, indent: bool = False, default: Opti
117
130
 
118
131
  return ret
119
132
 
133
+ except (TypeError, ValueError) as exc:
134
+ mesg = f'{exc.__class__.__name__}: {exc}'
135
+ raise s_exc.MustBeJsonSafe(mesg=mesg)
136
+
120
137
  def dump(obj: Any, fp: BinaryIO, sort_keys: bool = False, indent: bool = False, default: Optional[Callable] = None, newline: bool = False) -> None:
121
138
  '''
122
139
  Serialize a python object to a file-like object opened in binary mode.
@@ -217,8 +234,17 @@ def reqjsonsafe(item: Any, strict: bool = False) -> None:
217
234
  '''
218
235
  if strict:
219
236
  try:
220
- orjson.dumps(item)
237
+ _dumps(item)
238
+
239
+ except s_exc.MustBeJsonSafe:
240
+ raise
241
+
242
+ except UnicodeEncodeError as exc:
243
+ mesg = str(exc)
244
+ raise s_exc.MustBeJsonSafe(mesg=mesg)
245
+
221
246
  except Exception as exc:
222
- raise s_exc.MustBeJsonSafe(mesg=exc.args[0])
247
+ mesg = f'{exc.__class__.__name__}: {exc}'
248
+ raise s_exc.MustBeJsonSafe(mesg=mesg)
223
249
  else:
224
250
  dumps(item)
@@ -506,6 +506,7 @@ class NexsRoot(s_base.Base):
506
506
 
507
507
  async def runMirrorLoop(self, proxy):
508
508
 
509
+ cellinfo = None
509
510
  try:
510
511
  cellinfo = await proxy.getCellInfo()
511
512
  features = cellinfo.get('features', {})
@@ -536,6 +537,11 @@ class NexsRoot(s_base.Base):
536
537
 
537
538
  while not proxy.isfini:
538
539
 
540
+ if cellinfo:
541
+ ahaname = cellinfo.get('cell').get('aha', {}).get('name')
542
+ if ahaname:
543
+ logger.info(f'Mirror communicating with aha service {ahaname}')
544
+
539
545
  try:
540
546
 
541
547
  if self.readonly:
@@ -174,6 +174,14 @@ Examples:
174
174
  cron.at --dt 20181231Z2359 {[inet:ipv4=1]}
175
175
  '''
176
176
 
177
+ viewdeldescr = '''
178
+ Delete a view from the cortex.
179
+
180
+ Notes:
181
+ Deleting a view with the `view.del` command does not delete any of the layers in the view.
182
+ To delete layers, you must use the `layer.del` command separately.
183
+ '''
184
+
177
185
  wgetdescr = '''Retrieve bytes from a URL and store them in the axon. Yields inet:urlfile nodes.
178
186
 
179
187
  Examples:
@@ -656,7 +664,7 @@ stormcmds = (
656
664
  },
657
665
  {
658
666
  'name': 'view.del',
659
- 'descr': 'Delete a view from the cortex.',
667
+ 'descr': viewdeldescr,
660
668
  'cmdargs': (
661
669
  ('iden', {'help': 'Iden of the view to delete.'}),
662
670
  ),
@@ -2056,7 +2064,7 @@ class Runtime(s_base.Base):
2056
2064
  continue
2057
2065
 
2058
2066
  if len(nodes) == 1:
2059
- mesg = 'Ambiguous value for single node lookup: {propname}^={valu}'
2067
+ mesg = f'Ambiguous value for single node lookup: {propname}{cmpr}{valu}'
2060
2068
  raise s_exc.StormRuntimeError(mesg=mesg)
2061
2069
 
2062
2070
  nodes.append(node)
@@ -901,12 +901,14 @@ class User(s_stormtypes.Prim):
901
901
  ),
902
902
  'returns': {'type': 'null', }}},
903
903
  {'name': 'tell', 'desc': 'Send a tell notification to a user.',
904
+ 'deprecated': {'eolvers': 'v3.0.0'},
904
905
  'type': {'type': 'function', '_funcname': '_methUserTell',
905
906
  'args': (
906
907
  {'name': 'text', 'type': 'str', 'desc': 'The text of the message to send.', },
907
908
  ),
908
909
  'returns': {'type': 'null', }}},
909
910
  {'name': 'notify', 'desc': 'Send an arbitrary user notification.',
911
+ 'deprecated': {'eolvers': 'v3.0.0'},
910
912
  'type': {'type': 'function', '_funcname': '_methUserNotify',
911
913
  'args': (
912
914
  {'name': 'mesgtype', 'type': 'str', 'desc': 'The notification type.', },
@@ -1153,6 +1155,8 @@ class User(s_stormtypes.Prim):
1153
1155
  return await self.value()
1154
1156
 
1155
1157
  async def _methUserTell(self, text):
1158
+ s_common.deprecated('user.tell()', '2.210.0', '3.0.0')
1159
+ await self.runt.snap.warnonce('user.tell() is deprecated.')
1156
1160
  self.runt.confirm(('tell', self.valu), default=True)
1157
1161
  mesgdata = {
1158
1162
  'text': await s_stormtypes.tostr(text),
@@ -1161,6 +1165,8 @@ class User(s_stormtypes.Prim):
1161
1165
  return await self.runt.snap.core.addUserNotif(self.valu, 'tell', mesgdata)
1162
1166
 
1163
1167
  async def _methUserNotify(self, mesgtype, mesgdata):
1168
+ s_common.deprecated('user.notify()', '2.210.0', '3.0.0')
1169
+ await self.runt.snap.warnonce('user.notify() is deprecated.')
1164
1170
  if not self.runt.isAdmin():
1165
1171
  mesg = '$user.notify() method requires admin privs.'
1166
1172
  raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
@@ -1,4 +1,6 @@
1
1
  import synapse.exc as s_exc
2
+ import synapse.common as s_common
3
+
2
4
  import synapse.lib.stormtypes as s_stormtypes
3
5
 
4
6
  @s_stormtypes.registry.registerLib
@@ -12,6 +14,7 @@ class NotifyLib(s_stormtypes.Lib):
12
14
  Yield (<indx>, <mesg>) tuples for a user's notifications.
13
15
 
14
16
  ''',
17
+ 'deprecated': {'eolvers': 'v3.0.0'},
15
18
  'type': {
16
19
  'type': 'function', '_funcname': 'list',
17
20
  'args': (
@@ -28,6 +31,7 @@ class NotifyLib(s_stormtypes.Lib):
28
31
  Delete a previously delivered notification.
29
32
 
30
33
  ''',
34
+ 'deprecated': {'eolvers': 'v3.0.0'},
31
35
  'type': {
32
36
  'type': 'function', '_funcname': '_del',
33
37
  'args': (
@@ -44,6 +48,7 @@ class NotifyLib(s_stormtypes.Lib):
44
48
  Return a notification by ID (or ``(null)`` ).
45
49
 
46
50
  ''',
51
+ 'deprecated': {'eolvers': 'v3.0.0'},
47
52
  'type': {
48
53
  'type': 'function', '_funcname': 'get',
49
54
  'args': (
@@ -55,20 +60,21 @@ class NotifyLib(s_stormtypes.Lib):
55
60
  },
56
61
  },
57
62
  )
63
+ _storm_lib_deprecation = {'eolvers': 'v3.0.0'}
58
64
 
59
65
  def getObjLocals(self):
60
66
  return {
61
67
  'get': self.get,
62
68
  'del': self._del,
63
69
  'list': self.list,
64
- # 'bytime':
65
- # 'bytype':
66
70
  }
67
71
 
68
72
  @s_stormtypes.stormfunc(readonly=True)
69
73
  async def get(self, indx):
70
74
  indx = await s_stormtypes.toint(indx)
71
75
  mesg = await self.runt.snap.core.getUserNotif(indx)
76
+ s_common.deprecated('$lib.notifications.get()', '2.210.0', '3.0.0')
77
+ await self.runt.snap.warnonce('$lib.notifications.get() is deprecated.')
72
78
  if mesg[0] != self.runt.user.iden and not self.runt.isAdmin():
73
79
  mesg = 'You may only get notifications which belong to you.'
74
80
  raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
@@ -77,6 +83,8 @@ class NotifyLib(s_stormtypes.Lib):
77
83
  async def _del(self, indx):
78
84
  indx = await s_stormtypes.toint(indx)
79
85
  mesg = await self.runt.snap.core.getUserNotif(indx)
86
+ s_common.deprecated('$lib.notifications.del()', '2.210.0', '3.0.0')
87
+ await self.runt.snap.warnonce('$lib.notifications.del() is deprecated.')
80
88
  if mesg[0] != self.runt.user.iden and not self.runt.isAdmin():
81
89
  mesg = 'You may only delete notifications which belong to you.'
82
90
  raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
@@ -85,5 +93,7 @@ class NotifyLib(s_stormtypes.Lib):
85
93
  @s_stormtypes.stormfunc(readonly=True)
86
94
  async def list(self, size=None):
87
95
  size = await s_stormtypes.toint(size, noneok=True)
96
+ s_common.deprecated('$lib.notifications.list()', '2.210.0', '3.0.0')
97
+ await self.runt.snap.warnonce('$lib.notifications.list() is deprecated.')
88
98
  async for mesg in self.runt.snap.core.iterUserNotifs(self.runt.user.iden, size=size):
89
99
  yield mesg
@@ -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, 209, 0)
226
+ version = (2, 210, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = '0e5089f5b2e5da0d93c93a99943ebbd5fdb6cb4c'
228
+ commit = 'e43efa9d9c2257ff05fe47988a323e16896fdf50'
@@ -0,0 +1,42 @@
1
+ import synapse.lib.module as s_module
2
+
3
+ class EntityModule(s_module.CoreModule):
4
+
5
+ def getModelDefs(self):
6
+ return (('entity', {
7
+
8
+ 'types': (
9
+ ('entity:name', ('str', {'onespace': True, 'lower': True}), {
10
+ 'doc': 'A name used to refer to an entity.'}),
11
+
12
+ ('entity:actor', ('ndef', {'forms': ('ou:org', 'ps:person', 'ps:contact', 'risk:threat')}), {
13
+ 'doc': 'An entity which has initiative to act.'}),
14
+
15
+ ('entity:relationship:type:taxonomy', ('taxonomy', {}), {
16
+ 'interfaces': ('meta:taxonomy', ),
17
+ 'doc': 'A hierarchical taxonomy of entity relationship types.'}),
18
+
19
+ ('entity:relationship', ('guid', {}), {
20
+ 'doc': 'A directional relationship between two actor entities.'}),
21
+ ),
22
+
23
+ 'forms': (
24
+ ('entity:name', {}, ()),
25
+
26
+ ('entity:relationship:type:taxonomy', {}, ()),
27
+ ('entity:relationship', {}, (
28
+
29
+ ('type', ('entity:relationship:type:taxonomy', {}), {
30
+ 'doc': 'The type of relationship.'}),
31
+
32
+ ('period', ('ival', {}), {
33
+ 'doc': 'The time period when the relationship existed.'}),
34
+
35
+ ('source', ('entity:actor', {}), {
36
+ 'doc': 'The source entity in the relationship.'}),
37
+
38
+ ('target', ('entity:actor', {}), {
39
+ 'doc': 'The target entity in the relationship.'}),
40
+ )),
41
+ ),
42
+ }),)
@@ -3802,6 +3802,9 @@ class InetModule(s_module.CoreModule):
3802
3802
  ('attachments', ('array', {'type': 'inet:service:message:attachment', 'uniq': True, 'sorted': True}), {
3803
3803
  'doc': 'An array of files attached to the message.'}),
3804
3804
 
3805
+ ('hashtags', ('array', {'type': 'inet:web:hashtag', 'uniq': True, 'sorted': True, 'split': ','}), {
3806
+ 'doc': 'An array of hashtags mentioned within the message.'}),
3807
+
3805
3808
  ('place', ('geo:place', {}), {
3806
3809
  'doc': 'The place that the message was sent from.'}),
3807
3810
 
@@ -3823,6 +3826,11 @@ class InetModule(s_module.CoreModule):
3823
3826
 
3824
3827
  ('type', ('inet:service:message:type:taxonomy', {}), {
3825
3828
  'doc': 'The type of message.'}),
3829
+
3830
+ ('mentions', ('array', {'type': 'ndef',
3831
+ 'typeopts': {'forms': ('inet:service:account', 'inet:service:group')},
3832
+ 'uniq': True, 'sorted': True}), {
3833
+ 'doc': 'Contactable entities mentioned within the message.'}),
3826
3834
  )),
3827
3835
 
3828
3836
  ('inet:service:message:link', {}, (
@@ -3863,6 +3871,9 @@ class InetModule(s_module.CoreModule):
3863
3871
 
3864
3872
  ('period', ('ival', {}), {
3865
3873
  'doc': 'The time period where the channel was available.'}),
3874
+
3875
+ ('topic', ('media:topic', {}), {
3876
+ 'doc': 'The visible topic of the channel.'}),
3866
3877
  )),
3867
3878
 
3868
3879
  ('inet:service:thread', {}, (
@@ -490,13 +490,20 @@ class PsModule(s_module.CoreModule):
490
490
  ('crypto:address', ('crypto:currency:address', {}), {
491
491
  'doc': 'A crypto currency address associated with the contact.'
492
492
  }),
493
-
494
493
  ('lang', ('lang:language', {}), {
495
494
  'alts': ('langs',),
496
495
  'doc': 'The language specified for the contact.'}),
497
-
498
496
  ('langs', ('array', {'type': 'lang:language'}), {
499
497
  'doc': 'An array of alternative languages specified for the contact.'}),
498
+ ('banner', ('file:bytes', {}), {
499
+ 'doc': 'The file representing the banner for the contact.'}),
500
+ ('passwd', ('inet:passwd', {}), {
501
+ 'doc': 'The current password for the contact.'}),
502
+ ('website', ('inet:url', {}), {
503
+ 'doc': 'A related URL specified by the contact (e.g., a personal or company web '
504
+ 'page, blog, etc.).'}),
505
+ ('websites', ('array', {'type': 'inet:url', 'uniq': True, 'sorted': True}), {
506
+ 'doc': 'Alternative related URLs specified by the contact.'}),
500
507
  )),
501
508
  ('ps:vitals', {}, (
502
509
  ('asof', ('time', {}), {
@@ -152,12 +152,12 @@ class CortexTest(s_t_utils.SynTest):
152
152
  self.false((await core01.getCellInfo())['cell']['uplink'])
153
153
  # Note: The following mirror may change when SYN-7659 is addressed and greater
154
154
  # control over the topology update is available during the promotion process.
155
- self.eq((await core00.getCellInfo())['cell']['mirror'], 'aha://01.cortex.synapse')
155
+ self.eq((await core00.getCellInfo())['cell']['mirror'], 'aha://root@cortex...')
156
156
  self.none((await core01.getCellInfo())['cell']['mirror'])
157
157
 
158
158
  mods00 = s_common.yamlload(core00.dirn, 'cell.mods.yaml')
159
159
  mods01 = s_common.yamlload(core01.dirn, 'cell.mods.yaml')
160
- self.eq(mods00, {'mirror': 'aha://01.cortex.synapse'})
160
+ self.eq(mods00, {'mirror': 'aha://root@cortex...'})
161
161
  self.eq(mods01, {'mirror': None})
162
162
 
163
163
  await core00.nodes('[inet:ipv4=5.5.5.5]')
@@ -8367,7 +8367,7 @@ class CortexBasicTest(s_t_utils.SynTest):
8367
8367
  dirn01 = s_common.genpath(dirn, 'cell01')
8368
8368
 
8369
8369
  core00 = await base.enter_context(self.addSvcToAha(aha, '00.core', s_cortex.Cortex, dirn=dirn00))
8370
- provinfo = {'mirror': '00.core'}
8370
+ provinfo = {'mirror': 'core'}
8371
8371
  core01 = await base.enter_context(self.addSvcToAha(aha, '01.core', s_cortex.Cortex, dirn=dirn01, provinfo=provinfo))
8372
8372
 
8373
8373
  self.len(1, await core00.nodes('[inet:asn=0]'))
@@ -781,7 +781,7 @@ class AhaTest(s_test.SynTest):
781
781
  self.false(axon3.isactive)
782
782
  self.eq('aha://root@axon...', axon03.conf.get('mirror'))
783
783
 
784
- retn, outp = await self.execToolMain(s_a_list._main, [aha.getLocalUrl()])
784
+ retn, outp = await self.execToolMain(s_a_list.main, [aha.getLocalUrl()])
785
785
  self.eq(retn, 0)
786
786
  outp.expect('Service network leader')
787
787
  outp.expect('00.axon synapse True')
@@ -2238,7 +2238,7 @@ class CellTest(s_t_utils.SynTest):
2238
2238
  self.false(core00.isactive)
2239
2239
 
2240
2240
  modinfo = s_common.yamlload(core00.dirn, 'cell.mods.yaml')
2241
- self.isin('01.core', modinfo.get('mirror', ''))
2241
+ self.eq('aha://root@core...', modinfo.get('mirror', ''))
2242
2242
  modinfo = s_common.yamlload(core01.dirn, 'cell.mods.yaml')
2243
2243
  self.none(modinfo.get('mirror'))
2244
2244
 
@@ -2321,7 +2321,7 @@ class CellTest(s_t_utils.SynTest):
2321
2321
  self.false(core00.isactive)
2322
2322
 
2323
2323
  modinfo = s_common.yamlload(core00.dirn, 'cell.mods.yaml')
2324
- self.isin('01.core', modinfo.get('mirror', ''))
2324
+ self.eq('aha://root@core...', modinfo.get('mirror', ''))
2325
2325
  modinfo = s_common.yamlload(core01.dirn, 'cell.mods.yaml')
2326
2326
  self.none(modinfo.get('mirror'))
2327
2327
 
@@ -2333,7 +2333,7 @@ class CellTest(s_t_utils.SynTest):
2333
2333
  modinfo = s_common.yamlload(core00.dirn, 'cell.mods.yaml')
2334
2334
  self.none(modinfo.get('mirror'))
2335
2335
  modinfo = s_common.yamlload(core01.dirn, 'cell.mods.yaml')
2336
- self.isin('00.core', modinfo.get('mirror', ''))
2336
+ self.eq('aha://root@core...', modinfo.get('mirror', ''))
2337
2337
 
2338
2338
  # Backup the mirror (core01) which points to the core00
2339
2339
  async with await axon00.upload() as upfd:
@@ -3285,6 +3285,7 @@ class CellTest(s_t_utils.SynTest):
3285
3285
  dirn00 = s_common.genpath(dirn, '00.cell')
3286
3286
  dirn01 = s_common.genpath(dirn, '01.cell')
3287
3287
  dirn02 = s_common.genpath(dirn, '02.cell')
3288
+ dirn0002 = s_common.genpath(dirn, '00.02.cell')
3288
3289
 
3289
3290
  cell00 = await base.enter_context(self.addSvcToAha(aha, '00.cell', s_cell.Cell, dirn=dirn00))
3290
3291
  cell01 = await base.enter_context(self.addSvcToAha(aha, '01.cell', s_cell.Cell, dirn=dirn01,
@@ -3301,24 +3302,43 @@ class CellTest(s_t_utils.SynTest):
3301
3302
  await cell01.handoff('some://url')
3302
3303
  self.isin('01.cell is not the current leader', cm.exception.get('mesg'))
3303
3304
 
3304
- # Note: The following behavior may change when SYN-7659 is addressed and greater
3305
- # control over the topology update is available during the promotion process.
3306
- # Promote 02.cell -> Promote 01.cell -> Promote 00.cell -> BadState exception
3305
+ # Promote 02.cell -> Promote 01.cell -> Promote 00.cell, without breaking the configured topology
3307
3306
  await cell02.promote(graceful=True)
3308
3307
  self.false(cell00.isactive)
3308
+ self.eq(cell00.conf.get('mirror'), 'aha://root@cell...')
3309
3309
  self.false(cell01.isactive)
3310
+ self.eq(cell01.conf.get('mirror'), 'aha://root@cell...')
3310
3311
  self.true(cell02.isactive)
3312
+ self.none(cell02.conf.get('mirror'))
3311
3313
  await cell02.sync()
3312
3314
 
3313
3315
  await cell01.promote(graceful=True)
3314
3316
  self.false(cell00.isactive)
3317
+ self.eq(cell00.conf.get('mirror'), 'aha://root@cell...')
3315
3318
  self.true(cell01.isactive)
3319
+ self.none(cell01.conf.get('mirror'))
3316
3320
  self.false(cell02.isactive)
3321
+ self.eq(cell02.conf.get('mirror'), 'aha://root@cell...')
3317
3322
  await cell02.sync()
3318
3323
 
3324
+ await cell00.promote(graceful=True)
3325
+ self.true(cell00.isactive)
3326
+ self.none(cell00.conf.get('mirror'))
3327
+ self.false(cell01.isactive)
3328
+ self.eq(cell01.conf.get('mirror'), 'aha://root@cell...')
3329
+ self.false(cell02.isactive)
3330
+ self.eq(cell02.conf.get('mirror'), 'aha://root@cell...')
3331
+ await cell02.sync()
3332
+
3333
+ # A follower of a follower cannot be promoted up since its leader is not the active cell.
3334
+ cell0002 = await base.enter_context(self.addSvcToAha(aha, '00.02.cell', s_cell.Cell, dirn=dirn0002,
3335
+ provinfo={'mirror': '02.cell'}))
3336
+ self.false(cell0002.isactive)
3337
+ self.eq(cell0002.conf.get('mirror'), 'aha://root@02.cell...')
3319
3338
  with self.raises(s_exc.BadState) as cm:
3320
- await cell00.promote(graceful=True)
3321
- self.isin('02.cell is not the current leader', cm.exception.get('mesg'))
3339
+ await cell0002.promote(graceful=True)
3340
+ mesg = 'ahaname=02.cell is not the current leader and cannot handoff leadership to aha://00.02.cell.synapse.'
3341
+ self.isin(mesg, cm.exception.get('mesg'))
3322
3342
 
3323
3343
  async def test_cell_get_aha_proxy(self):
3324
3344
 
@@ -212,3 +212,26 @@ class CoroTest(s_t_utils.SynTest):
212
212
 
213
213
  with self.raises(Exception):
214
214
  await s_coro._parserforked(newp)
215
+
216
+ async def test_lib_coro_create_task(self):
217
+
218
+ async def sleep(n):
219
+ await asyncio.sleep(n)
220
+ if n == 0:
221
+ return 1 / 0
222
+ return n
223
+
224
+ s_coro.create_task(sleep(0.1))
225
+ s_coro.create_task(sleep(0.15))
226
+ s_coro.create_task(sleep(0.2))
227
+ self.len(3, s_coro.bgtasks)
228
+ results = await s_coro.await_bg_tasks()
229
+ self.eq(set(results), {0.1, 0.15, 0.2})
230
+ self.len(0, s_coro.bgtasks)
231
+ results = await s_coro.await_bg_tasks()
232
+ self.eq(results, [])
233
+
234
+ s_coro.create_task(sleep(0))
235
+ results = await s_coro.await_bg_tasks()
236
+ self.len(1, results)
237
+ self.isinstance(results[0], ZeroDivisionError)