synapse 2.253.0__tar.gz → 2.255.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.
Files changed (733) hide show
  1. {synapse-2.253.0/synapse.egg-info → synapse-2.255.0}/PKG-INFO +1 -1
  2. {synapse-2.253.0 → synapse-2.255.0}/pyproject.toml +1 -1
  3. {synapse-2.253.0 → synapse-2.255.0}/synapse/axon.py +71 -2
  4. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/aha.py +15 -3
  5. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/cell.py +5 -4
  6. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/nexus.py +4 -1
  7. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/model.py +297 -3
  8. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/task.py +19 -9
  9. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/version.py +2 -2
  10. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/economic.py +15 -0
  11. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/inet.py +9 -3
  12. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/infotech.py +4 -2
  13. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/person.py +20 -10
  14. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/risk.py +2 -1
  15. synapse-2.255.0/synapse/tests/files/certdir/cas/ca.crt +28 -0
  16. synapse-2.255.0/synapse/tests/files/certdir/cas/ca.key +51 -0
  17. synapse-2.255.0/synapse/tests/files/certdir/hosts/localhost.crt +29 -0
  18. synapse-2.255.0/synapse/tests/files/certdir/hosts/localhost.key +51 -0
  19. synapse-2.255.0/synapse/tests/files/certdir/users/root.crt +29 -0
  20. synapse-2.255.0/synapse/tests/files/certdir/users/root.key +51 -0
  21. synapse-2.255.0/synapse/tests/files/certdir/users/user.crt +29 -0
  22. synapse-2.255.0/synapse/tests/files/certdir/users/user.key +51 -0
  23. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_axon.py +129 -19
  24. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_aha.py +67 -0
  25. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_cell.py +28 -2
  26. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_nexus.py +24 -0
  27. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_model.py +493 -0
  28. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_task.py +33 -5
  29. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_economic.py +26 -0
  30. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_inet.py +22 -0
  31. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_person.py +16 -0
  32. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_demote.py +60 -0
  33. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_shutdown.py +20 -4
  34. {synapse-2.253.0 → synapse-2.255.0/synapse.egg-info}/PKG-INFO +1 -1
  35. synapse-2.253.0/synapse/tests/files/certdir/cas/ca.crt +0 -17
  36. synapse-2.253.0/synapse/tests/files/certdir/cas/ca.key +0 -28
  37. synapse-2.253.0/synapse/tests/files/certdir/hosts/localhost.crt +0 -18
  38. synapse-2.253.0/synapse/tests/files/certdir/hosts/localhost.key +0 -28
  39. synapse-2.253.0/synapse/tests/files/certdir/users/root.crt +0 -24
  40. synapse-2.253.0/synapse/tests/files/certdir/users/root.key +0 -52
  41. synapse-2.253.0/synapse/tests/files/certdir/users/user.crt +0 -18
  42. synapse-2.253.0/synapse/tests/files/certdir/users/user.key +0 -28
  43. {synapse-2.253.0 → synapse-2.255.0}/LICENSE +0 -0
  44. {synapse-2.253.0 → synapse-2.255.0}/README.rst +0 -0
  45. {synapse-2.253.0 → synapse-2.255.0}/setup.cfg +0 -0
  46. {synapse-2.253.0 → synapse-2.255.0}/synapse/__init__.py +0 -0
  47. {synapse-2.253.0 → synapse-2.255.0}/synapse/cells.py +0 -0
  48. {synapse-2.253.0 → synapse-2.255.0}/synapse/cmds/__init__.py +0 -0
  49. {synapse-2.253.0 → synapse-2.255.0}/synapse/cmds/boss.py +0 -0
  50. {synapse-2.253.0 → synapse-2.255.0}/synapse/cmds/cortex.py +0 -0
  51. {synapse-2.253.0 → synapse-2.255.0}/synapse/cmds/hive.py +0 -0
  52. {synapse-2.253.0 → synapse-2.255.0}/synapse/common.py +0 -0
  53. {synapse-2.253.0 → synapse-2.255.0}/synapse/cortex.py +0 -0
  54. {synapse-2.253.0 → synapse-2.255.0}/synapse/cryotank.py +0 -0
  55. {synapse-2.253.0 → synapse-2.255.0}/synapse/daemon.py +0 -0
  56. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/__init__.py +0 -0
  57. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  58. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/attack-flow/README.md +0 -0
  59. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  60. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  61. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  62. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  63. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  64. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/iana.tlds.mpk +0 -0
  65. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/iana.uris.mpk +0 -0
  66. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/README.md +0 -0
  67. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
  68. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  69. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  70. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  71. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  72. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  73. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  74. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  75. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  76. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  77. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  78. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  79. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  80. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  81. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  82. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  83. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  84. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  85. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  86. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  87. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  88. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  89. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  90. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  91. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  92. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  93. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  94. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  95. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  96. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  97. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  98. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  99. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  100. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  101. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  102. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  103. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  104. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  105. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  106. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  107. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  108. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  109. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  110. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  111. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  112. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  113. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  114. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  115. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  116. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  117. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  118. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  119. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  120. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  121. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  122. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  123. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  124. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  125. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  126. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/lark/__init__.py +0 -0
  127. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/lark/imap.lark +0 -0
  128. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/lark/storm.lark +0 -0
  129. {synapse-2.253.0 → synapse-2.255.0}/synapse/data/skills/storm/SKILL.md +0 -0
  130. {synapse-2.253.0 → synapse-2.255.0}/synapse/datamodel.py +0 -0
  131. {synapse-2.253.0 → synapse-2.255.0}/synapse/exc.py +0 -0
  132. {synapse-2.253.0 → synapse-2.255.0}/synapse/glob.py +0 -0
  133. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/__init__.py +0 -0
  134. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/agenda.py +0 -0
  135. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/ast.py +0 -0
  136. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/auth.py +0 -0
  137. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/autodoc.py +0 -0
  138. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/base.py +0 -0
  139. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/boss.py +0 -0
  140. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/cache.py +0 -0
  141. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/certdir.py +0 -0
  142. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/chop.py +0 -0
  143. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/cli.py +0 -0
  144. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/cmd.py +0 -0
  145. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/cmdr.py +0 -0
  146. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/config.py +0 -0
  147. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/const.py +0 -0
  148. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/coro.py +0 -0
  149. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/__init__.py +0 -0
  150. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/coin.py +0 -0
  151. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/ecc.py +0 -0
  152. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/jwk.py +0 -0
  153. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/passwd.py +0 -0
  154. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/rsa.py +0 -0
  155. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/tinfoil.py +0 -0
  156. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/crypto/utils.py +0 -0
  157. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/datfile.py +0 -0
  158. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/drive.py +0 -0
  159. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/dyndeps.py +0 -0
  160. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/encoding.py +0 -0
  161. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/gis.py +0 -0
  162. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/grammar.py +0 -0
  163. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/hashitem.py +0 -0
  164. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/hashset.py +0 -0
  165. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/health.py +0 -0
  166. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/hive.py +0 -0
  167. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/httpapi.py +0 -0
  168. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/ingest.py +0 -0
  169. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/interval.py +0 -0
  170. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/json.py +0 -0
  171. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/jsonstor.py +0 -0
  172. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/jsrpc.py +0 -0
  173. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/layer.py +0 -0
  174. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/link.py +0 -0
  175. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/lmdbslab.py +0 -0
  176. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/logging.py +0 -0
  177. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/mcp.py +0 -0
  178. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/modelrev.py +0 -0
  179. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/module.py +0 -0
  180. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/modules.py +0 -0
  181. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/msgpack.py +0 -0
  182. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/multislabseqn.py +0 -0
  183. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/node.py +0 -0
  184. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/nodefuse.py +0 -0
  185. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/oauth.py +0 -0
  186. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/output.py +0 -0
  187. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/parser.py +0 -0
  188. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/platforms/__init__.py +0 -0
  189. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/platforms/common.py +0 -0
  190. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/platforms/darwin.py +0 -0
  191. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/platforms/freebsd.py +0 -0
  192. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/platforms/linux.py +0 -0
  193. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/platforms/windows.py +0 -0
  194. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/process.py +0 -0
  195. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/processpool.py +0 -0
  196. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/queue.py +0 -0
  197. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/ratelimit.py +0 -0
  198. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/reflect.py +0 -0
  199. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/rstorm.py +0 -0
  200. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/schemas.py +0 -0
  201. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/scope.py +0 -0
  202. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/scrape.py +0 -0
  203. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/share.py +0 -0
  204. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/slaboffs.py +0 -0
  205. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/slabseqn.py +0 -0
  206. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/snap.py +0 -0
  207. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/spawner.py +0 -0
  208. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/spooled.py +0 -0
  209. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/storm.py +0 -0
  210. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/storm_format.py +0 -0
  211. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormctrl.py +0 -0
  212. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormhttp.py +0 -0
  213. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/__init__.py +0 -0
  214. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/aha.py +0 -0
  215. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/auth.py +0 -0
  216. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/backup.py +0 -0
  217. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/basex.py +0 -0
  218. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/cache.py +0 -0
  219. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/cell.py +0 -0
  220. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/compression.py +0 -0
  221. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/cortex.py +0 -0
  222. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/cryptoutils.py +0 -0
  223. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/easyperm.py +0 -0
  224. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/ecc.py +0 -0
  225. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/env.py +0 -0
  226. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/ethereum.py +0 -0
  227. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/gen.py +0 -0
  228. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/gis.py +0 -0
  229. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/graph.py +0 -0
  230. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/hashes.py +0 -0
  231. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/hex.py +0 -0
  232. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/imap.py +0 -0
  233. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/index.py +0 -0
  234. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/infosec.py +0 -0
  235. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/ipv6.py +0 -0
  236. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/iters.py +0 -0
  237. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/json.py +0 -0
  238. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/jwt.py +0 -0
  239. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/log.py +0 -0
  240. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/macro.py +0 -0
  241. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/math.py +0 -0
  242. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/mime.py +0 -0
  243. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/modelext.py +0 -0
  244. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/notifications.py +0 -0
  245. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/oauth.py +0 -0
  246. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/pack.py +0 -0
  247. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/pkg.py +0 -0
  248. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/project.py +0 -0
  249. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/quorum.py +0 -0
  250. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/random.py +0 -0
  251. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/rsa.py +0 -0
  252. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/scrape.py +0 -0
  253. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/smtp.py +0 -0
  254. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/spooled.py +0 -0
  255. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/stats.py +0 -0
  256. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/stix.py +0 -0
  257. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/storm.py +0 -0
  258. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/tabular.py +0 -0
  259. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/utils.py +0 -0
  260. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/vault.py +0 -0
  261. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/version.py +0 -0
  262. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/xml.py +0 -0
  263. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormlib/yaml.py +0 -0
  264. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormsvc.py +0 -0
  265. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormtypes.py +0 -0
  266. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/stormwhois.py +0 -0
  267. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/task.py +0 -0
  268. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/thishost.py +0 -0
  269. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/thisplat.py +0 -0
  270. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/threads.py +0 -0
  271. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/time.py +0 -0
  272. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/trigger.py +0 -0
  273. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/types.py +0 -0
  274. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/urlhelp.py +0 -0
  275. {synapse-2.253.0 → synapse-2.255.0}/synapse/lib/view.py +0 -0
  276. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/__init__.py +0 -0
  277. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/cvss.py +0 -0
  278. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/iana.py +0 -0
  279. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/iso3166.py +0 -0
  280. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/macho.py +0 -0
  281. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/pe.py +0 -0
  282. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/phonenum.py +0 -0
  283. {synapse-2.253.0 → synapse-2.255.0}/synapse/lookup/timezones.py +0 -0
  284. {synapse-2.253.0 → synapse-2.255.0}/synapse/mindmeld.py +0 -0
  285. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/__init__.py +0 -0
  286. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/auth.py +0 -0
  287. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/base.py +0 -0
  288. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/belief.py +0 -0
  289. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/biz.py +0 -0
  290. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/crypto.py +0 -0
  291. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/dns.py +0 -0
  292. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/doc.py +0 -0
  293. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/entity.py +0 -0
  294. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/files.py +0 -0
  295. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/geopol.py +0 -0
  296. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/geospace.py +0 -0
  297. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/gov/__init__.py +0 -0
  298. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/gov/cn.py +0 -0
  299. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/gov/intl.py +0 -0
  300. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/gov/us.py +0 -0
  301. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/language.py +0 -0
  302. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/material.py +0 -0
  303. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/math.py +0 -0
  304. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/media.py +0 -0
  305. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/orgs.py +0 -0
  306. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/planning.py +0 -0
  307. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/proj.py +0 -0
  308. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/science.py +0 -0
  309. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/syn.py +0 -0
  310. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/telco.py +0 -0
  311. {synapse-2.253.0 → synapse-2.255.0}/synapse/models/transport.py +0 -0
  312. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/__init__.py +0 -0
  313. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/aha.py +0 -0
  314. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/axon.py +0 -0
  315. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/cell.py +0 -0
  316. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/cortex.py +0 -0
  317. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/cryotank.py +0 -0
  318. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/jsonstor.py +0 -0
  319. {synapse-2.253.0 → synapse-2.255.0}/synapse/servers/stemcell.py +0 -0
  320. {synapse-2.253.0 → synapse-2.255.0}/synapse/telepath.py +0 -0
  321. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/__init__.py +0 -0
  322. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  323. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/__init__.py +0 -0
  324. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  325. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  326. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  327. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  328. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  329. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  330. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  331. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  332. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  333. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  334. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/cpedata.json +0 -0
  335. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  336. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  337. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  338. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  339. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  340. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stix_export/basic.json +0 -0
  341. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  342. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  343. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  344. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  345. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stix_import/scos.json +0 -0
  346. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  347. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  348. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  349. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/pipegen.storm +0 -0
  350. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  351. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  352. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  353. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  354. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormcov/teearg.storm +0 -0
  355. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormmod/common +0 -0
  356. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  357. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  358. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
  359. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
  360. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  361. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
  362. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
  363. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  364. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  365. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  366. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  367. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  368. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
  369. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
  370. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
  371. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  372. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  373. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  374. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  375. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  376. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  377. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  378. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  379. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  380. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  381. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  382. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  383. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  384. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  385. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  386. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/test.dat +0 -0
  387. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  388. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/docs/bar.rst +0 -0
  389. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/docs/foo.rst +0 -0
  390. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/docs/tables.rst +0 -0
  391. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
  392. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
  393. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
  394. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
  395. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
  396. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/nopmod.py +0 -0
  397. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_cmds_boss.py +0 -0
  398. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_cmds_cortex.py +0 -0
  399. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_cmds_hive.py +0 -0
  400. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_common.py +0 -0
  401. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_cortex.py +0 -0
  402. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_cryotank.py +0 -0
  403. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_daemon.py +0 -0
  404. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_data.py +0 -0
  405. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_datamodel.py +0 -0
  406. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_exc.py +0 -0
  407. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_glob.py +0 -0
  408. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_agenda.py +0 -0
  409. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_ast.py +0 -0
  410. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_auth.py +0 -0
  411. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_autodoc.py +0 -0
  412. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_base.py +0 -0
  413. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_boss.py +0 -0
  414. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_cache.py +0 -0
  415. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_certdir.py +0 -0
  416. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_chop.py +0 -0
  417. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_cli.py +0 -0
  418. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_config.py +0 -0
  419. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_const.py +0 -0
  420. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_coro.py +0 -0
  421. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  422. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  423. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_crypto_jwk.py +0 -0
  424. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  425. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_crypto_rsa.py +0 -0
  426. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  427. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_datfile.py +0 -0
  428. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_drive.py +0 -0
  429. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  430. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_encoding.py +0 -0
  431. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_gis.py +0 -0
  432. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_grammar.py +0 -0
  433. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_hashitem.py +0 -0
  434. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_hashset.py +0 -0
  435. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_health.py +0 -0
  436. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_hive.py +0 -0
  437. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_httpapi.py +0 -0
  438. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_interval.py +0 -0
  439. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_json.py +0 -0
  440. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  441. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_jsrpc.py +0 -0
  442. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_layer.py +0 -0
  443. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_link.py +0 -0
  444. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  445. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_logging.py +0 -0
  446. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_mcp.py +0 -0
  447. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_modelrev.py +0 -0
  448. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_module.py +0 -0
  449. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_msgpack.py +0 -0
  450. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  451. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_node.py +0 -0
  452. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_output.py +0 -0
  453. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  454. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_process.py +0 -0
  455. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_processpool.py +0 -0
  456. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_queue.py +0 -0
  457. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  458. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_reflect.py +0 -0
  459. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_rstorm.py +0 -0
  460. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_scope.py +0 -0
  461. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_scrape.py +0 -0
  462. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  463. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  464. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_snap.py +0 -0
  465. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_spawner.py +0 -0
  466. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_spooled.py +0 -0
  467. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_storm.py +0 -0
  468. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_storm_format.py +0 -0
  469. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormctrl.py +0 -0
  470. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  471. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  472. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  473. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  474. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  475. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  476. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  477. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  478. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  479. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  480. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_ecc.py +0 -0
  481. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  482. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  483. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  484. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  485. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  486. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  487. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  488. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
  489. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  490. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  491. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  492. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  493. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_jwt.py +0 -0
  494. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  495. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  496. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  497. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  498. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  499. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  500. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_pkg.py +0 -0
  501. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
  502. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  503. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_rsa.py +0 -0
  504. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  505. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  506. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  507. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  508. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  509. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  510. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  511. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
  512. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  513. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  514. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  515. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  516. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormtypes.py +0 -0
  517. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  518. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_task.py +0 -0
  519. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_thishost.py +0 -0
  520. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_time.py +0 -0
  521. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_trigger.py +0 -0
  522. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_types.py +0 -0
  523. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  524. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_version.py +0 -0
  525. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lib_view.py +0 -0
  526. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  527. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  528. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_mindmeld.py +0 -0
  529. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_auth.py +0 -0
  530. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_base.py +0 -0
  531. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_belief.py +0 -0
  532. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_biz.py +0 -0
  533. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_crypto.py +0 -0
  534. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_dns.py +0 -0
  535. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_doc.py +0 -0
  536. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_entity.py +0 -0
  537. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_files.py +0 -0
  538. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_geopol.py +0 -0
  539. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_geospace.py +0 -0
  540. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_gov_cn.py +0 -0
  541. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_gov_intl.py +0 -0
  542. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_gov_us.py +0 -0
  543. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_infotech.py +0 -0
  544. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_language.py +0 -0
  545. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_material.py +0 -0
  546. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_math.py +0 -0
  547. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_media.py +0 -0
  548. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_orgs.py +0 -0
  549. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_planning.py +0 -0
  550. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_proj.py +0 -0
  551. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_risk.py +0 -0
  552. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_science.py +0 -0
  553. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_syn.py +0 -0
  554. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_telco.py +0 -0
  555. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_model_transport.py +0 -0
  556. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_servers_axon.py +0 -0
  557. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_servers_cortex.py +0 -0
  558. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_servers_cryotank.py +0 -0
  559. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_servers_stemcell.py +0 -0
  560. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_servers_univ.py +0 -0
  561. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_telepath.py +0 -0
  562. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_aha.py +0 -0
  563. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_axon_copy.py +0 -0
  564. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
  565. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_axon_get.py +0 -0
  566. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_axon_put.py +0 -0
  567. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_cellauth.py +0 -0
  568. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_cortex_csv.py +0 -0
  569. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
  570. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
  571. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  572. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  573. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  574. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_hiveload.py +0 -0
  575. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_hivesave.py +0 -0
  576. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_apikey.py +0 -0
  577. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_backup.py +0 -0
  578. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_healthcheck.py +0 -0
  579. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_livebackup.py +0 -0
  580. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_modrole.py +0 -0
  581. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_moduser.py +0 -0
  582. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_promote.py +0 -0
  583. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_reload.py +0 -0
  584. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
  585. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_storm_cli.py +0 -0
  586. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
  587. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_storm_pkg_gen.py +0 -0
  588. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_utils_autodoc.py +0 -0
  589. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_utils_changelog.py +0 -0
  590. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
  591. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_utils_guid.py +0 -0
  592. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
  593. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_tools_utils_rstorm.py +0 -0
  594. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_utils.py +0 -0
  595. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_utils_getrefs.py +0 -0
  596. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/test_utils_stormcov.py +0 -0
  597. {synapse-2.253.0 → synapse-2.255.0}/synapse/tests/utils.py +0 -0
  598. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/__init__.py +0 -0
  599. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/__init__.py +0 -0
  600. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/clone.py +0 -0
  601. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/easycert.py +0 -0
  602. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/enroll.py +0 -0
  603. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/list.py +0 -0
  604. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/mirror.py +0 -0
  605. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/provision/__init__.py +0 -0
  606. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/provision/service.py +0 -0
  607. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/aha/provision/user.py +0 -0
  608. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/apikey.py +0 -0
  609. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/autodoc.py +0 -0
  610. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/axon/__init__.py +0 -0
  611. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/axon/copy.py +0 -0
  612. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/axon/dump.py +0 -0
  613. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/axon/get.py +0 -0
  614. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/axon/load.py +0 -0
  615. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/axon/put.py +0 -0
  616. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/axon2axon.py +0 -0
  617. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/backup.py +0 -0
  618. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cellauth.py +0 -0
  619. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/changelog.py +0 -0
  620. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cmdr.py +0 -0
  621. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cortex/__init__.py +0 -0
  622. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cortex/csv.py +0 -0
  623. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cortex/feed.py +0 -0
  624. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cortex/layer/__init__.py +0 -0
  625. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cortex/layer/dump.py +0 -0
  626. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cortex/layer/load.py +0 -0
  627. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cryo/__init__.py +0 -0
  628. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cryo/cat.py +0 -0
  629. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/cryo/list.py +0 -0
  630. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/csvtool.py +0 -0
  631. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/demote.py +0 -0
  632. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/docker/__init__.py +0 -0
  633. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/docker/validate.py +0 -0
  634. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/easycert.py +0 -0
  635. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/feed.py +0 -0
  636. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/genpkg.py +0 -0
  637. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/guid.py +0 -0
  638. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/healthcheck.py +0 -0
  639. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/hive/__init__.py +0 -0
  640. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/hive/load.py +0 -0
  641. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/hive/save.py +0 -0
  642. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/json2mpk.py +0 -0
  643. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/livebackup.py +0 -0
  644. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/modrole.py +0 -0
  645. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/moduser.py +0 -0
  646. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/pkgs/gendocs.py +0 -0
  647. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/promote.py +0 -0
  648. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/pullfile.py +0 -0
  649. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/pushfile.py +0 -0
  650. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/reload.py +0 -0
  651. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/rstorm.py +0 -0
  652. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/__init__.py +0 -0
  653. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/apikey.py +0 -0
  654. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/backup.py +0 -0
  655. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/demote.py +0 -0
  656. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/healthcheck.py +0 -0
  657. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/livebackup.py +0 -0
  658. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/modrole.py +0 -0
  659. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/moduser.py +0 -0
  660. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/promote.py +0 -0
  661. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/reload.py +0 -0
  662. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/shutdown.py +0 -0
  663. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/service/snapshot.py +0 -0
  664. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/shutdown.py +0 -0
  665. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/snapshot.py +0 -0
  666. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/storm/__init__.py +0 -0
  667. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/storm/__main__.py +0 -0
  668. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/storm/_cli.py +0 -0
  669. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/storm/pkg/__init__.py +0 -0
  670. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/storm/pkg/_pandoc_filter.py +0 -0
  671. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/storm/pkg/doc.py +0 -0
  672. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/storm/pkg/gen.py +0 -0
  673. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/utils/__init__.py +0 -0
  674. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/utils/autodoc.py +0 -0
  675. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/utils/changelog.py +0 -0
  676. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/utils/easycert.py +0 -0
  677. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/utils/guid.py +0 -0
  678. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/utils/json2mpk.py +0 -0
  679. {synapse-2.253.0 → synapse-2.255.0}/synapse/tools/utils/rstorm.py +0 -0
  680. {synapse-2.253.0 → synapse-2.255.0}/synapse/utils/__init__.py +0 -0
  681. {synapse-2.253.0 → synapse-2.255.0}/synapse/utils/getrefs.py +0 -0
  682. {synapse-2.253.0 → synapse-2.255.0}/synapse/utils/stormcov/__init__.py +0 -0
  683. {synapse-2.253.0 → synapse-2.255.0}/synapse/utils/stormcov/plugin.py +0 -0
  684. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/__init__.py +0 -0
  685. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  686. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  687. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cashaddress/base58.py +0 -0
  688. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cashaddress/convert.py +0 -0
  689. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  690. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  691. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  692. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/LICENSE +0 -0
  693. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/__init__.py +0 -0
  694. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  695. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  696. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  697. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  698. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
  699. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
  700. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  701. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/json.py +0 -0
  702. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  703. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  704. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  705. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  706. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  707. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
  708. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  709. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
  710. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  711. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  712. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  713. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  714. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  715. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  716. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/utils.py +0 -0
  717. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/LICENSE +0 -0
  718. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/__init__.py +0 -0
  719. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/constants.py +0 -0
  720. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  721. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  722. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  723. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  724. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  725. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  726. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  727. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  728. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  729. {synapse-2.253.0 → synapse-2.255.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  730. {synapse-2.253.0 → synapse-2.255.0}/synapse.egg-info/SOURCES.txt +0 -0
  731. {synapse-2.253.0 → synapse-2.255.0}/synapse.egg-info/dependency_links.txt +0 -0
  732. {synapse-2.253.0 → synapse-2.255.0}/synapse.egg-info/requires.txt +0 -0
  733. {synapse-2.253.0 → synapse-2.255.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.253.0
3
+ Version: 2.255.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
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.253.0'
7
+ version = '2.255.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -918,12 +918,15 @@ class Axon(s_cell.Cell):
918
918
  self.onfini(self.blobslab.fini)
919
919
 
920
920
  if self.inaugural:
921
- self._setStorVers(1)
921
+ self._setStorVers(2)
922
922
 
923
923
  storvers = self._getStorVers()
924
924
  if storvers < 1:
925
925
  storvers = await self._setStorVers01()
926
926
 
927
+ if storvers < 2:
928
+ storvers = await self._setStorVers02()
929
+
927
930
  async def _setStorVers01(self):
928
931
 
929
932
  logger.warning('Updating Axon storage version (adding offset index). This may take a while.')
@@ -948,6 +951,69 @@ class Axon(s_cell.Cell):
948
951
 
949
952
  return self._setStorVers(1)
950
953
 
954
+ async def _setStorVers02(self):
955
+
956
+ logger.warning('Updating Axon storage version (removing stale offset index entries). This may take a while.')
957
+
958
+ cursha = None
959
+
960
+ # deletes bump the outer scan and rewritten rows sort before its resume key
961
+ for lkey in self.blobslab.scanKeys(db=self.offsets):
962
+
963
+ await asyncio.sleep(0)
964
+
965
+ offssha = lkey[:32]
966
+ if offssha == cursha:
967
+ continue
968
+
969
+ if cursha is not None:
970
+ await self._fixBlobOffs(cursha)
971
+
972
+ cursha = offssha
973
+
974
+ if cursha is not None:
975
+ await self._fixBlobOffs(cursha)
976
+
977
+ return self._setStorVers(2)
978
+
979
+ async def _fixBlobOffs(self, sha256):
980
+ '''
981
+ Merge walk the offset rows expected from the blobs against the existing ones,
982
+ removing stale rows and putting missing or incorrect ones.
983
+ '''
984
+ def expected():
985
+ offs = 0
986
+ for lkey, byts in self.blobslab.scanByPref(sha256, db=self.blobs):
987
+ offs += len(byts)
988
+ yield sha256 + offs.to_bytes(8, 'big'), lkey[32:]
989
+
990
+ genr = expected()
991
+ item = next(genr, None)
992
+
993
+ # deletes bump the scan and puts only add keys before its current key
994
+ for lkey, lval in self.blobslab.scanByPref(sha256, db=self.offsets):
995
+
996
+ await asyncio.sleep(0)
997
+
998
+ while item is not None and item[0] < lkey:
999
+ self.blobslab.put(item[0], item[1], db=self.offsets)
1000
+ item = next(genr, None)
1001
+ await asyncio.sleep(0)
1002
+
1003
+ if item is None or lkey < item[0]:
1004
+ self.blobslab.delete(lkey, db=self.offsets)
1005
+ continue
1006
+
1007
+ if lval != item[1]:
1008
+ self.blobslab.put(lkey, item[1], db=self.offsets)
1009
+
1010
+ item = next(genr, None)
1011
+
1012
+ while item is not None:
1013
+ self.blobslab.put(item[0], item[1], db=self.offsets)
1014
+ item = next(genr, None)
1015
+ await asyncio.sleep(0)
1016
+
951
1017
  def _getStorVers(self):
952
1018
  byts = self.blobslab.get(b'version', db=self.metadata)
953
1019
  if not byts:
@@ -1319,6 +1385,9 @@ class Axon(s_cell.Cell):
1319
1385
  if first:
1320
1386
  first = False
1321
1387
  delt = boff - offs
1388
+ if delt == 0:
1389
+ continue
1390
+
1322
1391
  yield byts[-delt:]
1323
1392
  continue
1324
1393
 
@@ -1391,7 +1460,7 @@ class Axon(s_cell.Cell):
1391
1460
  async def _delBlobByts(self, sha256):
1392
1461
 
1393
1462
  # remove the offset indexes...
1394
- for lkey in self.blobslab.scanKeysByPref(sha256, db=self.blobs):
1463
+ for lkey in self.blobslab.scanKeysByPref(sha256, db=self.offsets):
1395
1464
  self.blobslab.delete(lkey, db=self.offsets)
1396
1465
  await asyncio.sleep(0)
1397
1466
 
@@ -742,26 +742,38 @@ class AhaCell(s_cell.Cell):
742
742
  async def getAhaSvcsByIden(self, iden, online=True, skiprun=None):
743
743
 
744
744
  runs = set()
745
+ aliases = {}
745
746
  async for svcdef in self.getAhaSvcs():
746
747
  await asyncio.sleep(0)
747
748
 
749
+ svcinfo = svcdef['svcinfo']
750
+
748
751
  # TODO services by iden indexes (SYN-8467)
749
- if svcdef['svcinfo'].get('iden') != iden:
752
+ if svcinfo.get('iden') != iden:
750
753
  continue
751
754
 
752
- if online and svcdef['svcinfo'].get('online') is None:
755
+ if online and svcinfo.get('online') is None:
753
756
  continue
754
757
 
755
- svcrun = svcdef['svcinfo'].get('run')
758
+ svcrun = svcinfo.get('run')
756
759
  if svcrun in runs:
757
760
  continue
758
761
 
759
762
  if skiprun == svcrun:
760
763
  continue
761
764
 
765
+ # prefer the real service entry over the leader alias for a run
766
+ if svcdef.get('svcname') == svcinfo.get('leader'):
767
+ aliases.setdefault(svcrun, svcdef)
768
+ continue
769
+
762
770
  runs.add(svcrun)
763
771
  yield svcdef
764
772
 
773
+ for svcrun, svcdef in aliases.items():
774
+ if svcrun not in runs:
775
+ yield svcdef
776
+
765
777
  def getAhaSvcUrl(self, svcdef, user='root'):
766
778
  svcfull = svcdef.get('name')
767
779
  svcnetw = svcdef.get('svcnetw')
@@ -1063,7 +1063,8 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
1063
1063
  'type': 'string',
1064
1064
  },
1065
1065
  'aha:promotable': {
1066
- 'description': 'Set to false to prevent this service from being promoted to leader.',
1066
+ 'description': 'Set to false to exclude this service from automatic leader selection when the leader demotes, '
1067
+ 'including during a graceful shutdown. It does not prevent an explicit promotion.',
1067
1068
  'type': 'boolean',
1068
1069
  'default': True,
1069
1070
  },
@@ -2639,7 +2640,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
2639
2640
  retn = []
2640
2641
  async for svcdef in ahaproxy.getAhaSvcsByIden(self.iden, skiprun=self.runid):
2641
2642
 
2642
- if not svcdef['svcinfo'].get('promotable'): # pragma: no cover
2643
+ if not svcdef['svcinfo'].get('promotable'):
2643
2644
  continue
2644
2645
 
2645
2646
  retn.append(svcdef)
@@ -2688,7 +2689,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
2688
2689
  logger.warning('...no suitable services discovered. Aborting demotion.', extra=extra)
2689
2690
  return False
2690
2691
 
2691
- for svcindx, svcproxy in sorted(cands):
2692
+ for svcindx, svcproxy in sorted(cands, key=lambda c: c[0], reverse=True):
2692
2693
 
2693
2694
  try:
2694
2695
  await svcproxy.promote(graceful=True)
@@ -5011,7 +5012,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
5011
5012
  # we can ignore the yielded aha names because we embed it in the task
5012
5013
  async for (ahasvc, (ok, retn)) in self.callPeerGenr(todo, timeout=timeout):
5013
5014
 
5014
- if not ok: # pragma: no cover
5015
+ if not ok:
5015
5016
  logger.warning(f'getTasks() on {ahasvc} failed: {retn}')
5016
5017
  continue
5017
5018
 
@@ -718,7 +718,10 @@ class NexsRoot(s_base.Base):
718
718
  except Exception as e:
719
719
  if respfutu is not None:
720
720
  assert not respfutu.done()
721
- respfutu.set_exception(e)
721
+
722
+ # the head of the traceback is our own still running frame
723
+ # and the caller may clear the frames of the traceback it gets.
724
+ respfutu.set_exception(e.with_traceback(e.__traceback__.tb_next))
722
725
  else: # pragma: no cover
723
726
  logger.exception(e)
724
727
 
@@ -1,3 +1,5 @@
1
+ import asyncio
2
+
1
3
  import synapse.exc as s_exc
2
4
  import synapse.common as s_common
3
5
 
@@ -5,6 +7,7 @@ import synapse.lib.node as s_node
5
7
  import synapse.lib.time as s_time
6
8
  import synapse.lib.cache as s_cache
7
9
  import synapse.lib.layer as s_layer
10
+ import synapse.lib.storm as s_storm
8
11
  import synapse.lib.stormtypes as s_stormtypes
9
12
 
10
13
  RISK_HASVULN_VULNPROPS = (
@@ -917,6 +920,61 @@ class LibModelMigration(s_stormtypes.Lib, MigrationEditorMixin):
917
920
  {'name': 'dst', 'type': 'node', 'desc': 'The node to merge into (will be kept).', },
918
921
  ),
919
922
  'returns': {'type': 'null', }}},
923
+ {'name': 'loop', 'desc': '''
924
+ Run a migration callback once for every view, and optionally for every layer which is
925
+ not the write layer of a view, in the Cortex.
926
+
927
+ Callbacks are embedded Storm queries (``${ ... }``) or query strings, rather than Storm
928
+ functions. Variables from the calling scope, including any captured by an embedded
929
+ query, are not available to them, and nodes are not passed in. Messages from
930
+ ``$lib.print()``, ``$lib.warn()``, ``$lib.fire()`` and ``$lib.csv.emit()`` in a callback
931
+ are passed through to the caller.
932
+
933
+ - The ``onview`` callback runs in each view, and can use ``$lib.view.get()`` to access it.
934
+ - The optional ``onlayer`` callback runs in the calling view, with ``$layer`` set to the
935
+ iden of that layer, and can use ``$lib.layer.get($layer)`` to access it. It only runs
936
+ for layers which are not the write layer of a view, such as a layer which is only
937
+ lower in the layer stack of a view, or a layer in no view, since ``onview`` already
938
+ migrated each view's write layer.
939
+
940
+ Each pass runs ``onview`` for every view, with parent views before their children, then
941
+ ``onlayer`` for every layer which is not the write layer of a view. A view or layer
942
+ created by a callback is picked up by a further pass, and passes repeat until one finds
943
+ nothing new. Each view and layer is visited at most once.
944
+
945
+ The loop does not fail because a view or layer changed underneath it. It emits a
946
+ warning naming the view or layer and continues with the next one when:
947
+
948
+ - A view or layer is deleted before its callback runs, or while its callback runs.
949
+ - A layer, or the write layer of a view, is read-only. These are skipped unless
950
+ ``readonly`` is true, which is intended for migrations which only lift nodes.
951
+ - A layer, or the write layer of a view, becomes read-only while its callback runs.
952
+
953
+ Any other error raised by a callback is raised to the caller.
954
+
955
+ The caller must be a global admin.
956
+
957
+ Examples:
958
+ Replace a tag on nodes in every view and print each layer which is not the write
959
+ layer of a view::
960
+
961
+ $lib.model.migration.loop(
962
+ ${ inet:fqdn#old.tag [ -#old.tag +#new.tag ] },
963
+ onlayer=${ $lib.print(`migrating layer {$layer}`) },
964
+ )
965
+ ''',
966
+ 'type': {'type': 'function', '_funcname': '_methLoop',
967
+ 'args': (
968
+ {'name': 'onview', 'type': ['str', 'storm:query'],
969
+ 'desc': 'A Storm query to run in each view.', },
970
+ {'name': 'onlayer', 'type': ['null', 'str', 'storm:query'], 'default': None,
971
+ 'desc': 'A Storm query to run for each layer which is not the write layer of a view, '
972
+ 'with ``$layer`` set to the layer iden.', },
973
+ {'name': 'readonly', 'type': 'boolean', 'default': False,
974
+ 'desc': 'Include read-only layers, and views with a read-only write layer, '
975
+ 'rather than skipping them with a warning.', },
976
+ ),
977
+ 'returns': {'type': 'null', }}},
920
978
  )
921
979
  _storm_lib_path = ('model', 'migration')
922
980
 
@@ -927,6 +985,7 @@ class LibModelMigration(s_stormtypes.Lib, MigrationEditorMixin):
927
985
  'copyTags': self._methCopyTags,
928
986
  'copyExtProps': self._methCopyExtProps,
929
987
  'fuse': self._methFuse,
988
+ 'loop': self._methLoop,
930
989
  }
931
990
 
932
991
  async def _methCopyData(self, src, dst, overwrite=False):
@@ -1027,6 +1086,147 @@ class LibModelMigration(s_stormtypes.Lib, MigrationEditorMixin):
1027
1086
  mesg += ', '.join([f'{iden} ({errm})' for iden, errm in failed])
1028
1087
  raise s_exc.SynErr(mesg=mesg, layers=[iden for iden, _ in failed])
1029
1088
 
1089
+ async def _methLoop(self, onview, onlayer=None, readonly=False):
1090
+
1091
+ self.runt.reqAdmin(mesg='$lib.model.migration.loop() requires global admin.')
1092
+
1093
+ if onview is None:
1094
+ raise s_exc.BadArg(mesg='$lib.model.migration.loop() requires an onview query.')
1095
+
1096
+ readonly = await s_stormtypes.tobool(readonly)
1097
+
1098
+ runt = self.runt
1099
+ core = runt.snap.core
1100
+
1101
+ async def getQuery(valu):
1102
+
1103
+ text = await s_stormtypes.tostr(valu, noneok=True)
1104
+ if text is None:
1105
+ return None
1106
+
1107
+ return await runt.getStormQuery(text)
1108
+
1109
+ async def runQuery(query, snap, opts=None):
1110
+
1111
+ # not a sub-runtime, so the caller's variables are not visible
1112
+ async with await s_storm.Runtime.anit(query, snap, user=runt.user, opts=opts) as subr:
1113
+ subr.debug = runt.debug
1114
+ subr.asroot = runt.asroot
1115
+ subr.readonly = runt.readonly
1116
+
1117
+ if subr.snap is not runt.snap:
1118
+ subr.snap._warnonce_keys = runt.snap._warnonce_keys
1119
+ for evnt in ('print', 'warn', 'storm:fire', 'csv:row'):
1120
+ await subr.enter_context(subr.snap.onWith(evnt, runt.snap.dist))
1121
+
1122
+ async for _ in subr.execute():
1123
+ await asyncio.sleep(0)
1124
+
1125
+ def getDesc(iden, name):
1126
+ if name is None:
1127
+ return iden
1128
+
1129
+ return f'{iden} ({name})'
1130
+
1131
+ def isWriteLayer(iden):
1132
+ if iden in wlyrs:
1133
+ return True
1134
+
1135
+ return any(view.layers[0].iden == iden for view in core.views.values())
1136
+
1137
+ viewq = await getQuery(onview)
1138
+ layrq = await getQuery(onlayer)
1139
+
1140
+ seen = set()
1141
+ wlyrs = set()
1142
+
1143
+ while True:
1144
+
1145
+ found = False
1146
+
1147
+ for vdef in await core.getViewDefs(deporder=True):
1148
+
1149
+ iden = vdef.get('iden')
1150
+ if iden in seen:
1151
+ continue
1152
+
1153
+ seen.add(iden)
1154
+ found = True
1155
+
1156
+ desc = getDesc(iden, vdef.get('name'))
1157
+
1158
+ view = core.views.get(iden)
1159
+ if view is None or view.isfini:
1160
+ await runt.warn(f'View {desc} was deleted before it could be migrated.')
1161
+ continue
1162
+
1163
+ wlyrs.add(view.layers[0].iden)
1164
+
1165
+ wasro = view.layers[0].readonly
1166
+ if wasro and not readonly:
1167
+ await runt.warn(f'View {desc} has a read-only write layer and was skipped.')
1168
+ continue
1169
+
1170
+ try:
1171
+ await runQuery(viewq, await view.snap(runt.user))
1172
+
1173
+ except s_exc.SynErr as e:
1174
+
1175
+ view = core.views.get(iden)
1176
+ if view is None or view.isfini:
1177
+ await runt.warn(f'View {desc} was deleted while being migrated.')
1178
+ continue
1179
+
1180
+ if isinstance(e, s_exc.IsReadOnly) and not wasro and view.layers[0].readonly:
1181
+ await runt.warn(f'View {desc} became read-only while being migrated.')
1182
+ continue
1183
+
1184
+ raise
1185
+
1186
+ if layrq is not None:
1187
+
1188
+ for layr in list(core.listLayers()):
1189
+
1190
+ iden = layr.iden
1191
+ if iden in seen or isWriteLayer(iden):
1192
+ continue
1193
+
1194
+ seen.add(iden)
1195
+ found = True
1196
+
1197
+ desc = getDesc(iden, layr.layrinfo.get('name'))
1198
+
1199
+ layr = core.layers.get(iden)
1200
+ if layr is None or layr.isfini:
1201
+ await runt.warn(f'Layer {desc} was deleted before it could be migrated.')
1202
+ continue
1203
+
1204
+ wasro = layr.readonly
1205
+ if wasro and not readonly:
1206
+ await runt.warn(f'Layer {desc} is read-only and was skipped.')
1207
+ continue
1208
+
1209
+ opts = {'vars': {'layer': iden}}
1210
+
1211
+ try:
1212
+ await runQuery(layrq, runt.snap, opts)
1213
+
1214
+ except s_exc.SynErr as e:
1215
+
1216
+ layr = core.layers.get(iden)
1217
+ if layr is None or layr.isfini:
1218
+ await runt.warn(f'Layer {desc} was deleted while being migrated.')
1219
+ continue
1220
+
1221
+ if isinstance(e, s_exc.IsReadOnly) and not wasro and layr.readonly:
1222
+ await runt.warn(f'Layer {desc} became read-only while being migrated.')
1223
+ continue
1224
+
1225
+ raise
1226
+
1227
+ if not found:
1228
+ break
1229
+
1030
1230
  @s_stormtypes.registry.registerLib
1031
1231
  class LibModelMigrations(s_stormtypes.Lib, MigrationEditorMixin):
1032
1232
  '''
@@ -1085,11 +1285,47 @@ class LibModelMigrations(s_stormtypes.Lib, MigrationEditorMixin):
1085
1285
  {'name': 'n', 'type': 'node', 'desc': 'The inet:sevice:message node to migrate.'},
1086
1286
  ),
1087
1287
  'returns': {'type': 'null'}}},
1288
+ {'name': 'inetServiceInstanceToPlatform', 'desc': '''
1289
+ Create an inet:service:platform node from the provided inet:service:instance node.
1290
+
1291
+ Edits will be made in the current write layer.
1292
+
1293
+ The inet:service:platform node is created with the same guid as the
1294
+ inet:service:instance node and its :parent property is set to the
1295
+ :platform of the instance. If the :platform of the instance has the same
1296
+ guid as the instance, :parent is not set and a warning is emitted.
1297
+ The :owner and :app properties are stored in node data under the keys
1298
+ 'migration:inet:service:instance:owner' and
1299
+ 'migration:inet:service:instance:app'. Extended properties on the
1300
+ inet:service:instance node are not copied to the inet:service:platform node.
1301
+
1302
+ Tags, tag properties, edges, and node data will be copied
1303
+ to the inet:service:platform node. However, existing tag properties and
1304
+ node data will not be overwritten.
1305
+
1306
+ Nodes in the current view which reference the instance using a
1307
+ :instance or :service:instance property are updated to use the
1308
+ :platform or :service:platform property instead. If that property is
1309
+ already set to a platform other than the new platform or the :parent,
1310
+ the existing value is kept and the instance is stored in node data
1311
+ under the key 'migration:<form>:<prop>'. Extended properties are only
1312
+ updated if a matching inet:service:platform property exists.
1313
+
1314
+ The inet:service:instance node is not deleted and may be removed
1315
+ once the migration has been verified.
1316
+ ''',
1317
+ 'type': {'type': 'function', '_funcname': '_storm_query',
1318
+ 'args': (
1319
+ {'name': 'n', 'type': 'node', 'desc': 'The inet:service:instance node to migrate.'},
1320
+ {'name': 'nodata', 'type': 'boolean', 'default': False,
1321
+ 'desc': 'Do not copy nodedata to the inet:service:platform node.'},
1322
+ ),
1323
+ 'returns': {'type': 'node', 'desc': 'The inet:service:platform node.'}}},
1088
1324
 
1089
1325
  )
1090
1326
  _storm_lib_path = ('model', 'migration', 's')
1091
1327
  _storm_query = '''
1092
- function inetSslCertToTlsServerCert(n, nodata=$lib.false) {
1328
+ function inetSslCertToTlsServerCert(n, nodata=(false)) {
1093
1329
  $form = $n.form()
1094
1330
  if ($form != 'inet:ssl:cert') {
1095
1331
  $mesg = `$lib.model.migration.s.inetSslCertToTlsServerCert() only accepts inet:ssl:cert nodes, not {$form}`
@@ -1117,10 +1353,10 @@ class LibModelMigrations(s_stormtypes.Lib, MigrationEditorMixin):
1117
1353
 
1118
1354
  [ .seen ?= $n.props.".seen" ]
1119
1355
 
1120
- $lib.model.migration.copyTags($n, $node, overwrite=$lib.false)
1356
+ $lib.model.migration.copyTags($n, $node, overwrite=(false))
1121
1357
  $lib.model.migration.copyEdges($n, $node)
1122
1358
  if (not $nodata) {
1123
- $lib.model.migration.copyData($n, $node, overwrite=$lib.false)
1359
+ $lib.model.migration.copyData($n, $node, overwrite=(false))
1124
1360
  }
1125
1361
 
1126
1362
  return($node)
@@ -1147,6 +1383,64 @@ class LibModelMigrations(s_stormtypes.Lib, MigrationEditorMixin):
1147
1383
 
1148
1384
  return()
1149
1385
  }
1386
+
1387
+ function inetServiceInstanceToPlatform(n, nodata=(false)) {
1388
+ if (not $n.isform(inet:service:instance)) {
1389
+ $mesg = `$lib.model.migration.s.inetServiceInstanceToPlatform() only accepts inet:service:instance nodes, not {$n.form()}`
1390
+ $lib.raise(BadArg, $mesg)
1391
+ }
1392
+
1393
+ $iden = $n.value()
1394
+ $parent = $n.props.platform
1395
+
1396
+ $plat = {[ inet:service:platform=$iden ]}
1397
+
1398
+ if ($parent = $iden) {
1399
+ $lib.warn(`The :platform of inet:service:instance={$iden} has the same guid as the instance, so :parent was not set on the inet:service:platform.`)
1400
+ } elif ($parent != null) {
1401
+ $plat.props.set(parent, $parent)
1402
+ }
1403
+
1404
+ for $name in (id, url, name, desc, period, status, creator, tenant, ".seen") {
1405
+ $valu = $n.props.$name
1406
+ if ($valu != null) { $plat.props.set($name, $valu) }
1407
+ }
1408
+
1409
+ for $name in (owner, app) {
1410
+ $valu = $n.props.$name
1411
+ if ($valu != null) { $plat.data.set(`migration:inet:service:instance:{$name}`, $valu) }
1412
+ }
1413
+
1414
+ $lib.model.migration.copyTags($n, $plat, overwrite=(false))
1415
+ $lib.model.migration.copyEdges($n, $plat)
1416
+ if (not $nodata) {
1417
+ $lib.model.migration.copyData($n, $plat, overwrite=(false))
1418
+ }
1419
+
1420
+ yield $n <- *
1421
+
1422
+ $refform = $node.form()
1423
+ for ($name, $valu) in $node.props {
1424
+ if ($valu != $iden) { continue }
1425
+
1426
+ if ($lib.model.prop(`{$refform}:{$name}`).type.name != 'inet:service:instance') { continue }
1427
+
1428
+ $pname = $lib.regex.replace('instance$', 'platform', $name)
1429
+ $pprop = $lib.model.prop(`{$refform}:{$pname}`)
1430
+ if ($pprop = null or $pprop.type.name != 'inet:service:platform') { continue }
1431
+
1432
+ $curv = $node.props.$pname
1433
+ if ($curv = null or $curv = $parent or $curv = $iden) {
1434
+ $node.props.set($pname, $iden)
1435
+ } else {
1436
+ $node.data.set(`migration:{$refform}:{$name}`, $valu)
1437
+ }
1438
+
1439
+ $node.props.set($name, $lib.undef)
1440
+ }
1441
+
1442
+ fini { return($plat) }
1443
+ }
1150
1444
  '''
1151
1445
 
1152
1446
  def getObjLocals(self):
@@ -11,10 +11,12 @@ stormcmds = [
11
11
  'descr': 'List running tasks on the Cortex and any mirrors.',
12
12
  'cmdargs': (
13
13
  ('--verbose', {'default': False, 'action': 'store_true', 'help': 'Enable verbose output.'}),
14
+ ('--timeout', {'type': 'int', 'default': None,
15
+ 'help': 'The timeout in seconds to wait for each peer to respond.'}),
14
16
  ),
15
17
  'storm': '''
16
18
  $tcnt = (0)
17
- for $task in $lib.task.list() {
19
+ for $task in $lib.task.list(timeout=$cmdopts.timeout) {
18
20
  $lib.print(`task iden: {$task.iden}`)
19
21
  $lib.print(` name: {$task.name}`)
20
22
  $lib.print(` user: {$task.username}`)
@@ -41,9 +43,11 @@ stormcmds = [
41
43
  'descr': 'Kill a running task on the Cortex or a mirror.',
42
44
  'cmdargs': (
43
45
  ('iden', {'help': 'Any prefix that matches exactly one valid task iden is accepted.'}),
46
+ ('--timeout', {'type': 'int', 'default': None,
47
+ 'help': 'The timeout in seconds to wait for each peer to respond.'}),
44
48
  ),
45
49
  'storm': '''
46
- $kild = $lib.task.kill($cmdopts.iden)
50
+ $kild = $lib.task.kill($cmdopts.iden, timeout=$cmdopts.timeout)
47
51
  $lib.print("kill status: {kild}", kild=$kild)
48
52
  ''',
49
53
  },
@@ -56,13 +60,17 @@ class LibTask(s_stormtypes.Lib):
56
60
  '''
57
61
  _storm_locals = (
58
62
  {'name': 'list', 'desc': 'List tasks the current user can access on the Cortex and its mirrors.',
59
- 'type': {'type': 'function', '_funcname': '_methTaskList', 'args': (),
63
+ 'type': {'type': 'function', '_funcname': '_methTaskList', 'args': (
64
+ {'name': 'timeout', 'type': 'int', 'default': None,
65
+ 'desc': 'The number of seconds to wait for each peer to respond.'},),
60
66
  'returns': {'name': 'yields', 'type': 'dict', 'desc': 'Task definitions.'}}},
61
67
  {'name': 'kill', 'desc': 'Stop a running task on the Cortex or a mirror.',
62
68
  'type': {'type': 'function', '_funcname': '_methTaskKill', 'args': (
63
69
  {'name': 'prefix', 'type': 'str',
64
70
  'desc': 'The prefix of the task to stop. '
65
- 'Tasks will only be stopped if there is a single prefix match.'},),
71
+ 'Tasks will only be stopped if there is a single prefix match.'},
72
+ {'name': 'timeout', 'type': 'int', 'default': None,
73
+ 'desc': 'The number of seconds to wait for each peer to respond.'},),
66
74
  'returns': {'type': 'boolean', 'desc': 'True if the task was cancelled, False otherwise.'}}},
67
75
  )
68
76
  _storm_lib_path = ('task',)
@@ -82,25 +90,27 @@ class LibTask(s_stormtypes.Lib):
82
90
  }
83
91
 
84
92
  @s_stormtypes.stormfunc(readonly=True)
85
- async def _methTaskList(self):
93
+ async def _methTaskList(self, timeout=None):
86
94
  useriden = self.runt.user.iden
87
95
  isallowed = self.runt.allowed(('task', 'get'))
96
+ timeout = await s_stormtypes.toint(timeout, noneok=True)
88
97
 
89
- async for task in self.runt.snap.core.getTasks():
98
+ async for task in self.runt.snap.core.getTasks(timeout=timeout):
90
99
  if isallowed or task['user'] == useriden:
91
100
  yield task
92
101
 
93
- async def _methTaskKill(self, prefix):
102
+ async def _methTaskKill(self, prefix, timeout=None):
94
103
  useriden = self.runt.user.iden
95
104
  isallowed = self.runt.allowed(('task', 'del'))
96
105
 
97
106
  prefix = await s_stormtypes.tostr(prefix)
107
+ timeout = await s_stormtypes.toint(timeout, noneok=True)
98
108
  if not prefix:
99
109
  mesg = 'An empty task iden prefix is not allowed.'
100
110
  raise s_exc.StormRuntimeError(mesg=mesg, iden=prefix)
101
111
 
102
112
  iden = None
103
- async for task in self.runt.snap.core.getTasks():
113
+ async for task in self.runt.snap.core.getTasks(timeout=timeout):
104
114
  taskiden = task['iden']
105
115
  if (isallowed or task['user'] == useriden) and taskiden.startswith(prefix):
106
116
  if iden is None:
@@ -113,4 +123,4 @@ class LibTask(s_stormtypes.Lib):
113
123
  mesg = 'Provided iden does not match any tasks.'
114
124
  raise s_exc.StormRuntimeError(mesg=mesg, iden=prefix)
115
125
 
116
- return await self.runt.snap.core.killTask(iden)
126
+ return await self.runt.snap.core.killTask(iden, timeout=timeout)
@@ -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, 253, 0)
226
+ version = (2, 255, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = '781db4966ec712dbffc9552eeba5d61a272662e9'
228
+ commit = '8918c39dde3b16ab2ba0f9c6331550cf7ff5e2c6'