synapse 2.165.0__tar.gz → 2.166.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of synapse might be problematic. Click here for more details.

Files changed (577) hide show
  1. {synapse-2.165.0/synapse.egg-info → synapse-2.166.0}/PKG-INFO +2 -2
  2. {synapse-2.165.0 → synapse-2.166.0}/pyproject.toml +2 -2
  3. {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/cortex.py +1 -6
  4. {synapse-2.165.0 → synapse-2.166.0}/synapse/common.py +6 -0
  5. {synapse-2.165.0 → synapse-2.166.0}/synapse/cortex.py +73 -56
  6. {synapse-2.165.0 → synapse-2.166.0}/synapse/datamodel.py +32 -0
  7. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/agenda.py +81 -51
  8. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/ast.py +21 -23
  9. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/base.py +0 -6
  10. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cell.py +13 -22
  11. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/httpapi.py +1 -0
  12. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/nexus.py +3 -2
  13. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/schemas.py +2 -0
  14. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/snap.py +50 -0
  15. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/storm.py +19 -17
  16. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/aha.py +4 -1
  17. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/auth.py +11 -4
  18. synapse-2.166.0/synapse/lib/stormlib/cache.py +202 -0
  19. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/cortex.py +69 -7
  20. synapse-2.166.0/synapse/lib/stormlib/spooled.py +109 -0
  21. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormtypes.py +43 -15
  22. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/trigger.py +10 -12
  23. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/types.py +1 -1
  24. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/version.py +2 -2
  25. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/view.py +12 -0
  26. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/inet.py +74 -2
  27. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/orgs.py +52 -8
  28. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/person.py +30 -11
  29. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/risk.py +44 -3
  30. {synapse-2.165.0 → synapse-2.166.0}/synapse/telepath.py +114 -32
  31. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cortex.py +40 -6
  32. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_datamodel.py +22 -0
  33. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_agenda.py +8 -1
  34. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_aha.py +18 -4
  35. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_storm.py +95 -4
  36. synapse-2.166.0/synapse/tests/test_lib_stormlib_cache.py +272 -0
  37. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_cortex.py +71 -0
  38. synapse-2.166.0/synapse/tests/test_lib_stormlib_spooled.py +190 -0
  39. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormtypes.py +27 -4
  40. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_inet.py +67 -0
  41. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_risk.py +6 -0
  42. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_telepath.py +30 -7
  43. synapse-2.166.0/synapse/tests/test_tools_modrole.py +142 -0
  44. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_moduser.py +105 -0
  45. synapse-2.166.0/synapse/tools/modrole.py +119 -0
  46. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/moduser.py +78 -10
  47. {synapse-2.165.0 → synapse-2.166.0/synapse.egg-info}/PKG-INFO +2 -2
  48. {synapse-2.165.0 → synapse-2.166.0}/synapse.egg-info/SOURCES.txt +4 -2
  49. {synapse-2.165.0 → synapse-2.166.0}/synapse.egg-info/requires.txt +1 -1
  50. synapse-2.165.0/synapse/lib/provenance.py +0 -111
  51. synapse-2.165.0/synapse/tests/test_lib_provenance.py +0 -37
  52. synapse-2.165.0/synapse/tests/test_tools_modrole.py +0 -61
  53. synapse-2.165.0/synapse/tools/modrole.py +0 -67
  54. {synapse-2.165.0 → synapse-2.166.0}/LICENSE +0 -0
  55. {synapse-2.165.0 → synapse-2.166.0}/README.rst +0 -0
  56. {synapse-2.165.0 → synapse-2.166.0}/setup.cfg +0 -0
  57. {synapse-2.165.0 → synapse-2.166.0}/synapse/__init__.py +0 -0
  58. {synapse-2.165.0 → synapse-2.166.0}/synapse/axon.py +0 -0
  59. {synapse-2.165.0 → synapse-2.166.0}/synapse/cells.py +0 -0
  60. {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/__init__.py +0 -0
  61. {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/boss.py +0 -0
  62. {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/hive.py +0 -0
  63. {synapse-2.165.0 → synapse-2.166.0}/synapse/cryotank.py +0 -0
  64. {synapse-2.165.0 → synapse-2.166.0}/synapse/daemon.py +0 -0
  65. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/__init__.py +0 -0
  66. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  67. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/attack-flow/README.md +0 -0
  68. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  69. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  70. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  71. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  72. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  73. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/iana.tlds.mpk +0 -0
  74. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/README.md +0 -0
  75. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  76. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  77. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  78. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  79. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  80. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  81. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  82. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  83. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  84. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  85. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  86. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  87. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  88. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  89. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  90. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  91. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  92. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  93. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  94. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  95. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  96. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  97. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  98. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  99. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  100. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  101. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  102. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  103. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  104. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  105. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  106. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  107. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  108. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  109. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  110. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  111. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  112. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  113. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  114. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  115. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  116. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  117. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  118. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  119. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  120. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  121. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  122. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  123. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  124. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  125. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  126. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  127. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  128. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  129. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  130. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  131. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  132. {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  133. {synapse-2.165.0 → synapse-2.166.0}/synapse/exc.py +0 -0
  134. {synapse-2.165.0 → synapse-2.166.0}/synapse/glob.py +0 -0
  135. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/__init__.py +0 -0
  136. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/aha.py +0 -0
  137. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/autodoc.py +0 -0
  138. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/boss.py +0 -0
  139. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cache.py +0 -0
  140. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/certdir.py +0 -0
  141. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/chop.py +0 -0
  142. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cli.py +0 -0
  143. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cmd.py +0 -0
  144. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cmdr.py +0 -0
  145. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/config.py +0 -0
  146. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/const.py +0 -0
  147. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/coro.py +0 -0
  148. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/__init__.py +0 -0
  149. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/coin.py +0 -0
  150. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/ecc.py +0 -0
  151. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/passwd.py +0 -0
  152. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/rsa.py +0 -0
  153. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/tinfoil.py +0 -0
  154. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/datfile.py +0 -0
  155. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/dyndeps.py +0 -0
  156. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/encoding.py +0 -0
  157. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/gis.py +0 -0
  158. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/grammar.py +0 -0
  159. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hashitem.py +0 -0
  160. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hashset.py +0 -0
  161. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/health.py +0 -0
  162. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hive.py +0 -0
  163. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hiveauth.py +0 -0
  164. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/ingest.py +0 -0
  165. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/interval.py +0 -0
  166. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/jsonstor.py +0 -0
  167. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/jupyter.py +0 -0
  168. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/layer.py +0 -0
  169. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/link.py +0 -0
  170. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/lmdbslab.py +0 -0
  171. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/modelrev.py +0 -0
  172. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/module.py +0 -0
  173. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/modules.py +0 -0
  174. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/msgpack.py +0 -0
  175. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/multislabseqn.py +0 -0
  176. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/node.py +0 -0
  177. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/oauth.py +0 -0
  178. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/output.py +0 -0
  179. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/parser.py +0 -0
  180. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/__init__.py +0 -0
  181. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/common.py +0 -0
  182. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/darwin.py +0 -0
  183. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/freebsd.py +0 -0
  184. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/linux.py +0 -0
  185. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/windows.py +0 -0
  186. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/queue.py +0 -0
  187. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/ratelimit.py +0 -0
  188. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/reflect.py +0 -0
  189. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/rstorm.py +0 -0
  190. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/scope.py +0 -0
  191. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/scrape.py +0 -0
  192. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/share.py +0 -0
  193. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/slaboffs.py +0 -0
  194. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/slabseqn.py +0 -0
  195. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/spooled.py +0 -0
  196. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/storm.lark +0 -0
  197. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/storm_format.py +0 -0
  198. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormctrl.py +0 -0
  199. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormhttp.py +0 -0
  200. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/__init__.py +0 -0
  201. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/backup.py +0 -0
  202. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/basex.py +0 -0
  203. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/cell.py +0 -0
  204. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/compression.py +0 -0
  205. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/easyperm.py +0 -0
  206. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/ethereum.py +0 -0
  207. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/gen.py +0 -0
  208. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/gis.py +0 -0
  209. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/graph.py +0 -0
  210. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/hashes.py +0 -0
  211. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/hex.py +0 -0
  212. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/imap.py +0 -0
  213. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/infosec.py +0 -0
  214. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/ipv6.py +0 -0
  215. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/iters.py +0 -0
  216. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/json.py +0 -0
  217. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/log.py +0 -0
  218. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/macro.py +0 -0
  219. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/math.py +0 -0
  220. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/mime.py +0 -0
  221. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/model.py +0 -0
  222. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/modelext.py +0 -0
  223. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/notifications.py +0 -0
  224. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/oauth.py +0 -0
  225. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/pack.py +0 -0
  226. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/project.py +0 -0
  227. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/random.py +0 -0
  228. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/scrape.py +0 -0
  229. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/smtp.py +0 -0
  230. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/stats.py +0 -0
  231. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/stix.py +0 -0
  232. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/storm.py +0 -0
  233. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/vault.py +0 -0
  234. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/version.py +0 -0
  235. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/xml.py +0 -0
  236. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/yaml.py +0 -0
  237. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormsvc.py +0 -0
  238. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormwhois.py +0 -0
  239. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/structlog.py +0 -0
  240. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/task.py +0 -0
  241. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/thishost.py +0 -0
  242. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/thisplat.py +0 -0
  243. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/threads.py +0 -0
  244. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/time.py +0 -0
  245. {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/urlhelp.py +0 -0
  246. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/__init__.py +0 -0
  247. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/cvss.py +0 -0
  248. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/iana.py +0 -0
  249. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/iso3166.py +0 -0
  250. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/macho.py +0 -0
  251. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/pe.py +0 -0
  252. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/phonenum.py +0 -0
  253. {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/timezones.py +0 -0
  254. {synapse-2.165.0 → synapse-2.166.0}/synapse/mindmeld.py +0 -0
  255. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/__init__.py +0 -0
  256. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/auth.py +0 -0
  257. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/base.py +0 -0
  258. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/belief.py +0 -0
  259. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/biz.py +0 -0
  260. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/crypto.py +0 -0
  261. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/dns.py +0 -0
  262. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/economic.py +0 -0
  263. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/files.py +0 -0
  264. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/geopol.py +0 -0
  265. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/geospace.py +0 -0
  266. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/__init__.py +0 -0
  267. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/cn.py +0 -0
  268. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/intl.py +0 -0
  269. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/us.py +0 -0
  270. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/infotech.py +0 -0
  271. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/language.py +0 -0
  272. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/material.py +0 -0
  273. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/media.py +0 -0
  274. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/proj.py +0 -0
  275. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/science.py +0 -0
  276. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/syn.py +0 -0
  277. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/telco.py +0 -0
  278. {synapse-2.165.0 → synapse-2.166.0}/synapse/models/transport.py +0 -0
  279. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/__init__.py +0 -0
  280. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/aha.py +0 -0
  281. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/axon.py +0 -0
  282. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/cell.py +0 -0
  283. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/cortex.py +0 -0
  284. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/cryotank.py +0 -0
  285. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/jsonstor.py +0 -0
  286. {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/stemcell.py +0 -0
  287. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/__init__.py +0 -0
  288. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  289. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/__init__.py +0 -0
  290. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  291. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  292. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  293. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  294. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  295. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  296. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  297. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/root.key +0 -0
  298. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  299. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/user.key +0 -0
  300. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  301. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  302. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  303. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  304. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  305. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_export/basic.json +0 -0
  306. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  307. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  308. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  309. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  310. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  311. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  312. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  313. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  314. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  315. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  316. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormmod/common +0 -0
  317. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  318. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  319. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  320. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  321. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  322. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  323. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  324. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  325. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  326. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  327. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  328. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  329. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  330. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  331. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  332. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  333. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  334. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  335. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  336. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  337. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  338. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  339. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  340. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/test.dat +0 -0
  341. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  342. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/nopmod.py +0 -0
  343. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_axon.py +0 -0
  344. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cmds_boss.py +0 -0
  345. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cmds_cortex.py +0 -0
  346. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cmds_hive.py +0 -0
  347. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_common.py +0 -0
  348. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cryotank.py +0 -0
  349. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_daemon.py +0 -0
  350. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_data.py +0 -0
  351. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_exc.py +0 -0
  352. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_glob.py +0 -0
  353. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_init.py +0 -0
  354. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_ast.py +0 -0
  355. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_autodoc.py +0 -0
  356. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_base.py +0 -0
  357. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_boss.py +0 -0
  358. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_cache.py +0 -0
  359. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_cell.py +0 -0
  360. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_certdir.py +0 -0
  361. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_chop.py +0 -0
  362. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_cli.py +0 -0
  363. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_config.py +0 -0
  364. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_const.py +0 -0
  365. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_coro.py +0 -0
  366. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  367. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  368. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  369. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  370. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_datfile.py +0 -0
  371. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  372. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_encoding.py +0 -0
  373. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_gis.py +0 -0
  374. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_grammar.py +0 -0
  375. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hashitem.py +0 -0
  376. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hashset.py +0 -0
  377. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_health.py +0 -0
  378. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hive.py +0 -0
  379. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hiveauth.py +0 -0
  380. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_httpapi.py +0 -0
  381. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_interval.py +0 -0
  382. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  383. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_jupyter.py +0 -0
  384. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_layer.py +0 -0
  385. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_link.py +0 -0
  386. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  387. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_modelrev.py +0 -0
  388. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_module.py +0 -0
  389. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_msgpack.py +0 -0
  390. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  391. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_nexus.py +0 -0
  392. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_node.py +0 -0
  393. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_output.py +0 -0
  394. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  395. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_queue.py +0 -0
  396. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  397. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_reflect.py +0 -0
  398. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_rstorm.py +0 -0
  399. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_scope.py +0 -0
  400. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_scrape.py +0 -0
  401. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  402. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  403. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_snap.py +0 -0
  404. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_spooled.py +0 -0
  405. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_storm_format.py +0 -0
  406. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  407. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  408. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  409. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  410. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  411. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  412. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  413. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  414. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  415. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  416. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  417. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  418. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  419. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  420. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  421. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  422. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  423. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  424. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  425. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  426. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  427. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  428. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  429. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  430. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  431. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  432. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  433. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  434. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  435. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  436. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  437. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  438. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  439. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  440. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  441. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_structlog.py +0 -0
  442. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_task.py +0 -0
  443. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_thishost.py +0 -0
  444. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_time.py +0 -0
  445. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_trigger.py +0 -0
  446. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_types.py +0 -0
  447. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  448. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_version.py +0 -0
  449. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_view.py +0 -0
  450. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  451. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  452. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_mindmeld.py +0 -0
  453. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_auth.py +0 -0
  454. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_base.py +0 -0
  455. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_belief.py +0 -0
  456. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_biz.py +0 -0
  457. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_crypto.py +0 -0
  458. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_dns.py +0 -0
  459. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_economic.py +0 -0
  460. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_files.py +0 -0
  461. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_geopol.py +0 -0
  462. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_geospace.py +0 -0
  463. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_gov_cn.py +0 -0
  464. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_gov_intl.py +0 -0
  465. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_gov_us.py +0 -0
  466. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_infotech.py +0 -0
  467. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_language.py +0 -0
  468. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_material.py +0 -0
  469. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_media.py +0 -0
  470. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_orgs.py +0 -0
  471. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_person.py +0 -0
  472. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_proj.py +0 -0
  473. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_science.py +0 -0
  474. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_syn.py +0 -0
  475. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_telco.py +0 -0
  476. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_transport.py +0 -0
  477. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_axon.py +0 -0
  478. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_cortex.py +0 -0
  479. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_cryotank.py +0 -0
  480. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_stemcell.py +0 -0
  481. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_univ.py +0 -0
  482. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_aha.py +0 -0
  483. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_autodoc.py +0 -0
  484. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  485. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_backup.py +0 -0
  486. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_cellauth.py +0 -0
  487. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  488. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  489. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_csvtool.py +0 -0
  490. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  491. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_easycert.py +0 -0
  492. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_feed.py +0 -0
  493. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_genpkg.py +0 -0
  494. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_guid.py +0 -0
  495. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  496. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_hiveload.py +0 -0
  497. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_hivesave.py +0 -0
  498. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  499. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_livebackup.py +0 -0
  500. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_pullfile.py +0 -0
  501. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_pushfile.py +0 -0
  502. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_reload.py +0 -0
  503. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_rstorm.py +0 -0
  504. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_storm.py +0 -0
  505. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_utils.py +0 -0
  506. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_utils_getrefs.py +0 -0
  507. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_utils_stormcov.py +0 -0
  508. {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/utils.py +0 -0
  509. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/__init__.py +0 -0
  510. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/__init__.py +0 -0
  511. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/easycert.py +0 -0
  512. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/enroll.py +0 -0
  513. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/list.py +0 -0
  514. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/provision/__init__.py +0 -0
  515. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/provision/service.py +0 -0
  516. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/provision/user.py +0 -0
  517. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/autodoc.py +0 -0
  518. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/axon2axon.py +0 -0
  519. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/backup.py +0 -0
  520. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cellauth.py +0 -0
  521. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cmdr.py +0 -0
  522. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cryo/__init__.py +0 -0
  523. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cryo/cat.py +0 -0
  524. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cryo/list.py +0 -0
  525. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/csvtool.py +0 -0
  526. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/docker/__init__.py +0 -0
  527. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/docker/validate.py +0 -0
  528. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/easycert.py +0 -0
  529. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/feed.py +0 -0
  530. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/genpkg.py +0 -0
  531. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/guid.py +0 -0
  532. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/healthcheck.py +0 -0
  533. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/hive/__init__.py +0 -0
  534. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/hive/load.py +0 -0
  535. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/hive/save.py +0 -0
  536. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/json2mpk.py +0 -0
  537. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/livebackup.py +0 -0
  538. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/promote.py +0 -0
  539. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/pullfile.py +0 -0
  540. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/pushfile.py +0 -0
  541. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/reload.py +0 -0
  542. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/rstorm.py +0 -0
  543. {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/storm.py +0 -0
  544. {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/__init__.py +0 -0
  545. {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/getrefs.py +0 -0
  546. {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/stormcov/__init__.py +0 -0
  547. {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/stormcov/plugin.py +0 -0
  548. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/__init__.py +0 -0
  549. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  550. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  551. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/base58.py +0 -0
  552. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/convert.py +0 -0
  553. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  554. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  555. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  556. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  557. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  558. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  559. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  560. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  561. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  562. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/utils.py +0 -0
  563. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/LICENSE +0 -0
  564. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/__init__.py +0 -0
  565. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/constants.py +0 -0
  566. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  567. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  568. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  569. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  570. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  571. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  572. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  573. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  574. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  575. {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  576. {synapse-2.165.0 → synapse-2.166.0}/synapse.egg-info/dependency_links.txt +0 -0
  577. {synapse-2.165.0 → synapse-2.166.0}/synapse.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.165.0
3
+ Version: 2.166.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License: Apache License 2.0
@@ -36,7 +36,7 @@ Requires-Dist: lark==1.1.9
36
36
  Requires-Dist: Pygments<2.18.0,>=2.7.4
37
37
  Requires-Dist: packaging<24.0,>=20.0
38
38
  Requires-Dist: fastjsonschema<2.20.0,>=2.18.0
39
- Requires-Dist: stix2-validator<4.0.0,>=3.0.0
39
+ Requires-Dist: stix2-validator<3.2.0,>=3.0.0
40
40
  Requires-Dist: vcrpy<5.2.0,>=4.3.1
41
41
  Requires-Dist: base58<2.2.0,>=2.1.0
42
42
  Requires-Dist: python-bitcoinlib<0.13.0,>=0.11.0
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.165.0'
7
+ version = '2.166.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -40,7 +40,7 @@ dependencies = [
40
40
  'Pygments>=2.7.4,<2.18.0',
41
41
  'packaging>=20.0,<24.0',
42
42
  'fastjsonschema>=2.18.0,<2.20.0',
43
- 'stix2-validator>=3.0.0,<4.0.0',
43
+ 'stix2-validator>=3.0.0,<3.2.0',
44
44
  'vcrpy>=4.3.1,<5.2.0',
45
45
  'base58>=2.1.0,<2.2.0',
46
46
  'python-bitcoinlib>=0.11.0,<0.13.0',
@@ -212,7 +212,7 @@ class StormCmd(s_cli.Cmd):
212
212
  * nodeedits (default),
213
213
  * count (just counts of nodeedits), or
214
214
  * none (no such messages emitted).
215
- --show-prov: Show provenance messages.
215
+ --show-prov: Deprecated. This no longer does anything.
216
216
  --raw: Print the nodes in their raw format. This overrides --hide-tags and --hide-props.
217
217
  --debug: Display cmd debug information along with nodes in raw format. This overrides other display arguments.
218
218
  --path: Get path information about returned nodes.
@@ -256,7 +256,6 @@ class StormCmd(s_cli.Cmd):
256
256
  'err': self._onErr,
257
257
  'node:edits': self._onNodeEdits,
258
258
  'node:edits:count': self._onNodeEditsCount,
259
- 'prov:new': self._onProvNew, # TODO remove in 3.0.0
260
259
  }
261
260
  self._indented = False
262
261
 
@@ -281,10 +280,6 @@ class StormCmd(s_cli.Cmd):
281
280
  s_cli.Cmd.printf(self, '.' * count, addnl=False, color=NODEEDIT_COLOR)
282
281
  self._indented = True
283
282
 
284
- def _onProvNew(self, mesg, opts):
285
- if opts.get('show-prov'):
286
- self.printf(repr(mesg), color=PROVNEW_COLOR)
287
-
288
283
  def _printNodeProp(self, name, valu):
289
284
  self.printf(f' {name} = {valu}')
290
285
 
@@ -973,6 +973,12 @@ def unjsonsafe_nodeedits(nodeedits):
973
973
 
974
974
  return retn
975
975
 
976
+ def reprauthrule(rule):
977
+ text = '.'.join(rule[1])
978
+ if not rule[0]:
979
+ text = '!' + text
980
+ return text
981
+
976
982
  def reqJsonSafeStrict(item):
977
983
  '''
978
984
  Require the item to be safe to serialize to JSON without type coercion issues.
@@ -53,7 +53,6 @@ import synapse.lib.crypto.rsa as s_rsa
53
53
  import synapse.lib.stormhttp as s_stormhttp # NOQA
54
54
  import synapse.lib.stormwhois as s_stormwhois # NOQA
55
55
 
56
- import synapse.lib.provenance as s_provenance
57
56
  import synapse.lib.stormtypes as s_stormtypes
58
57
 
59
58
  import synapse.lib.stormlib.aha as s_stormlib_aha # NOQA
@@ -74,6 +73,7 @@ import synapse.lib.stormlib.smtp as s_stormlib_smtp # NOQA
74
73
  import synapse.lib.stormlib.stix as s_stormlib_stix # NOQA
75
74
  import synapse.lib.stormlib.yaml as s_stormlib_yaml # NOQA
76
75
  import synapse.lib.stormlib.basex as s_stormlib_basex # NOQA
76
+ import synapse.lib.stormlib.cache as s_stormlib_cache # NOQA
77
77
  import synapse.lib.stormlib.graph as s_stormlib_graph # NOQA
78
78
  import synapse.lib.stormlib.iters as s_stormlib_iters # NOQA
79
79
  import synapse.lib.stormlib.macro as s_stormlib_macro
@@ -89,6 +89,7 @@ import synapse.lib.stormlib.random as s_stormlib_random # NOQA
89
89
  import synapse.lib.stormlib.scrape as s_stormlib_scrape # NOQA
90
90
  import synapse.lib.stormlib.infosec as s_stormlib_infosec # NOQA
91
91
  import synapse.lib.stormlib.project as s_stormlib_project # NOQA
92
+ import synapse.lib.stormlib.spooled as s_stormlib_spooled # NOQA
92
93
  import synapse.lib.stormlib.version as s_stormlib_version # NOQA
93
94
  import synapse.lib.stormlib.easyperm as s_stormlib_easyperm # NOQA
94
95
  import synapse.lib.stormlib.ethereum as s_stormlib_ethereum # NOQA
@@ -286,10 +287,8 @@ class CoreApi(s_cell.CellApi):
286
287
  s_common.deprecated('CoreApi.addNode')
287
288
  async with await self.cell.snap(user=self.user) as snap:
288
289
  self.user.confirm(('node', 'add', form), gateiden=snap.wlyr.iden)
289
- with s_provenance.claim('coreapi', meth='node:add', user=snap.user.iden):
290
-
291
- node = await snap.addNode(form, valu, props=props)
292
- return node.pack()
290
+ node = await snap.addNode(form, valu, props=props)
291
+ return node.pack()
293
292
 
294
293
  async def addNodes(self, nodes):
295
294
  '''
@@ -317,16 +316,14 @@ class CoreApi(s_cell.CellApi):
317
316
  done[formname] = True
318
317
 
319
318
  async with await self.cell.snap(user=self.user) as snap:
320
- with s_provenance.claim('coreapi', meth='node:add', user=snap.user.iden):
321
319
 
322
- snap.strict = False
323
-
324
- async for node in snap.addNodes(nodes):
320
+ snap.strict = False
321
+ async for node in snap.addNodes(nodes):
325
322
 
326
- if node is not None:
327
- node = node.pack()
323
+ if node is not None:
324
+ node = node.pack()
328
325
 
329
- yield node
326
+ yield node
330
327
 
331
328
  async def getFeedFuncs(self):
332
329
  '''
@@ -361,9 +358,8 @@ class CoreApi(s_cell.CellApi):
361
358
  })
362
359
 
363
360
  async with await self.cell.snap(user=self.user, view=view) as snap:
364
- with s_provenance.claim('feed:data', name=name, user=snap.user.iden):
365
- snap.strict = False
366
- await snap.addFeedData(name, items)
361
+ snap.strict = False
362
+ await snap.addFeedData(name, items)
367
363
 
368
364
  async def count(self, text, opts=None):
369
365
  '''
@@ -1002,7 +998,16 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1002
998
  'multiqueue': self.multiqueue,
1003
999
  })
1004
1000
 
1005
- await self.auth.addAuthGate('cortex', 'cortex')
1001
+ # TODO - Remove this in 3.0.0
1002
+ ag = await self.auth.addAuthGate('cortex', 'cortex')
1003
+ for (useriden, user) in ag.gateusers.items():
1004
+ mesg = f'User {useriden} ({user.name}) has a rule on the "cortex" authgate. This authgate is not used ' \
1005
+ f'for permission checks and will be removed in Synapse v3.0.0.'
1006
+ logger.warning(mesg, extra=await self.getLogExtra(user=useriden, username=user.name))
1007
+ for (roleiden, role) in ag.gateroles.items():
1008
+ mesg = f'Role {roleiden} ({role.name}) has a rule on the "cortex" authgate. This authgate is not used ' \
1009
+ f'for permission checks and will be removed in Synapse v3.0.0.'
1010
+ logger.warning(mesg, extra=await self.getLogExtra(role=roleiden, rolename=role.name))
1006
1011
 
1007
1012
  self._initVaults()
1008
1013
 
@@ -1447,6 +1452,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1447
1452
  async def initServiceActive(self):
1448
1453
 
1449
1454
  await self.stormdmons.start()
1455
+ await self.agenda.clearRunningStatus()
1450
1456
 
1451
1457
  for view in self.views.values():
1452
1458
  await view.initTrigTask()
@@ -1472,19 +1478,28 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1472
1478
 
1473
1479
  async def initStormPool(self):
1474
1480
 
1475
- byts = self.slab.get(b'storm:pool', db='cell:conf')
1476
- if byts is None:
1477
- return
1481
+ try:
1482
+
1483
+ byts = self.slab.get(b'storm:pool', db='cell:conf')
1484
+ if byts is None:
1485
+ return
1486
+
1487
+ url, opts = s_msgpack.un(byts)
1478
1488
 
1479
- url, opts = s_msgpack.un(byts)
1489
+ self.stormpoolurl = url
1490
+ self.stormpoolopts = opts
1480
1491
 
1481
- self.stormpoolurl = url
1482
- self.stormpoolopts = opts
1492
+ async def onlink(proxy, urlinfo):
1493
+ _url = s_urlhelp.sanitizeUrl(s_telepath.zipurl(urlinfo))
1494
+ logger.debug(f'Stormpool client connected to {_url}')
1483
1495
 
1484
- self.stormpool = await s_telepath.open(url)
1496
+ self.stormpool = await s_telepath.open(url, onlink=onlink)
1485
1497
 
1486
- # make this one a fini weakref vs the fini() handler
1487
- self.onfini(self.stormpool)
1498
+ # make this one a fini weakref vs the fini() handler
1499
+ self.onfini(self.stormpool)
1500
+
1501
+ except Exception as e: # pragma: no cover
1502
+ logger.exception(f'Error starting stormpool, it will not be available: {e}')
1488
1503
 
1489
1504
  async def finiStormPool(self):
1490
1505
 
@@ -3478,14 +3493,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3478
3493
  buid = s_common.uhex(iden)
3479
3494
  async with await self.snap(user=user) as snap:
3480
3495
 
3481
- with s_provenance.claim('coreapi', meth='tag:add', user=snap.user.iden):
3482
-
3483
- node = await snap.getNodeByBuid(buid)
3484
- if node is None:
3485
- raise s_exc.NoSuchIden(iden=iden)
3496
+ node = await snap.getNodeByBuid(buid)
3497
+ if node is None:
3498
+ raise s_exc.NoSuchIden(iden=iden)
3486
3499
 
3487
- await node.addTag(tag, valu=valu)
3488
- return node.pack()
3500
+ await node.addTag(tag, valu=valu)
3501
+ return node.pack()
3489
3502
 
3490
3503
  async def addNode(self, user, form, valu, props=None):
3491
3504
 
@@ -3505,14 +3518,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3505
3518
 
3506
3519
  async with await self.snap(user=user) as snap:
3507
3520
 
3508
- with s_provenance.claim('coreapi', meth='tag:del', user=snap.user.iden):
3509
-
3510
- node = await snap.getNodeByBuid(buid)
3511
- if node is None:
3512
- raise s_exc.NoSuchIden(iden=iden)
3521
+ node = await snap.getNodeByBuid(buid)
3522
+ if node is None:
3523
+ raise s_exc.NoSuchIden(iden=iden)
3513
3524
 
3514
- await node.delTag(tag)
3515
- return node.pack()
3525
+ await node.delTag(tag)
3526
+ return node.pack()
3516
3527
 
3517
3528
  async def _onCoreFini(self):
3518
3529
  '''
@@ -4130,7 +4141,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4130
4141
  @s_nexus.Pusher.onPushAuto('http:api:mod')
4131
4142
  async def modHttpExtApi(self, iden, name, valu):
4132
4143
  # Created, Creator, Updated are not mutable
4133
- if name in ('name', 'desc', 'runas', 'methods', 'authenticated', 'perms', 'readonly', 'vars'):
4144
+ if name in ('name', 'desc', 'runas', 'methods', 'authenticated', 'pool', 'perms', 'readonly', 'vars'):
4134
4145
  # Schema takes care of these values
4135
4146
  pass
4136
4147
  elif name == 'owner':
@@ -5280,12 +5291,14 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5280
5291
  return mirropts
5281
5292
 
5282
5293
  async def _getMirrorProxy(self):
5283
- if isinstance(self.stormpool, s_telepath.Pool) and self.stormpool.size() == 0:
5284
- mesg = 'Storm query mirror pool is empty, running locally instead.'
5285
- logger.warning(mesg)
5294
+
5295
+ if self.stormpool is None: # pragma: no cover
5296
+ return None
5297
+
5298
+ if self.stormpool.size() == 0:
5299
+ logger.warning('Storm query mirror pool is empty, running query locally.')
5286
5300
  return None
5287
5301
 
5288
- proxy = None
5289
5302
  try:
5290
5303
  timeout = self.stormpoolopts.get('timeout:connection')
5291
5304
  proxy = await self.stormpool.proxy(timeout=timeout)
@@ -5293,10 +5306,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5293
5306
  if proxyname is not None and proxyname == self.ahasvcname:
5294
5307
  # we are part of the pool and were selected. Convert to local use.
5295
5308
  return None
5309
+
5310
+ return proxy
5311
+
5296
5312
  except (TimeoutError, s_exc.IsFini):
5297
- mesg = 'Unable to get proxy for query mirror, running locally instead.'
5298
- logger.warning(mesg)
5299
- return proxy
5313
+ logger.warning('Timeout waiting for pool mirror, running query locally.')
5314
+ return None
5300
5315
 
5301
5316
  async def storm(self, text, opts=None):
5302
5317
 
@@ -5767,16 +5782,15 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
5767
5782
 
5768
5783
  async def _initCoreMods(self):
5769
5784
 
5770
- with s_provenance.claim('init', meth='_initCoreMods'):
5771
- for ctor, modu in list(self.modules.items()):
5785
+ for ctor, modu in list(self.modules.items()):
5772
5786
 
5773
- try:
5774
- await s_coro.ornot(modu.initCoreModule)
5775
- except asyncio.CancelledError: # pragma: no cover TODO: remove once >= py 3.8 only
5776
- raise
5777
- except Exception:
5778
- logger.exception(f'module initCoreModule failed: {ctor}')
5779
- self.modules.pop(ctor, None)
5787
+ try:
5788
+ await s_coro.ornot(modu.initCoreModule)
5789
+ except asyncio.CancelledError: # pragma: no cover TODO: remove once >= py 3.8 only
5790
+ raise
5791
+ except Exception:
5792
+ logger.exception(f'module initCoreModule failed: {ctor}')
5793
+ self.modules.pop(ctor, None)
5780
5794
 
5781
5795
  def _loadCoreModule(self, ctor, conf=None):
5782
5796
 
@@ -6033,6 +6047,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
6033
6047
  elif name == 'doc':
6034
6048
  appt.doc = str(valu)
6035
6049
 
6050
+ elif name == 'pool':
6051
+ appt.pool = bool(valu)
6052
+
6036
6053
  else:
6037
6054
  mesg = f'editCronJob name {name} is not supported for editing.'
6038
6055
  raise s_exc.BadArg(mesg=mesg)
@@ -873,10 +873,42 @@ class Model:
873
873
  for ifname in form.type.info.get('interfaces', ()):
874
874
  self._addFormIface(form, ifname)
875
875
 
876
+ self._checkFormDisplay(form)
877
+
876
878
  self.formprefixcache.clear()
877
879
 
878
880
  return form
879
881
 
882
+ def _checkFormDisplay(self, form):
883
+
884
+ formtype = self.types.get(form.full)
885
+
886
+ display = formtype.info.get('display')
887
+ if display is None:
888
+ return
889
+
890
+ for column in display.get('columns', ()):
891
+ coltype = column.get('type')
892
+ colopts = column.get('opts')
893
+
894
+ if coltype == 'prop':
895
+ curf = form
896
+ propname = colopts.get('name')
897
+ parts = propname.split('::')
898
+
899
+ for partname in parts:
900
+ prop = curf.prop(partname)
901
+ if prop is None:
902
+ mesg = (f'Form {form.name} defines prop column {propname}'
903
+ f' but {curf.full} has no property named {partname}.')
904
+ raise s_exc.BadFormDef(mesg=mesg)
905
+
906
+ curf = self.form(prop.type.name)
907
+
908
+ else:
909
+ mesg = f'Form {form.name} defines column with invalid type ({coltype}).'
910
+ raise s_exc.BadFormDef(mesg=mesg)
911
+
880
912
  def delForm(self, formname):
881
913
 
882
914
  form = self.forms.get(formname)
@@ -16,7 +16,6 @@ import synapse.common as s_common
16
16
 
17
17
  import synapse.lib.base as s_base
18
18
  import synapse.lib.coro as s_coro
19
- import synapse.lib.provenance as s_provenance
20
19
 
21
20
  # Agenda: manages running one-shot and periodic tasks in the future ("appointments")
22
21
 
@@ -259,6 +258,7 @@ class _Appt:
259
258
  _synced_attrs = {
260
259
  'doc',
261
260
  'name',
261
+ 'pool',
262
262
  'created',
263
263
  'enabled',
264
264
  'errcount',
@@ -271,10 +271,11 @@ class _Appt:
271
271
  'lastfinishtime',
272
272
  }
273
273
 
274
- def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None):
274
+ def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None, pool=False):
275
275
  self.doc = ''
276
276
  self.name = ''
277
277
  self.stor = stor
278
+ self.pool = pool
278
279
  self.iden = iden
279
280
  self.recur = recur # does this appointment repeat
280
281
  self.indx = indx # incremented for each appt added ever. Used for nexttime tiebreaking for stable ordering
@@ -339,6 +340,7 @@ class _Appt:
339
340
  'ver': 1,
340
341
  'doc': self.doc,
341
342
  'name': self.name,
343
+ 'pool': self.pool,
342
344
  'enabled': self.enabled,
343
345
  'recur': self.recur,
344
346
  'iden': self.iden,
@@ -366,6 +368,7 @@ class _Appt:
366
368
  appt = cls(stor, val['iden'], val['recur'], val['indx'], val['query'], val['creator'], recs, nexttime=val['nexttime'], view=val.get('view'))
367
369
  appt.doc = val.get('doc', '')
368
370
  appt.name = val.get('name', '')
371
+ appt.pool = val.get('pool', False)
369
372
  appt.created = val.get('created', None)
370
373
  appt.laststarttime = val['laststarttime']
371
374
  appt.lastfinishtime = val['lastfinishtime']
@@ -562,6 +565,8 @@ class Agenda(s_base.Base):
562
565
  view = cdef.get('view')
563
566
  created = cdef.get('created')
564
567
 
568
+ pool = cdef.get('pool', False)
569
+
565
570
  recur = incunit is not None
566
571
  indx = self._next_indx
567
572
  self._next_indx += 1
@@ -602,7 +607,7 @@ class Agenda(s_base.Base):
602
607
  incvals = (incvals, )
603
608
  recs.extend(ApptRec(rd, incunit, v) for (rd, v) in itertools.product(reqdicts, incvals))
604
609
 
605
- appt = _Appt(self, iden, recur, indx, query, creator, recs, nexttime=nexttime, view=view, created=created)
610
+ appt = _Appt(self, iden, recur, indx, query, creator, recs, nexttime=nexttime, view=view, created=created, pool=pool)
606
611
  self._addappt(iden, appt)
607
612
 
608
613
  appt.doc = cdef.get('doc', '')
@@ -698,6 +703,13 @@ class Agenda(s_base.Base):
698
703
  self.tickoff += offs
699
704
  self._wake_event.set()
700
705
 
706
+ async def clearRunningStatus(self):
707
+ '''Used for clearing the running state at startup or change of leadership.'''
708
+ for appt in list(self.appts.values()):
709
+ if appt.isrunning:
710
+ logger.debug(f'Clearing the isrunning flag for {appt.iden}')
711
+ await self.core.addCronEdits(appt.iden, {'isrunning': False})
712
+
701
713
  async def runloop(self):
702
714
  '''
703
715
  Task loop to issue query tasks at the right times.
@@ -808,57 +820,75 @@ class Agenda(s_base.Base):
808
820
  }
809
821
  await self.core.addCronEdits(appt.iden, edits)
810
822
 
811
- with s_provenance.claim('cron', iden=appt.iden):
812
- logger.info(f'Agenda executing for iden={appt.iden}, name={appt.name} user={user.name}, view={appt.view}, query={appt.query}',
813
- extra={'synapse': {'iden': appt.iden, 'name': appt.name, 'user': user.iden, 'text': appt.query,
814
- 'username': user.name, 'view': appt.view}})
815
- starttime = self._getNowTick()
816
- success = False
817
- try:
818
- opts = {'user': user.iden, 'view': appt.view, 'vars': {'auto': {'iden': appt.iden, 'type': 'cron'}}}
819
- opts = self.core._initStormOpts(opts)
820
- view = self.core._viewFromOpts(opts)
821
- # Yes, this isn't technically on the bottom half of a nexus transaction
822
- # But because the scheduling loop only runs on non-mirrors, we can kinda skirt by all that
823
- # and be relatively okay. The only catch is that the nexus offset will correspond to the
824
- # last nexus transaction, and not the start/stop
825
- await self.core.feedBeholder('cron:start', {'iden': appt.iden})
826
- async for node in view.eval(appt.query, opts=opts, log_info={'cron': appt.iden}):
823
+ logger.info(f'Agenda executing for iden={appt.iden}, name={appt.name} user={user.name}, view={appt.view}, query={appt.query}',
824
+ extra={'synapse': {'iden': appt.iden, 'name': appt.name, 'user': user.iden, 'text': appt.query,
825
+ 'username': user.name, 'view': appt.view}})
826
+ starttime = self._getNowTick()
827
+ success = False
828
+ try:
829
+ opts = {
830
+ 'user': user.iden,
831
+ 'view': appt.view,
832
+ 'mirror': appt.pool,
833
+ 'vars': {'auto': {'iden': appt.iden, 'type': 'cron'}},
834
+ }
835
+ opts = self.core._initStormOpts(opts)
836
+
837
+ await self.core.feedBeholder('cron:start', {'iden': appt.iden})
838
+
839
+ async for mesg in self.core.storm(appt.query, opts=opts):
840
+
841
+ if mesg[0] == 'node':
827
842
  count += 1
828
- except asyncio.CancelledError:
829
- result = 'cancelled'
830
- raise
831
- except Exception as e:
832
- result = f'raised exception {e}'
833
- logger.exception(f'Agenda job {appt.iden} {appt.name} raised exception',
834
- extra={'synapse': {'iden': appt.iden, 'name': appt.name}}
835
- )
836
- else:
837
- success = True
838
- result = f'finished successfully with {count} nodes'
839
- finally:
840
- finishtime = self._getNowTick()
841
- if not success:
842
- appt.lasterrs.append(result)
843
- edits = {
844
- 'errcount': appt.errcount + 1,
845
- # we only care about the last five errors
846
- 'lasterrs': list(appt.lasterrs[-5:]),
847
- }
848
- await self.core.addCronEdits(appt.iden, edits)
849
843
 
850
- took = finishtime - starttime
851
- mesg = f'Agenda completed query for iden={appt.iden} name={appt.name} with result "{result}" ' \
852
- f'took {took:.3f}s'
853
- logger.info(mesg, extra={'synapse': {'iden': appt.iden, 'name': appt.name, 'user': user.iden,
854
- 'result': result, 'username': user.name, 'took': took}})
844
+ elif mesg[0] == 'err':
845
+ excname, errinfo = mesg[1]
846
+ errinfo.pop('eline', None)
847
+ errinfo.pop('efile', None)
848
+ excctor = getattr(s_exc, excname, s_exc.SynErr)
849
+ raise excctor(**errinfo)
850
+
851
+ except asyncio.CancelledError:
852
+ result = 'cancelled'
853
+ raise
854
+
855
+ except Exception as e:
856
+ result = f'raised exception {e}'
857
+ logger.exception(f'Agenda job {appt.iden} {appt.name} raised exception',
858
+ extra={'synapse': {'iden': appt.iden, 'name': appt.name}}
859
+ )
860
+ else:
861
+ success = True
862
+ result = f'finished successfully with {count} nodes'
863
+
864
+ finally:
865
+ finishtime = self._getNowTick()
866
+ if not success:
867
+ appt.lasterrs.append(result)
855
868
  edits = {
856
- 'lastfinishtime': finishtime,
857
- 'isrunning': False,
858
- 'lastresult': result,
869
+ 'errcount': appt.errcount + 1,
870
+ # we only care about the last five errors
871
+ 'lasterrs': list(appt.lasterrs[-5:]),
859
872
  }
873
+
874
+ if self.core.isactive:
875
+ await self.core.addCronEdits(appt.iden, edits)
876
+
877
+ took = finishtime - starttime
878
+ mesg = f'Agenda completed query for iden={appt.iden} name={appt.name} with result "{result}" ' \
879
+ f'took {took:.3f}s'
880
+ if not self.core.isactive:
881
+ mesg = mesg + ' Agenda status will not be saved since the Cortex is no longer the leader.'
882
+ logger.info(mesg, extra={'synapse': {'iden': appt.iden, 'name': appt.name, 'user': user.iden,
883
+ 'result': result, 'username': user.name, 'took': took}})
884
+ edits = {
885
+ 'lastfinishtime': finishtime,
886
+ 'isrunning': False,
887
+ 'lastresult': result,
888
+ }
889
+ if self.core.isactive:
860
890
  await self.core.addCronEdits(appt.iden, edits)
861
891
 
862
- if not self.isfini:
863
- # fire beholder event before invoking nexus change (in case readonly)
864
- await self.core.feedBeholder('cron:stop', {'iden': appt.iden})
892
+ if not self.isfini:
893
+ # fire beholder event before invoking nexus change (in case readonly)
894
+ await self.core.feedBeholder('cron:stop', {'iden': appt.iden})
@@ -24,7 +24,6 @@ import synapse.lib.scrape as s_scrape
24
24
  import synapse.lib.msgpack as s_msgpack
25
25
  import synapse.lib.spooled as s_spooled
26
26
  import synapse.lib.stormctrl as s_stormctrl
27
- import synapse.lib.provenance as s_provenance
28
27
  import synapse.lib.stormtypes as s_stormtypes
29
28
 
30
29
  from synapse.lib.stormtypes import tobool, toint, toprim, tostr, tonumber, tocmprvalu, undef
@@ -1180,33 +1179,32 @@ class CmdOper(Oper):
1180
1179
  mesg = f'Command ({name}) is not marked safe for readonly use.'
1181
1180
  raise self.addExcInfo(s_exc.IsReadOnly(mesg=mesg))
1182
1181
 
1183
- with s_provenance.claim('stormcmd', name=name):
1184
- async def genx():
1182
+ async def genx():
1185
1183
 
1186
- async for node, path in genr:
1187
- argv = await self.kids[1].compute(runt, path)
1188
- if not await scmd.setArgv(argv):
1189
- raise s_stormctrl.StormExit()
1184
+ async for node, path in genr:
1185
+ argv = await self.kids[1].compute(runt, path)
1186
+ if not await scmd.setArgv(argv):
1187
+ raise s_stormctrl.StormExit()
1190
1188
 
1191
- yield node, path
1189
+ yield node, path
1192
1190
 
1193
- # must pull through the genr to get opts set
1194
- # ( many commands expect self.opts is set at run() )
1195
- genr, empty = await pullone(genx())
1191
+ # must pull through the genr to get opts set
1192
+ # ( many commands expect self.opts is set at run() )
1193
+ genr, empty = await pullone(genx())
1196
1194
 
1197
- try:
1198
- if runtsafe:
1199
- argv = await self.kids[1].compute(runt, None)
1200
- if not await scmd.setArgv(argv):
1201
- raise s_stormctrl.StormExit()
1202
-
1203
- if runtsafe or not empty:
1204
- async with contextlib.aclosing(scmd.execStormCmd(runt, genr)) as agen:
1205
- async for item in agen:
1206
- yield item
1195
+ try:
1196
+ if runtsafe:
1197
+ argv = await self.kids[1].compute(runt, None)
1198
+ if not await scmd.setArgv(argv):
1199
+ raise s_stormctrl.StormExit()
1200
+
1201
+ if runtsafe or not empty:
1202
+ async with contextlib.aclosing(scmd.execStormCmd(runt, genr)) as agen:
1203
+ async for item in agen:
1204
+ yield item
1207
1205
 
1208
- finally:
1209
- await genr.aclose()
1206
+ finally:
1207
+ await genr.aclose()
1210
1208
 
1211
1209
  class SetVarOper(Oper):
1212
1210
 
@@ -477,8 +477,6 @@ class Base:
477
477
  asyncio.Task: An asyncio.Task object.
478
478
 
479
479
  '''
480
- import synapse.lib.provenance as s_provenance # avoid import cycle
481
-
482
480
  if __debug__:
483
481
  assert inspect.isawaitable(coro)
484
482
  import synapse.lib.threads as s_threads # avoid import cycle
@@ -491,10 +489,6 @@ class Base:
491
489
 
492
490
  s_scope.clone(task)
493
491
 
494
- # In rare cases, (Like this function being triggered from call_soon_threadsafe), there's no task context
495
- if asyncio.current_task():
496
- s_provenance.dupstack(task)
497
-
498
492
  def taskDone(task):
499
493
  self._active_tasks.remove(task)
500
494
  try: