synapse 2.223.0__tar.gz → 2.224.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 (661) hide show
  1. {synapse-2.223.0/synapse.egg-info → synapse-2.224.0}/PKG-INFO +1 -1
  2. {synapse-2.223.0 → synapse-2.224.0}/pyproject.toml +1 -1
  3. {synapse-2.223.0 → synapse-2.224.0}/synapse/common.py +2 -2
  4. {synapse-2.223.0 → synapse-2.224.0}/synapse/cortex.py +52 -3
  5. {synapse-2.223.0 → synapse-2.224.0}/synapse/datamodel.py +1 -1
  6. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/layer.py +6 -6
  7. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/schemas.py +2 -0
  8. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/storm.py +35 -1
  9. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/imap.py +12 -4
  10. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/task.py +0 -1
  11. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormtypes.py +19 -1
  12. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/version.py +2 -2
  13. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/inet.py +25 -0
  14. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/proj.py +3 -0
  15. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/risk.py +6 -0
  16. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/syn.py +8 -0
  17. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_common.py +4 -0
  18. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_cortex.py +51 -0
  19. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_storm.py +97 -0
  20. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_imap.py +14 -0
  21. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormtypes.py +12 -0
  22. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_inet.py +23 -0
  23. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_proj.py +3 -1
  24. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_risk.py +10 -0
  25. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_syn.py +54 -2
  26. {synapse-2.223.0 → synapse-2.224.0/synapse.egg-info}/PKG-INFO +1 -1
  27. {synapse-2.223.0 → synapse-2.224.0}/LICENSE +0 -0
  28. {synapse-2.223.0 → synapse-2.224.0}/README.rst +0 -0
  29. {synapse-2.223.0 → synapse-2.224.0}/setup.cfg +0 -0
  30. {synapse-2.223.0 → synapse-2.224.0}/synapse/__init__.py +0 -0
  31. {synapse-2.223.0 → synapse-2.224.0}/synapse/axon.py +0 -0
  32. {synapse-2.223.0 → synapse-2.224.0}/synapse/cells.py +0 -0
  33. {synapse-2.223.0 → synapse-2.224.0}/synapse/cmds/__init__.py +0 -0
  34. {synapse-2.223.0 → synapse-2.224.0}/synapse/cmds/boss.py +0 -0
  35. {synapse-2.223.0 → synapse-2.224.0}/synapse/cmds/cortex.py +0 -0
  36. {synapse-2.223.0 → synapse-2.224.0}/synapse/cmds/hive.py +0 -0
  37. {synapse-2.223.0 → synapse-2.224.0}/synapse/cryotank.py +0 -0
  38. {synapse-2.223.0 → synapse-2.224.0}/synapse/daemon.py +0 -0
  39. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/__init__.py +0 -0
  40. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  41. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/attack-flow/README.md +0 -0
  42. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  43. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  44. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  45. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  46. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  47. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/iana.tlds.mpk +0 -0
  48. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/iana.uris.mpk +0 -0
  49. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/README.md +0 -0
  50. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  51. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  52. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  53. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  54. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  55. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  56. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  57. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  58. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  59. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  60. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  61. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  62. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  63. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  64. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  65. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  66. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  67. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  68. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  69. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  70. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  71. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  72. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  73. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  74. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  75. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  76. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  77. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  78. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  79. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  80. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  81. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  82. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  83. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  84. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  85. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  86. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  87. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  88. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  89. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  90. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  91. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  92. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  93. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  94. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  95. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  96. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  97. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  98. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  99. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  100. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  101. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  102. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  103. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  104. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  105. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  106. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  107. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  108. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/lark/__init__.py +0 -0
  109. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/lark/imap.lark +0 -0
  110. {synapse-2.223.0 → synapse-2.224.0}/synapse/data/lark/storm.lark +0 -0
  111. {synapse-2.223.0 → synapse-2.224.0}/synapse/exc.py +0 -0
  112. {synapse-2.223.0 → synapse-2.224.0}/synapse/glob.py +0 -0
  113. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/__init__.py +0 -0
  114. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/agenda.py +0 -0
  115. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/aha.py +0 -0
  116. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/ast.py +0 -0
  117. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/auth.py +0 -0
  118. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/autodoc.py +0 -0
  119. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/base.py +0 -0
  120. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/boss.py +0 -0
  121. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/cache.py +0 -0
  122. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/cell.py +0 -0
  123. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/certdir.py +0 -0
  124. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/chop.py +0 -0
  125. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/cli.py +0 -0
  126. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/cmd.py +0 -0
  127. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/cmdr.py +0 -0
  128. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/config.py +0 -0
  129. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/const.py +0 -0
  130. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/coro.py +0 -0
  131. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/crypto/__init__.py +0 -0
  132. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/crypto/coin.py +0 -0
  133. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/crypto/ecc.py +0 -0
  134. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/crypto/passwd.py +0 -0
  135. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/crypto/rsa.py +0 -0
  136. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/crypto/tinfoil.py +0 -0
  137. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/datfile.py +0 -0
  138. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/drive.py +0 -0
  139. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/dyndeps.py +0 -0
  140. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/encoding.py +0 -0
  141. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/gis.py +0 -0
  142. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/grammar.py +0 -0
  143. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/hashitem.py +0 -0
  144. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/hashset.py +0 -0
  145. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/health.py +0 -0
  146. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/hive.py +0 -0
  147. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/httpapi.py +0 -0
  148. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/ingest.py +0 -0
  149. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/interval.py +0 -0
  150. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/json.py +0 -0
  151. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/jsonstor.py +0 -0
  152. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/link.py +0 -0
  153. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/lmdbslab.py +0 -0
  154. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/modelrev.py +0 -0
  155. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/module.py +0 -0
  156. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/modules.py +0 -0
  157. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/msgpack.py +0 -0
  158. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/multislabseqn.py +0 -0
  159. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/nexus.py +0 -0
  160. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/node.py +0 -0
  161. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/oauth.py +0 -0
  162. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/output.py +0 -0
  163. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/parser.py +0 -0
  164. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/platforms/__init__.py +0 -0
  165. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/platforms/common.py +0 -0
  166. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/platforms/darwin.py +0 -0
  167. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/platforms/freebsd.py +0 -0
  168. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/platforms/linux.py +0 -0
  169. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/platforms/windows.py +0 -0
  170. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/queue.py +0 -0
  171. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/ratelimit.py +0 -0
  172. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/reflect.py +0 -0
  173. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/rstorm.py +0 -0
  174. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/scope.py +0 -0
  175. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/scrape.py +0 -0
  176. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/share.py +0 -0
  177. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/slaboffs.py +0 -0
  178. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/slabseqn.py +0 -0
  179. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/snap.py +0 -0
  180. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/spooled.py +0 -0
  181. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/storm_format.py +0 -0
  182. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormctrl.py +0 -0
  183. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormhttp.py +0 -0
  184. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/__init__.py +0 -0
  185. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/aha.py +0 -0
  186. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/auth.py +0 -0
  187. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/backup.py +0 -0
  188. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/basex.py +0 -0
  189. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/cache.py +0 -0
  190. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/cell.py +0 -0
  191. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/compression.py +0 -0
  192. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/cortex.py +0 -0
  193. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/easyperm.py +0 -0
  194. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/env.py +0 -0
  195. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/ethereum.py +0 -0
  196. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/gen.py +0 -0
  197. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/gis.py +0 -0
  198. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/graph.py +0 -0
  199. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/hashes.py +0 -0
  200. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/hex.py +0 -0
  201. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/index.py +0 -0
  202. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/infosec.py +0 -0
  203. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/ipv6.py +0 -0
  204. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/iters.py +0 -0
  205. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/json.py +0 -0
  206. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/log.py +0 -0
  207. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/macro.py +0 -0
  208. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/math.py +0 -0
  209. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/mime.py +0 -0
  210. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/model.py +0 -0
  211. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/modelext.py +0 -0
  212. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/notifications.py +0 -0
  213. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/oauth.py +0 -0
  214. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/pack.py +0 -0
  215. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/pkg.py +0 -0
  216. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/project.py +0 -0
  217. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/random.py +0 -0
  218. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/scrape.py +0 -0
  219. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/smtp.py +0 -0
  220. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/spooled.py +0 -0
  221. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/stats.py +0 -0
  222. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/stix.py +0 -0
  223. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/storm.py +0 -0
  224. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/tabular.py +0 -0
  225. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/utils.py +0 -0
  226. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/vault.py +0 -0
  227. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/version.py +0 -0
  228. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/xml.py +0 -0
  229. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormlib/yaml.py +0 -0
  230. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormsvc.py +0 -0
  231. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/stormwhois.py +0 -0
  232. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/structlog.py +0 -0
  233. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/task.py +0 -0
  234. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/thishost.py +0 -0
  235. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/thisplat.py +0 -0
  236. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/threads.py +0 -0
  237. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/time.py +0 -0
  238. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/trigger.py +0 -0
  239. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/types.py +0 -0
  240. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/urlhelp.py +0 -0
  241. {synapse-2.223.0 → synapse-2.224.0}/synapse/lib/view.py +0 -0
  242. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/__init__.py +0 -0
  243. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/cvss.py +0 -0
  244. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/iana.py +0 -0
  245. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/iso3166.py +0 -0
  246. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/macho.py +0 -0
  247. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/pe.py +0 -0
  248. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/phonenum.py +0 -0
  249. {synapse-2.223.0 → synapse-2.224.0}/synapse/lookup/timezones.py +0 -0
  250. {synapse-2.223.0 → synapse-2.224.0}/synapse/mindmeld.py +0 -0
  251. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/__init__.py +0 -0
  252. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/auth.py +0 -0
  253. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/base.py +0 -0
  254. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/belief.py +0 -0
  255. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/biz.py +0 -0
  256. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/crypto.py +0 -0
  257. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/dns.py +0 -0
  258. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/doc.py +0 -0
  259. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/economic.py +0 -0
  260. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/entity.py +0 -0
  261. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/files.py +0 -0
  262. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/geopol.py +0 -0
  263. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/geospace.py +0 -0
  264. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/gov/__init__.py +0 -0
  265. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/gov/cn.py +0 -0
  266. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/gov/intl.py +0 -0
  267. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/gov/us.py +0 -0
  268. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/infotech.py +0 -0
  269. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/language.py +0 -0
  270. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/material.py +0 -0
  271. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/math.py +0 -0
  272. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/media.py +0 -0
  273. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/orgs.py +0 -0
  274. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/person.py +0 -0
  275. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/planning.py +0 -0
  276. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/science.py +0 -0
  277. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/telco.py +0 -0
  278. {synapse-2.223.0 → synapse-2.224.0}/synapse/models/transport.py +0 -0
  279. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/__init__.py +0 -0
  280. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/aha.py +0 -0
  281. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/axon.py +0 -0
  282. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/cell.py +0 -0
  283. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/cortex.py +0 -0
  284. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/cryotank.py +0 -0
  285. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/jsonstor.py +0 -0
  286. {synapse-2.223.0 → synapse-2.224.0}/synapse/servers/stemcell.py +0 -0
  287. {synapse-2.223.0 → synapse-2.224.0}/synapse/telepath.py +0 -0
  288. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/__init__.py +0 -0
  289. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  290. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/__init__.py +0 -0
  291. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  292. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  293. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  294. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  295. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  296. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  297. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  298. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  299. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  300. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  301. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  302. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  303. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  304. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/users/root.key +0 -0
  305. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  306. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/certdir/users/user.key +0 -0
  307. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  308. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  309. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/cpedata.json +0 -0
  310. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  311. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  312. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  313. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  314. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  315. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stix_export/basic.json +0 -0
  316. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  317. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  318. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  319. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  320. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  321. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  322. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  323. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  324. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  325. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  326. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  327. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormmod/common +0 -0
  328. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  329. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  330. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
  331. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
  332. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  333. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  334. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  335. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  336. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  337. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  338. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  339. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  340. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  341. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  342. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  343. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  344. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  345. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  346. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  347. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  348. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  349. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  350. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  351. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  352. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  353. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/test.dat +0 -0
  354. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  355. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testpkg_build_docs/docs/bar.rst +0 -0
  356. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testpkg_build_docs/docs/foo.rst +0 -0
  357. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
  358. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
  359. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
  360. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
  361. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
  362. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/nopmod.py +0 -0
  363. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_axon.py +0 -0
  364. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_cmds_boss.py +0 -0
  365. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_cmds_cortex.py +0 -0
  366. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_cmds_hive.py +0 -0
  367. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_cryotank.py +0 -0
  368. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_daemon.py +0 -0
  369. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_data.py +0 -0
  370. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_datamodel.py +0 -0
  371. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_exc.py +0 -0
  372. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_glob.py +0 -0
  373. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_init.py +0 -0
  374. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_agenda.py +0 -0
  375. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_aha.py +0 -0
  376. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_ast.py +0 -0
  377. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_auth.py +0 -0
  378. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_autodoc.py +0 -0
  379. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_base.py +0 -0
  380. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_boss.py +0 -0
  381. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_cache.py +0 -0
  382. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_cell.py +0 -0
  383. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_certdir.py +0 -0
  384. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_chop.py +0 -0
  385. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_cli.py +0 -0
  386. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_config.py +0 -0
  387. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_const.py +0 -0
  388. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_coro.py +0 -0
  389. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  390. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  391. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  392. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  393. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_datfile.py +0 -0
  394. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  395. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_encoding.py +0 -0
  396. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_gis.py +0 -0
  397. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_grammar.py +0 -0
  398. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_hashitem.py +0 -0
  399. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_hashset.py +0 -0
  400. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_health.py +0 -0
  401. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_hive.py +0 -0
  402. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_httpapi.py +0 -0
  403. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_interval.py +0 -0
  404. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_json.py +0 -0
  405. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  406. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_layer.py +0 -0
  407. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_link.py +0 -0
  408. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  409. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_modelrev.py +0 -0
  410. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_module.py +0 -0
  411. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_msgpack.py +0 -0
  412. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  413. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_nexus.py +0 -0
  414. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_node.py +0 -0
  415. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_output.py +0 -0
  416. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  417. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_queue.py +0 -0
  418. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  419. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_reflect.py +0 -0
  420. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_rstorm.py +0 -0
  421. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_scope.py +0 -0
  422. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_scrape.py +0 -0
  423. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  424. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  425. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_snap.py +0 -0
  426. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_spooled.py +0 -0
  427. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_storm_format.py +0 -0
  428. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormctrl.py +0 -0
  429. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  430. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  431. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  432. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  433. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  434. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  435. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  436. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  437. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  438. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  439. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  440. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  441. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  442. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  443. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  444. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  445. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
  446. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  447. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  448. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  449. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  450. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  451. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  452. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  453. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  454. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  455. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  456. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  457. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_pkg.py +0 -0
  458. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  459. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  460. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  461. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  462. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  463. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  464. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  465. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  466. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
  467. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
  468. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  469. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  470. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  471. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  472. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  473. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_structlog.py +0 -0
  474. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_task.py +0 -0
  475. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_thishost.py +0 -0
  476. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_time.py +0 -0
  477. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_trigger.py +0 -0
  478. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_types.py +0 -0
  479. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  480. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_version.py +0 -0
  481. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lib_view.py +0 -0
  482. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  483. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  484. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_mindmeld.py +0 -0
  485. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_auth.py +0 -0
  486. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_base.py +0 -0
  487. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_belief.py +0 -0
  488. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_biz.py +0 -0
  489. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_crypto.py +0 -0
  490. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_dns.py +0 -0
  491. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_doc.py +0 -0
  492. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_economic.py +0 -0
  493. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_entity.py +0 -0
  494. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_files.py +0 -0
  495. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_geopol.py +0 -0
  496. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_geospace.py +0 -0
  497. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_gov_cn.py +0 -0
  498. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_gov_intl.py +0 -0
  499. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_gov_us.py +0 -0
  500. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_infotech.py +0 -0
  501. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_language.py +0 -0
  502. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_material.py +0 -0
  503. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_math.py +0 -0
  504. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_media.py +0 -0
  505. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_orgs.py +0 -0
  506. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_person.py +0 -0
  507. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_planning.py +0 -0
  508. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_science.py +0 -0
  509. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_telco.py +0 -0
  510. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_model_transport.py +0 -0
  511. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_servers_axon.py +0 -0
  512. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_servers_cortex.py +0 -0
  513. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_servers_cryotank.py +0 -0
  514. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_servers_stemcell.py +0 -0
  515. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_servers_univ.py +0 -0
  516. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_telepath.py +0 -0
  517. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_aha.py +0 -0
  518. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_apikey.py +0 -0
  519. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_autodoc.py +0 -0
  520. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_axon.py +0 -0
  521. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  522. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_backup.py +0 -0
  523. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_cellauth.py +0 -0
  524. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_changelog.py +0 -0
  525. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
  526. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  527. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  528. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_csvtool.py +0 -0
  529. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_demote.py +0 -0
  530. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  531. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_easycert.py +0 -0
  532. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_feed.py +0 -0
  533. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_genpkg.py +0 -0
  534. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_guid.py +0 -0
  535. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  536. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_hiveload.py +0 -0
  537. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_hivesave.py +0 -0
  538. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  539. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_livebackup.py +0 -0
  540. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_modrole.py +0 -0
  541. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_moduser.py +0 -0
  542. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_pkgs_gendocs.py +0 -0
  543. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_promote.py +0 -0
  544. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_pullfile.py +0 -0
  545. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_pushfile.py +0 -0
  546. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_reload.py +0 -0
  547. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_rstorm.py +0 -0
  548. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_shutdown.py +0 -0
  549. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_snapshot.py +0 -0
  550. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_tools_storm.py +0 -0
  551. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_utils.py +0 -0
  552. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_utils_getrefs.py +0 -0
  553. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/test_utils_stormcov.py +0 -0
  554. {synapse-2.223.0 → synapse-2.224.0}/synapse/tests/utils.py +0 -0
  555. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/__init__.py +0 -0
  556. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/__init__.py +0 -0
  557. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/clone.py +0 -0
  558. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/easycert.py +0 -0
  559. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/enroll.py +0 -0
  560. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/list.py +0 -0
  561. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/mirror.py +0 -0
  562. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/provision/__init__.py +0 -0
  563. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/provision/service.py +0 -0
  564. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/aha/provision/user.py +0 -0
  565. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/apikey.py +0 -0
  566. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/autodoc.py +0 -0
  567. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/axon/__init__.py +0 -0
  568. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/axon/dump.py +0 -0
  569. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/axon/load.py +0 -0
  570. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/axon2axon.py +0 -0
  571. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/backup.py +0 -0
  572. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cellauth.py +0 -0
  573. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/changelog.py +0 -0
  574. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cmdr.py +0 -0
  575. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cortex/__init__.py +0 -0
  576. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cortex/layer/__init__.py +0 -0
  577. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cortex/layer/dump.py +0 -0
  578. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cortex/layer/load.py +0 -0
  579. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cryo/__init__.py +0 -0
  580. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cryo/cat.py +0 -0
  581. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/cryo/list.py +0 -0
  582. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/csvtool.py +0 -0
  583. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/demote.py +0 -0
  584. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/docker/__init__.py +0 -0
  585. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/docker/validate.py +0 -0
  586. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/easycert.py +0 -0
  587. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/feed.py +0 -0
  588. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/genpkg.py +0 -0
  589. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/guid.py +0 -0
  590. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/healthcheck.py +0 -0
  591. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/hive/__init__.py +0 -0
  592. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/hive/load.py +0 -0
  593. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/hive/save.py +0 -0
  594. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/json2mpk.py +0 -0
  595. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/livebackup.py +0 -0
  596. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/modrole.py +0 -0
  597. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/moduser.py +0 -0
  598. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/pkgs/gendocs.py +0 -0
  599. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/pkgs/pandoc_filter.py +0 -0
  600. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/promote.py +0 -0
  601. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/pullfile.py +0 -0
  602. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/pushfile.py +0 -0
  603. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/reload.py +0 -0
  604. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/rstorm.py +0 -0
  605. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/shutdown.py +0 -0
  606. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/snapshot.py +0 -0
  607. {synapse-2.223.0 → synapse-2.224.0}/synapse/tools/storm.py +0 -0
  608. {synapse-2.223.0 → synapse-2.224.0}/synapse/utils/__init__.py +0 -0
  609. {synapse-2.223.0 → synapse-2.224.0}/synapse/utils/getrefs.py +0 -0
  610. {synapse-2.223.0 → synapse-2.224.0}/synapse/utils/stormcov/__init__.py +0 -0
  611. {synapse-2.223.0 → synapse-2.224.0}/synapse/utils/stormcov/plugin.py +0 -0
  612. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/__init__.py +0 -0
  613. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  614. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  615. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cashaddress/base58.py +0 -0
  616. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cashaddress/convert.py +0 -0
  617. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  618. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  619. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  620. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/LICENSE +0 -0
  621. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/__init__.py +0 -0
  622. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  623. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  624. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  625. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  626. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
  627. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
  628. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  629. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/json.py +0 -0
  630. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  631. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  632. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  633. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  634. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  635. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
  636. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  637. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
  638. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  639. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  640. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  641. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  642. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  643. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  644. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/utils.py +0 -0
  645. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/LICENSE +0 -0
  646. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/__init__.py +0 -0
  647. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/constants.py +0 -0
  648. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  649. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  650. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  651. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  652. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  653. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  654. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  655. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  656. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  657. {synapse-2.223.0 → synapse-2.224.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  658. {synapse-2.223.0 → synapse-2.224.0}/synapse.egg-info/SOURCES.txt +0 -0
  659. {synapse-2.223.0 → synapse-2.224.0}/synapse.egg-info/dependency_links.txt +0 -0
  660. {synapse-2.223.0 → synapse-2.224.0}/synapse.egg-info/requires.txt +0 -0
  661. {synapse-2.223.0 → synapse-2.224.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.223.0
3
+ Version: 2.224.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.223.0'
7
+ version = '2.224.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -144,7 +144,7 @@ def flatten(item):
144
144
  item: The python primitive object to normalize.
145
145
 
146
146
  Notes:
147
- Only None, bool, int, bytes, strings, lists, tuples and dictionaries are acceptable input.
147
+ Only None, bool, int, bytes, strings, floats, lists, tuples and dictionaries are acceptable input.
148
148
  List objects will be converted to tuples.
149
149
  Dictionary objects must have keys which can be sorted.
150
150
 
@@ -155,7 +155,7 @@ def flatten(item):
155
155
  if item is None:
156
156
  return None
157
157
 
158
- if isinstance(item, (str, int, bytes)):
158
+ if isinstance(item, (str, int, bytes, float)):
159
159
  return item
160
160
 
161
161
  if isinstance(item, (tuple, list)):
@@ -464,6 +464,15 @@ class CoreApi(s_cell.CellApi):
464
464
  '''
465
465
  return await self.cell.getTypeNorm(name, valu, typeopts=typeopts)
466
466
 
467
+ async def addType(self, typename, basetype, typeopts, typeinfo):
468
+ '''
469
+ Add an extended type to the data model.
470
+
471
+ Extended types must begin with _
472
+ '''
473
+ self.user.confirm(('model', 'type', 'add', typename))
474
+ return await self.cell.addType(typename, basetype, typeopts, typeinfo)
475
+
467
476
  async def addForm(self, formname, basetype, typeopts, typeinfo):
468
477
  '''
469
478
  Add an extended form to the data model.
@@ -535,6 +544,15 @@ class CoreApi(s_cell.CellApi):
535
544
  self.user.confirm(('model', 'tagprop', 'del'))
536
545
  return await self.cell.delTagProp(name)
537
546
 
547
+ async def addEdge(self, edge, edgeinfo):
548
+ '''
549
+ Add an extended edge definition to the data model.
550
+
551
+ Extended edge definitions must use a verb which begins with _
552
+ '''
553
+ self.user.confirm(('model', 'edge', 'add'))
554
+ return await self.cell.addEdge(edge, edgeinfo)
555
+
538
556
  async def addStormPkg(self, pkgdef, verify=False):
539
557
  self.user.confirm(('pkg', 'add'))
540
558
  return await self.cell.addStormPkg(pkgdef, verify=verify)
@@ -1440,6 +1458,11 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1440
1458
  {'perm': ('model', 'univ', 'del'), 'gate': 'cortex',
1441
1459
  'desc': 'Controls access to deleting extended model universal properties and values.'},
1442
1460
 
1461
+ {'perm': ('model', 'edge', 'add'), 'gate': 'cortex',
1462
+ 'desc': 'Controls access to adding extended model edges.'},
1463
+ {'perm': ('model', 'edge', 'del'), 'gate': 'cortex',
1464
+ 'desc': 'Controls access to deleting extended model edges.'},
1465
+
1443
1466
  {'perm': ('node',), 'gate': 'layer',
1444
1467
  'desc': 'Controls all node edits in a layer.'},
1445
1468
  {'perm': ('node', 'add'), 'gate': 'layer',
@@ -2568,6 +2591,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2568
2591
  ctor.pkgname = cdef.get('pkgname')
2569
2592
  ctor.svciden = cdef.get('cmdconf', {}).get('svciden', '')
2570
2593
  ctor.forms = cdef.get('forms', {})
2594
+ ctor.deprecated = cdef.get('deprecated', {})
2571
2595
 
2572
2596
  def getStorNode(form):
2573
2597
  ndef = (form.name, form.type.norm(cdef.get('name'))[0])
@@ -2596,6 +2620,18 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
2596
2620
  if ctor.pkgname:
2597
2621
  props['package'] = ctor.pkgname
2598
2622
 
2623
+ if ctor.deprecated:
2624
+ props['deprecated'] = True
2625
+
2626
+ if (eolvers := ctor.deprecated.get('eolvers')) is not None:
2627
+ props['deprecated:version'] = eolvers
2628
+
2629
+ if (eoldate := ctor.deprecated.get('eoldate')) is not None:
2630
+ props['deprecated:date'] = eoldate
2631
+
2632
+ if (mesg := ctor.deprecated.get('mesg')) is not None:
2633
+ props['deprecated:mesg'] = mesg
2634
+
2599
2635
  pnorms = {}
2600
2636
  for prop, valu in props.items():
2601
2637
  formprop = form.props.get(prop)
@@ -3662,6 +3698,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3662
3698
 
3663
3699
  return True
3664
3700
 
3701
+ @s_cell.from_leader
3665
3702
  async def addUnivProp(self, name, tdef, info):
3666
3703
  if not isinstance(tdef, tuple):
3667
3704
  mesg = 'Universal property type definitions should be a tuple.'
@@ -3676,6 +3713,8 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3676
3713
  mesg = 'ext univ name must start with "_"'
3677
3714
  raise s_exc.BadPropDef(name=name, mesg=mesg)
3678
3715
 
3716
+ self.model.getTypeClone(tdef)
3717
+
3679
3718
  base = '.' + name
3680
3719
  if base in self.model.props:
3681
3720
  raise s_exc.DupPropName(mesg=f'Cannot add duplicate universal property {base}',
@@ -3697,6 +3736,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3697
3736
  if univ:
3698
3737
  await self.feedBeholder('model:univ:add', univ.pack())
3699
3738
 
3739
+ @s_cell.from_leader
3700
3740
  async def addForm(self, formname, basetype, typeopts, typeinfo):
3701
3741
  if not isinstance(typeopts, dict):
3702
3742
  mesg = 'Form type options should be a dict.'
@@ -3718,6 +3758,8 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3718
3758
  mesg = f'Type already exists: {formname}'
3719
3759
  raise s_exc.DupTypeName.init(formname)
3720
3760
 
3761
+ self.model.getTypeClone((basetype, typeopts))
3762
+
3721
3763
  return await self._push('model:form:add', formname, basetype, typeopts, typeinfo)
3722
3764
 
3723
3765
  @s_nexus.Pusher.onPush('model:form:add')
@@ -3772,6 +3814,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3772
3814
  await self.fire('core:extmodel:change', form=formname, act='del', type='form')
3773
3815
  await self.feedBeholder('model:form:del', {'form': formname})
3774
3816
 
3817
+ @s_cell.from_leader
3775
3818
  async def addType(self, typename, basetype, typeopts, typeinfo):
3776
3819
  if not isinstance(typeopts, dict):
3777
3820
  mesg = 'Type options should be a dict.'
@@ -3840,6 +3883,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3840
3883
  await self.fire('core:extmodel:change', name=typename, act='del', type='type')
3841
3884
  await self.feedBeholder('model:type:del', {'type': typename})
3842
3885
 
3886
+ @s_cell.from_leader
3843
3887
  async def addFormProp(self, form, prop, tdef, info):
3844
3888
  if not isinstance(tdef, tuple):
3845
3889
  mesg = 'Form property type definitions should be a tuple.'
@@ -3858,6 +3902,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3858
3902
  if _form.prop(prop):
3859
3903
  raise s_exc.DupPropName(mesg=f'Cannot add duplicate form prop {form} {prop}',
3860
3904
  form=form, prop=prop)
3905
+
3906
+ self.model.getTypeClone(tdef)
3907
+
3861
3908
  await self._push('model:prop:add', form, prop, tdef, info)
3862
3909
 
3863
3910
  @s_nexus.Pusher.onPush('model:prop:add')
@@ -4039,6 +4086,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4039
4086
  await self.fire('core:extmodel:change', name=prop, act='del', type='univ')
4040
4087
  await self.feedBeholder('model:univ:del', {'prop': univname})
4041
4088
 
4089
+ @s_cell.from_leader
4042
4090
  async def addTagProp(self, name, tdef, info):
4043
4091
  if not isinstance(tdef, tuple):
4044
4092
  mesg = 'Tag property type definitions should be a tuple.'
@@ -4051,6 +4099,8 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4051
4099
  if self.exttagprops.get(name) is not None:
4052
4100
  raise s_exc.DupPropName(name=name)
4053
4101
 
4102
+ self.model.getTypeClone(tdef)
4103
+
4054
4104
  return await self._push('model:tagprop:add', name, tdef, info)
4055
4105
 
4056
4106
  @s_nexus.Pusher.onPush('model:tagprop:add')
@@ -4088,6 +4138,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4088
4138
  await self.fire('core:tagprop:change', name=name, act='del')
4089
4139
  await self.feedBeholder('model:tagprop:del', {'tagprop': name})
4090
4140
 
4141
+ @s_cell.from_leader
4091
4142
  async def addEdge(self, edge, edgeinfo):
4092
4143
  if not isinstance(edgeinfo, dict):
4093
4144
  mesg = 'Edge info should be a dict.'
@@ -4667,6 +4718,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4667
4718
  s_stormlib_macro,
4668
4719
  s_stormlib_model,
4669
4720
  s_stormlib_pkg,
4721
+ s_stormlib_task,
4670
4722
  s_stormlib_vault,
4671
4723
  ]
4672
4724
 
@@ -4674,9 +4726,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4674
4726
  for cdef in cmod.stormcmds:
4675
4727
  await self._trySetStormCmd(cdef.get('name'), cdef)
4676
4728
 
4677
- for cdef in s_stormlib_task.stormcmds:
4678
- await self._trySetStormCmd(cdef.get('name'), cdef)
4679
-
4680
4729
  async def _initPureStormCmds(self):
4681
4730
  oldcmds = []
4682
4731
  for name, cdef in self.cmddefs.items():
@@ -738,7 +738,7 @@ class Model:
738
738
 
739
739
  base = self.types.get(typedef[0])
740
740
  if base is None:
741
- raise s_exc.NoSuchType(name=typedef[0])
741
+ raise s_exc.NoSuchType.init(typedef[0])
742
742
 
743
743
  return base.clone(typedef[1])
744
744
 
@@ -127,7 +127,7 @@ class LayerApi(s_cell.CellApi):
127
127
  Scan the full layer and yield artificial nodeedit sets.
128
128
  '''
129
129
 
130
- if not self.allowed(self.liftperm):
130
+ if not await self.allowed(self.liftperm):
131
131
  await self._reqUserAllowed(self.readperm)
132
132
  async for item in self.layr.iterLayerNodeEdits():
133
133
  yield item
@@ -167,14 +167,14 @@ class LayerApi(s_cell.CellApi):
167
167
 
168
168
  Once caught up with storage, yield them in realtime.
169
169
  '''
170
- if not self.allowed(self.liftperm):
170
+ if not await self.allowed(self.liftperm):
171
171
  await self._reqUserAllowed(self.readperm)
172
172
  async for item in self.layr.syncNodeEdits(offs, wait=wait, reverse=reverse):
173
173
  yield item
174
174
  await asyncio.sleep(0)
175
175
 
176
176
  async def syncNodeEdits2(self, offs, wait=True):
177
- if not self.allowed(self.liftperm):
177
+ if not await self.allowed(self.liftperm):
178
178
  await self._reqUserAllowed(self.readperm)
179
179
  async for item in self.layr.syncNodeEdits2(offs, wait=wait):
180
180
  yield item
@@ -184,7 +184,7 @@ class LayerApi(s_cell.CellApi):
184
184
  '''
185
185
  Returns what will be the *next* nodeedit log index.
186
186
  '''
187
- if not self.allowed(self.liftperm):
187
+ if not await self.allowed(self.liftperm):
188
188
  await self._reqUserAllowed(self.readperm)
189
189
  return await self.layr.getEditIndx()
190
190
 
@@ -192,12 +192,12 @@ class LayerApi(s_cell.CellApi):
192
192
  '''
193
193
  Return the total number of (edits, meta) pairs in the layer changelog.
194
194
  '''
195
- if not self.allowed(self.liftperm):
195
+ if not await self.allowed(self.liftperm):
196
196
  await self._reqUserAllowed(self.readperm)
197
197
  return await self.layr.getEditSize()
198
198
 
199
199
  async def getIden(self):
200
- if not self.allowed(self.liftperm):
200
+ if not await self.allowed(self.liftperm):
201
201
  await self._reqUserAllowed(self.readperm)
202
202
  return self.layr.iden
203
203
 
@@ -954,6 +954,7 @@ _reqValidPkgdefSchema = {
954
954
  'items': {'type': 'array',
955
955
  'items': {'type': 'string'}},
956
956
  },
957
+ 'deprecated': {'$ref': '#/definitions/deprecatedItem'},
957
958
  },
958
959
  'additionalProperties': True,
959
960
  'required': ['name', 'storm']
@@ -980,6 +981,7 @@ _reqValidPkgdefSchema = {
980
981
  'type': 'string',
981
982
  'enum': s_msgpack.deepcopy(datamodel_basetypes),
982
983
  },
984
+ 'deprecated': {'$ref': '#/definitions/deprecatedItem'},
983
985
  },
984
986
  }
985
987
  ],
@@ -932,6 +932,7 @@ stormcmds = (
932
932
  },
933
933
  {
934
934
  'name': 'ps.list',
935
+ 'deprecated': {'eolvers': 'v3.0.0', 'mesg': 'Use ``task.list`` instead.'},
935
936
  'descr': 'List running tasks in the cortex.',
936
937
  'cmdargs': (
937
938
  ('--verbose', {'default': False, 'action': 'store_true', 'help': 'Enable verbose output.'}),
@@ -958,6 +959,7 @@ stormcmds = (
958
959
  },
959
960
  {
960
961
  'name': 'ps.kill',
962
+ 'deprecated': {'eolvers': 'v3.0.0', 'mesg': 'Use ``task.kill`` instead.'},
961
963
  'descr': 'Kill a running task/query within the cortex.',
962
964
  'cmdargs': (
963
965
  ('iden', {'help': 'Any prefix that matches exactly one valid process iden is accepted.'}),
@@ -1111,6 +1113,16 @@ stormcmds = (
1111
1113
  },
1112
1114
  )
1113
1115
 
1116
+ def deprmesg(name, depritem):
1117
+ if (mesg := depritem.get('mesg')) is not None:
1118
+ return f'"{name}" is deprecated: {mesg}'
1119
+
1120
+ if (eolvers := depritem.get('eolvers')) is not None:
1121
+ return f'"{name}" is deprecated and will be removed in {eolvers}.'
1122
+
1123
+ eoldate = depritem.get('eoldate')
1124
+ return f'"{name}" is deprecated and will be removed on {eoldate}.'
1125
+
1114
1126
  @s_cache.memoize(size=1024)
1115
1127
  def queryhash(text):
1116
1128
  return s_common.queryhash(text)
@@ -1906,6 +1918,7 @@ class Parser:
1906
1918
  self.root = root
1907
1919
  self.exited = False
1908
1920
  self.mesgs = []
1921
+ self.deprs = {}
1909
1922
 
1910
1923
  self.optargs = {}
1911
1924
  self.posargs = []
@@ -1931,7 +1944,7 @@ class Parser:
1931
1944
 
1932
1945
  choices = opts.get('choices')
1933
1946
  if choices is not None and opts.get('action') in ('store_true', 'store_false'):
1934
- mesg = f'Argument choices are not supported when action is store_true or store_false'
1947
+ mesg = 'Argument choices are not supported when action is store_true or store_false'
1935
1948
  raise s_exc.BadArg(mesg=mesg, argtype=str(argtype))
1936
1949
 
1937
1950
  dest = self._get_dest(names)
@@ -1988,6 +2001,9 @@ class Parser:
1988
2001
 
1989
2002
  dest = argdef.get('dest')
1990
2003
 
2004
+ if (deprecated := argdef.get('deprecated')) is not None:
2005
+ self.deprs[item] = deprecated
2006
+
1991
2007
  oact = argdef.get('action', 'store')
1992
2008
  if oact == 'store_true':
1993
2009
  opts[dest] = True
@@ -2177,6 +2193,12 @@ class Parser:
2177
2193
 
2178
2194
  self._printf(f'Usage: {self.prog} [options] {posargs}')
2179
2195
 
2196
+ if self.cdef is not None and (deprecated := self.cdef.get('deprecated')) is not None:
2197
+ dmsg = deprmesg(self.prog, deprecated)
2198
+ self._printf('')
2199
+ self._printf(f'Deprecated: {dmsg}')
2200
+ self._printf('')
2201
+
2180
2202
  if self.cdef is not None and (endpoints := self.cdef.get('endpoints')):
2181
2203
  self._printf('')
2182
2204
  self._printf('Endpoints:')
@@ -2286,6 +2308,10 @@ class Parser:
2286
2308
  wrap_first = self._wrap_text(first, wrap_w)
2287
2309
  self._printf(f'{base:<{base_w-2}}: {wrap_first[0]}')
2288
2310
 
2311
+ if (deprecated := argdef.get('deprecated')) is not None:
2312
+ mesg = deprmesg(names[0], deprecated)
2313
+ self._printf(f'{"":<{base_w-2}} Deprecated: {mesg}')
2314
+
2289
2315
  for ln in wrap_first[1:]: self._printf(f'{"":<{base_w}}{ln}')
2290
2316
  for ln in helplst[1:]:
2291
2317
  lead_s = len(ln) - len(ln.lstrip())
@@ -2401,6 +2427,10 @@ class Cmd:
2401
2427
  except s_exc.BadSyntax: # pragma: no cover
2402
2428
  pass
2403
2429
 
2430
+ for item, depr in self.pars.deprs.items():
2431
+ mesg = deprmesg(item, depr)
2432
+ await self.runt.snap.warnonce(mesg)
2433
+
2404
2434
  for line in self.pars.mesgs:
2405
2435
  await self.runt.snap.printf(line)
2406
2436
 
@@ -2522,6 +2552,10 @@ class PureCmd(Cmd):
2522
2552
  }
2523
2553
  }
2524
2554
 
2555
+ if (deprecated := self.cdef.get('deprecated')) is not None:
2556
+ mesg = deprmesg(name, deprecated)
2557
+ await self.runt.warnonce(mesg)
2558
+
2525
2559
  if self.runtsafe:
2526
2560
  data = {'pathvars': {}}
2527
2561
  async def genx():
@@ -526,14 +526,22 @@ class ImapLib(s_stormtypes.Lib):
526
526
 
527
527
  try:
528
528
  imap = await s_common.wait_for(coro, timeout)
529
- except asyncio.TimeoutError:
529
+ except TimeoutError:
530
530
  raise s_exc.TimeOut(mesg='Timed out waiting for IMAP server hello.') from None
531
531
 
532
532
  async def fini():
533
- async def _logout():
534
- await s_common.wait_for(imap.logout(), 5)
533
+ async def imapfini():
534
+ if imap.isfini:
535
+ return
536
+
537
+ try:
538
+ await s_common.wait_for(imap.logout(), 5)
539
+ except TimeoutError:
540
+ pass # pragma: no cover
541
+
535
542
  await imap.fini()
536
- s_coro.create_task(_logout())
543
+
544
+ self.runt.snap.core.schedCoro(imapfini())
537
545
 
538
546
  self.runt.snap.onfini(fini)
539
547
 
@@ -1,4 +1,3 @@
1
- import asyncio
2
1
  import logging
3
2
 
4
3
  import synapse.exc as s_exc
@@ -1910,6 +1910,7 @@ class LibPs(Lib):
1910
1910
  'type': {'type': 'function', '_funcname': '_list',
1911
1911
  'returns': {'type': 'list', 'desc': 'A list of task definitions.', }}},
1912
1912
  )
1913
+ _storm_lib_deprecation = {'eolvers': 'v3.0.0', 'mesg': 'Use the corresponding ``$lib.task`` function.'}
1913
1914
  _storm_lib_path = ('ps',)
1914
1915
 
1915
1916
  def getObjLocals(self):
@@ -2968,7 +2969,13 @@ class LibTime(Lib):
2968
2969
 
2969
2970
  storm> $now=$lib.time.now() $str=$lib.time.format($now, '%A %d, %B %Y') $lib.print($str)
2970
2971
 
2971
- Tuesday 14, July 2020''',
2972
+ Tuesday 14, July 2020
2973
+
2974
+ Format a timestamp into a string using included format string::
2975
+
2976
+ storm> $now=$lib.time.now() $str=$lib.time.format($now, $lib.time.formats.iso8601) $lib.print($str)
2977
+
2978
+ 2025-10-02T09:34:00Z''',
2972
2979
  'type': {'type': 'function', '_funcname': '_format',
2973
2980
  'args': (
2974
2981
  {'name': 'valu', 'type': 'int', 'desc': 'A timestamp in epoch milliseconds.', },
@@ -3103,6 +3110,10 @@ class LibTime(Lib):
3103
3110
  {'name': 'timezone', 'desc': 'A timezone name. See python pytz docs for options.', 'type': 'str'},
3104
3111
  ),
3105
3112
  'returns': {'type': 'list', 'desc': 'An ($ok, $valu) tuple.', }}},
3113
+ {'name': 'formats.iso8601', 'desc': 'ISO8601 time format string in UTC timezone (Z).', 'type': 'str'},
3114
+ {'name': 'formats.iso8601us', 'desc': 'ISO8601 time format string (with microseconds) in UTC timezone (Z).', 'type': 'str'},
3115
+ {'name': 'formats.rfc2822', 'desc': 'RFC 2822 time format string in UT timezone.', 'type': 'str'},
3116
+ {'name': 'formats.synapse', 'desc': 'Synapse time format string.', 'type': 'str'},
3106
3117
  )
3107
3118
  _storm_lib_path = ('time',)
3108
3119
 
@@ -3127,6 +3138,13 @@ class LibTime(Lib):
3127
3138
  'dayofyear': self.dayofyear,
3128
3139
  'dayofmonth': self.dayofmonth,
3129
3140
  'monthofyear': self.monthofyear,
3141
+
3142
+ 'formats': {
3143
+ 'iso8601': '%Y-%m-%dT%H:%M:%SZ',
3144
+ 'iso8601us': '%Y-%m-%dT%H:%M:%S.%fZ',
3145
+ 'rfc2822': '%d %b %Y %H:%M:%S UT',
3146
+ 'synapse': '%Y/%m/%d %H:%M:%S.%f',
3147
+ },
3130
3148
  }
3131
3149
 
3132
3150
  @stormfunc(readonly=True)
@@ -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, 223, 0)
226
+ version = (2, 224, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = 'b40e64b75fa2820856ad138b8ad9f8c4b6e9547e'
228
+ commit = '7c6e619bf5fd9c5801891b489b11bbee7fdbebd0'
@@ -3700,6 +3700,9 @@ class InetModule(s_module.CoreModule):
3700
3700
  )),
3701
3701
  ('inet:service:platform', {}, (
3702
3702
 
3703
+ ('id', ('str', {'strip': True}), {
3704
+ 'doc': 'An ID which identifies the platform.'}),
3705
+
3703
3706
  ('url', ('inet:url', {}), {
3704
3707
  'ex': 'https://twitter.com',
3705
3708
  'alts': ('urls',),
@@ -3708,6 +3711,13 @@ class InetModule(s_module.CoreModule):
3708
3711
  ('urls', ('array', {'type': 'inet:url', 'sorted': True, 'uniq': True}), {
3709
3712
  'doc': 'An array of alternate URLs for the platform.'}),
3710
3713
 
3714
+ ('zone', ('inet:fqdn', {}), {
3715
+ 'alts': ('zones',),
3716
+ 'doc': 'The primary zone for the platform.'}),
3717
+
3718
+ ('zones', ('array', {'type': 'inet:fqdn', 'sorted': True, 'uniq': True}), {
3719
+ 'doc': 'An array of alternate zones for the platform.'}),
3720
+
3711
3721
  ('name', ('str', {'onespace': True, 'lower': True}), {
3712
3722
  'ex': 'twitter',
3713
3723
  'alts': ('names',),
@@ -3722,6 +3732,21 @@ class InetModule(s_module.CoreModule):
3722
3732
  'disp': {'hint': 'text'},
3723
3733
  'doc': 'A description of the service platform.'}),
3724
3734
 
3735
+ ('parent', ('inet:service:platform', {}), {
3736
+ 'doc': 'A parent platform which owns this platform.'}),
3737
+
3738
+ ('status', ('inet:service:object:status', {}), {
3739
+ 'doc': 'The status of the platform.'}),
3740
+
3741
+ ('period', ('ival', {}), {
3742
+ 'doc': 'The period when the platform existed.'}),
3743
+
3744
+ ('creator', ('inet:service:account', {}), {
3745
+ 'doc': 'The service account which created the platform.'}),
3746
+
3747
+ ('remover', ('inet:service:account', {}), {
3748
+ 'doc': 'The service account which removed or decommissioned the platform.'}),
3749
+
3725
3750
  ('provider', ('ou:org', {}), {
3726
3751
  'doc': 'The organization which operates the platform.'}),
3727
3752
 
@@ -166,6 +166,9 @@ class ProjectModule(s_module.CoreModule):
166
166
  ('created', ('time', {}), {
167
167
  'doc': 'The time the comment was added.'}),
168
168
 
169
+ ('ext:creator', ('ps:contact', {}), {
170
+ 'doc': 'The contact information of the creator from an external system.'}),
171
+
169
172
  ('updated', ('time', {'ismax': True}), {
170
173
  'doc': 'The last time the comment was updated.'}),
171
174
 
@@ -269,6 +269,9 @@ class RiskModule(s_module.CoreModule):
269
269
 
270
270
  (('risk:outage', 'impacted', None), {
271
271
  'doc': 'The outage event impacted the availability of the target node.'}),
272
+
273
+ (('risk:alert', 'about', None), {
274
+ 'doc': 'The alert is about the target node.'}),
272
275
  ),
273
276
  'forms': (
274
277
 
@@ -800,6 +803,9 @@ class RiskModule(s_module.CoreModule):
800
803
  ('detected', ('time', {}), {
801
804
  'doc': 'The time the alerted condition was detected.'}),
802
805
 
806
+ ('updated', ('time', {}), {
807
+ 'doc': 'The time the alert was most recently modified.'}),
808
+
803
809
  ('vuln', ('risk:vuln', {}), {
804
810
  'doc': 'The optional vulnerability that the alert indicates.'}),
805
811
 
@@ -365,6 +365,14 @@ class SynModule(s_module.CoreModule):
365
365
  ('nodedata', ('array', {'type': 'syn:nodedata'}), {
366
366
  'deprecated': True,
367
367
  'doc': 'The list of nodedata that may be added by the command.', 'uniq': True, 'sorted': True, 'ro': True}),
368
+ ('deprecated', ('bool', {}), {
369
+ 'doc': 'Set to true if this command is scheduled to be removed.'}),
370
+ ('deprecated:version', ('it:semver', {}), {
371
+ 'doc': 'The Synapse version when this command will be removed.'}),
372
+ ('deprecated:date', ('time', {}), {
373
+ 'doc': 'The date when this command will be removed.'}),
374
+ ('deprecated:mesg', ('str', {}), {
375
+ 'doc': 'Optional description of this deprecation.'}),
368
376
  )),
369
377
  ),
370
378
  }),)
@@ -75,6 +75,10 @@ class CommonTest(s_t_utils.SynTest):
75
75
  self.ne('15c8a3727942fa01e04d6a7a525666a2', s_common.guid(item))
76
76
  self.eq('15c8a3727942fa01e04d6a7a525666a2', s_common.guid(s_common.flatten(item)))
77
77
 
78
+ item = {'foo': 'bar', 'baz': 10, 'gronk': True, 'hehe': ['ha', 'ha'], 'tupl': (1, 'two', 1.23), 'newp': None}
79
+ self.ne('02efa9b7612f371dbb65a596cd303d9a', s_common.guid(item))
80
+ self.eq('02efa9b7612f371dbb65a596cd303d9a', s_common.guid(s_common.flatten(item)))
81
+
78
82
  def test_common_vertup(self):
79
83
  self.eq(s_common.vertup('1.3.30'), (1, 3, 30))
80
84
  self.true(s_common.vertup('30.40.50') > (9, 0))
@@ -6650,6 +6650,57 @@ class CortexBasicTest(s_t_utils.SynTest):
6650
6650
  with self.raises(s_exc.BadPropDef):
6651
6651
  await prox.addTagProp('_blah:blah^blah', ('int', {}), {})
6652
6652
 
6653
+ # Mirrors on newer model versions should not be able to add extended model elements
6654
+ # based on model elements the leader doesn't have
6655
+ async with self.getTestAha() as aha:
6656
+
6657
+ conf = {'aha:provision': await aha.addAhaSvcProv('00.cortex')}
6658
+ core00 = await aha.enter_context(self.getTestCore(conf=conf))
6659
+
6660
+ conf = {'aha:provision': await aha.addAhaSvcProv('01.cortex', {'mirror': 'cortex'})}
6661
+ core01 = await aha.enter_context(self.getTestCore(conf=conf))
6662
+
6663
+ # Add a type directly to the mirror's model to simulate different model version
6664
+ core01.model.addType('_newmodel:type', 'str', {}, {})
6665
+
6666
+ with self.raises(s_exc.NoSuchType):
6667
+ await core01.addType('_test:type', '_newmodel:type', {}, {})
6668
+
6669
+ await core01.sync()
6670
+ self.none(core01.model.type('_test:type'))
6671
+
6672
+ with self.raises(s_exc.NoSuchType):
6673
+ await core01.addUnivProp('_woot', ('_newmodel:type', {}), {})
6674
+
6675
+ await core01.sync()
6676
+ self.none(core01.model.prop('._woot'))
6677
+
6678
+ with self.raises(s_exc.NoSuchType):
6679
+ await core01.addForm('_hehe:haha', '_newmodel:type', {}, {})
6680
+
6681
+ await core01.sync()
6682
+ self.none(core01.model.form('_hehe:haha'))
6683
+
6684
+ with self.raises(s_exc.NoSuchType):
6685
+ await core01.addFormProp('inet:asn', '_newer', ('_newmodel:type', {}), {})
6686
+
6687
+ await core01.sync()
6688
+ self.none(core01.model.prop('inet:asn:_newer'))
6689
+
6690
+ with self.raises(s_exc.NoSuchType):
6691
+ await core01.addTagProp('user', ('_newmodel:type', {}), {})
6692
+
6693
+ await core01.sync()
6694
+ self.none(core01.model.tagprop('user'))
6695
+
6696
+ core01.model.addForm('_newmodel:type', {}, {})
6697
+
6698
+ with self.raises(s_exc.NoSuchForm):
6699
+ await core01.addEdge(('_newmodel:type', '_foo', None), {})
6700
+
6701
+ await core01.sync()
6702
+ self.none(core01.model.edge(('_newmodel:type', '_foo', None)))
6703
+
6653
6704
  async def test_cortex_axon(self):
6654
6705
  async with self.getTestCore() as core:
6655
6706
  # By default, a cortex has a local Axon instance available