synapse 2.221.0__tar.gz → 2.222.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 (657) hide show
  1. {synapse-2.221.0/synapse.egg-info → synapse-2.222.0}/PKG-INFO +1 -1
  2. {synapse-2.221.0 → synapse-2.222.0}/pyproject.toml +1 -1
  3. {synapse-2.221.0 → synapse-2.222.0}/synapse/cortex.py +34 -14
  4. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/lark/storm.lark +9 -6
  5. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/ast.py +8 -2
  6. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/layer.py +18 -11
  7. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/parser.py +1 -0
  8. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/rstorm.py +19 -1
  9. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/schemas.py +4 -0
  10. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/cortex.py +1 -1
  11. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormtypes.py +18 -4
  12. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/version.py +2 -2
  13. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/orgs.py +3 -0
  14. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_grammar.py +4 -4
  15. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_rstorm.py +55 -7
  16. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_storm.py +74 -1
  17. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_auth.py +84 -0
  18. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_cortex.py +1 -0
  19. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormtypes.py +25 -0
  20. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_orgs.py +6 -1
  21. {synapse-2.221.0 → synapse-2.222.0/synapse.egg-info}/PKG-INFO +1 -1
  22. {synapse-2.221.0 → synapse-2.222.0}/LICENSE +0 -0
  23. {synapse-2.221.0 → synapse-2.222.0}/README.rst +0 -0
  24. {synapse-2.221.0 → synapse-2.222.0}/setup.cfg +0 -0
  25. {synapse-2.221.0 → synapse-2.222.0}/synapse/__init__.py +0 -0
  26. {synapse-2.221.0 → synapse-2.222.0}/synapse/axon.py +0 -0
  27. {synapse-2.221.0 → synapse-2.222.0}/synapse/cells.py +0 -0
  28. {synapse-2.221.0 → synapse-2.222.0}/synapse/cmds/__init__.py +0 -0
  29. {synapse-2.221.0 → synapse-2.222.0}/synapse/cmds/boss.py +0 -0
  30. {synapse-2.221.0 → synapse-2.222.0}/synapse/cmds/cortex.py +0 -0
  31. {synapse-2.221.0 → synapse-2.222.0}/synapse/cmds/hive.py +0 -0
  32. {synapse-2.221.0 → synapse-2.222.0}/synapse/common.py +0 -0
  33. {synapse-2.221.0 → synapse-2.222.0}/synapse/cryotank.py +0 -0
  34. {synapse-2.221.0 → synapse-2.222.0}/synapse/daemon.py +0 -0
  35. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/__init__.py +0 -0
  36. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  37. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/attack-flow/README.md +0 -0
  38. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  39. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  40. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  41. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  42. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  43. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/iana.tlds.mpk +0 -0
  44. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/iana.uris.mpk +0 -0
  45. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/README.md +0 -0
  46. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  47. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  48. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  49. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  50. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  51. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  52. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  53. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  54. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  55. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  56. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  57. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  58. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  59. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  60. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  61. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  62. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  63. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  64. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  65. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  66. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  67. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  68. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  69. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  70. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  71. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  72. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  73. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  74. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  75. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  76. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  77. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  78. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  79. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  80. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  81. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  82. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  83. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  84. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  85. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  86. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  87. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  88. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  89. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  90. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  91. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  92. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  93. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  94. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  95. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  96. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  97. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  98. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  99. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  100. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  101. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  102. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  103. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  104. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/lark/__init__.py +0 -0
  105. {synapse-2.221.0 → synapse-2.222.0}/synapse/data/lark/imap.lark +0 -0
  106. {synapse-2.221.0 → synapse-2.222.0}/synapse/datamodel.py +0 -0
  107. {synapse-2.221.0 → synapse-2.222.0}/synapse/exc.py +0 -0
  108. {synapse-2.221.0 → synapse-2.222.0}/synapse/glob.py +0 -0
  109. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/__init__.py +0 -0
  110. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/agenda.py +0 -0
  111. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/aha.py +0 -0
  112. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/auth.py +0 -0
  113. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/autodoc.py +0 -0
  114. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/base.py +0 -0
  115. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/boss.py +0 -0
  116. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/cache.py +0 -0
  117. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/cell.py +0 -0
  118. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/certdir.py +0 -0
  119. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/chop.py +0 -0
  120. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/cli.py +0 -0
  121. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/cmd.py +0 -0
  122. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/cmdr.py +0 -0
  123. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/config.py +0 -0
  124. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/const.py +0 -0
  125. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/coro.py +0 -0
  126. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/crypto/__init__.py +0 -0
  127. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/crypto/coin.py +0 -0
  128. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/crypto/ecc.py +0 -0
  129. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/crypto/passwd.py +0 -0
  130. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/crypto/rsa.py +0 -0
  131. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/crypto/tinfoil.py +0 -0
  132. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/datfile.py +0 -0
  133. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/drive.py +0 -0
  134. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/dyndeps.py +0 -0
  135. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/encoding.py +0 -0
  136. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/gis.py +0 -0
  137. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/grammar.py +0 -0
  138. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/hashitem.py +0 -0
  139. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/hashset.py +0 -0
  140. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/health.py +0 -0
  141. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/hive.py +0 -0
  142. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/httpapi.py +0 -0
  143. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/ingest.py +0 -0
  144. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/interval.py +0 -0
  145. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/json.py +0 -0
  146. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/jsonstor.py +0 -0
  147. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/link.py +0 -0
  148. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/lmdbslab.py +0 -0
  149. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/modelrev.py +0 -0
  150. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/module.py +0 -0
  151. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/modules.py +0 -0
  152. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/msgpack.py +0 -0
  153. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/multislabseqn.py +0 -0
  154. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/nexus.py +0 -0
  155. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/node.py +0 -0
  156. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/oauth.py +0 -0
  157. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/output.py +0 -0
  158. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/platforms/__init__.py +0 -0
  159. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/platforms/common.py +0 -0
  160. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/platforms/darwin.py +0 -0
  161. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/platforms/freebsd.py +0 -0
  162. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/platforms/linux.py +0 -0
  163. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/platforms/windows.py +0 -0
  164. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/queue.py +0 -0
  165. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/ratelimit.py +0 -0
  166. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/reflect.py +0 -0
  167. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/scope.py +0 -0
  168. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/scrape.py +0 -0
  169. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/share.py +0 -0
  170. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/slaboffs.py +0 -0
  171. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/slabseqn.py +0 -0
  172. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/snap.py +0 -0
  173. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/spooled.py +0 -0
  174. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/storm.py +0 -0
  175. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/storm_format.py +0 -0
  176. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormctrl.py +0 -0
  177. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormhttp.py +0 -0
  178. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/__init__.py +0 -0
  179. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/aha.py +0 -0
  180. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/auth.py +0 -0
  181. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/backup.py +0 -0
  182. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/basex.py +0 -0
  183. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/cache.py +0 -0
  184. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/cell.py +0 -0
  185. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/compression.py +0 -0
  186. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/easyperm.py +0 -0
  187. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/env.py +0 -0
  188. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/ethereum.py +0 -0
  189. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/gen.py +0 -0
  190. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/gis.py +0 -0
  191. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/graph.py +0 -0
  192. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/hashes.py +0 -0
  193. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/hex.py +0 -0
  194. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/imap.py +0 -0
  195. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/index.py +0 -0
  196. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/infosec.py +0 -0
  197. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/ipv6.py +0 -0
  198. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/iters.py +0 -0
  199. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/json.py +0 -0
  200. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/log.py +0 -0
  201. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/macro.py +0 -0
  202. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/math.py +0 -0
  203. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/mime.py +0 -0
  204. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/model.py +0 -0
  205. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/modelext.py +0 -0
  206. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/notifications.py +0 -0
  207. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/oauth.py +0 -0
  208. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/pack.py +0 -0
  209. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/project.py +0 -0
  210. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/random.py +0 -0
  211. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/scrape.py +0 -0
  212. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/smtp.py +0 -0
  213. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/spooled.py +0 -0
  214. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/stats.py +0 -0
  215. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/stix.py +0 -0
  216. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/storm.py +0 -0
  217. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/tabular.py +0 -0
  218. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/utils.py +0 -0
  219. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/vault.py +0 -0
  220. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/version.py +0 -0
  221. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/xml.py +0 -0
  222. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormlib/yaml.py +0 -0
  223. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormsvc.py +0 -0
  224. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/stormwhois.py +0 -0
  225. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/structlog.py +0 -0
  226. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/task.py +0 -0
  227. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/thishost.py +0 -0
  228. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/thisplat.py +0 -0
  229. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/threads.py +0 -0
  230. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/time.py +0 -0
  231. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/trigger.py +0 -0
  232. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/types.py +0 -0
  233. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/urlhelp.py +0 -0
  234. {synapse-2.221.0 → synapse-2.222.0}/synapse/lib/view.py +0 -0
  235. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/__init__.py +0 -0
  236. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/cvss.py +0 -0
  237. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/iana.py +0 -0
  238. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/iso3166.py +0 -0
  239. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/macho.py +0 -0
  240. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/pe.py +0 -0
  241. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/phonenum.py +0 -0
  242. {synapse-2.221.0 → synapse-2.222.0}/synapse/lookup/timezones.py +0 -0
  243. {synapse-2.221.0 → synapse-2.222.0}/synapse/mindmeld.py +0 -0
  244. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/__init__.py +0 -0
  245. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/auth.py +0 -0
  246. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/base.py +0 -0
  247. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/belief.py +0 -0
  248. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/biz.py +0 -0
  249. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/crypto.py +0 -0
  250. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/dns.py +0 -0
  251. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/doc.py +0 -0
  252. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/economic.py +0 -0
  253. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/entity.py +0 -0
  254. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/files.py +0 -0
  255. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/geopol.py +0 -0
  256. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/geospace.py +0 -0
  257. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/gov/__init__.py +0 -0
  258. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/gov/cn.py +0 -0
  259. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/gov/intl.py +0 -0
  260. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/gov/us.py +0 -0
  261. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/inet.py +0 -0
  262. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/infotech.py +0 -0
  263. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/language.py +0 -0
  264. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/material.py +0 -0
  265. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/math.py +0 -0
  266. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/media.py +0 -0
  267. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/person.py +0 -0
  268. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/planning.py +0 -0
  269. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/proj.py +0 -0
  270. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/risk.py +0 -0
  271. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/science.py +0 -0
  272. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/syn.py +0 -0
  273. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/telco.py +0 -0
  274. {synapse-2.221.0 → synapse-2.222.0}/synapse/models/transport.py +0 -0
  275. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/__init__.py +0 -0
  276. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/aha.py +0 -0
  277. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/axon.py +0 -0
  278. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/cell.py +0 -0
  279. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/cortex.py +0 -0
  280. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/cryotank.py +0 -0
  281. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/jsonstor.py +0 -0
  282. {synapse-2.221.0 → synapse-2.222.0}/synapse/servers/stemcell.py +0 -0
  283. {synapse-2.221.0 → synapse-2.222.0}/synapse/telepath.py +0 -0
  284. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/__init__.py +0 -0
  285. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  286. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/__init__.py +0 -0
  287. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  288. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  289. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  290. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  291. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  292. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  293. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  294. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  295. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  296. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  297. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  298. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  299. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  300. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/users/root.key +0 -0
  301. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  302. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/certdir/users/user.key +0 -0
  303. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  304. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  305. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/cpedata.json +0 -0
  306. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  307. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  308. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  309. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  310. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  311. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stix_export/basic.json +0 -0
  312. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  313. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  314. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  315. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  316. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  317. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  318. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  319. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  320. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  321. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  322. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  323. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormmod/common +0 -0
  324. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  325. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  326. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
  327. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
  328. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  329. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  330. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  331. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  332. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  333. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  334. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  335. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  336. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  337. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  338. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  339. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  340. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  341. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  342. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  343. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  344. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  345. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  346. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  347. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  348. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  349. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/test.dat +0 -0
  350. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  351. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testpkg_build_docs/docs/bar.rst +0 -0
  352. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testpkg_build_docs/docs/foo.rst +0 -0
  353. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
  354. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
  355. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
  356. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
  357. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
  358. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/nopmod.py +0 -0
  359. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_axon.py +0 -0
  360. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_cmds_boss.py +0 -0
  361. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_cmds_cortex.py +0 -0
  362. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_cmds_hive.py +0 -0
  363. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_common.py +0 -0
  364. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_cortex.py +0 -0
  365. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_cryotank.py +0 -0
  366. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_daemon.py +0 -0
  367. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_data.py +0 -0
  368. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_datamodel.py +0 -0
  369. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_exc.py +0 -0
  370. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_glob.py +0 -0
  371. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_init.py +0 -0
  372. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_agenda.py +0 -0
  373. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_aha.py +0 -0
  374. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_ast.py +0 -0
  375. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_auth.py +0 -0
  376. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_autodoc.py +0 -0
  377. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_base.py +0 -0
  378. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_boss.py +0 -0
  379. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_cache.py +0 -0
  380. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_cell.py +0 -0
  381. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_certdir.py +0 -0
  382. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_chop.py +0 -0
  383. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_cli.py +0 -0
  384. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_config.py +0 -0
  385. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_const.py +0 -0
  386. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_coro.py +0 -0
  387. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  388. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  389. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  390. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  391. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_datfile.py +0 -0
  392. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  393. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_encoding.py +0 -0
  394. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_gis.py +0 -0
  395. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_hashitem.py +0 -0
  396. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_hashset.py +0 -0
  397. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_health.py +0 -0
  398. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_hive.py +0 -0
  399. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_httpapi.py +0 -0
  400. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_interval.py +0 -0
  401. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_json.py +0 -0
  402. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  403. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_layer.py +0 -0
  404. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_link.py +0 -0
  405. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  406. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_modelrev.py +0 -0
  407. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_module.py +0 -0
  408. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_msgpack.py +0 -0
  409. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  410. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_nexus.py +0 -0
  411. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_node.py +0 -0
  412. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_output.py +0 -0
  413. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  414. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_queue.py +0 -0
  415. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  416. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_reflect.py +0 -0
  417. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_scope.py +0 -0
  418. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_scrape.py +0 -0
  419. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  420. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  421. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_snap.py +0 -0
  422. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_spooled.py +0 -0
  423. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_storm_format.py +0 -0
  424. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormctrl.py +0 -0
  425. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  426. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  427. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  428. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  429. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  430. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  431. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  432. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  433. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  434. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  435. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  436. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  437. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  438. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  439. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  440. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
  441. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  442. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  443. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  444. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  445. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  446. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  447. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  448. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  449. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  450. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  451. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  452. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  453. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  454. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  455. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  456. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  457. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  458. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  459. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  460. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
  461. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  462. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  463. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  464. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  465. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  466. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_structlog.py +0 -0
  467. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_task.py +0 -0
  468. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_thishost.py +0 -0
  469. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_time.py +0 -0
  470. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_trigger.py +0 -0
  471. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_types.py +0 -0
  472. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  473. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_version.py +0 -0
  474. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lib_view.py +0 -0
  475. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  476. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  477. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_mindmeld.py +0 -0
  478. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_auth.py +0 -0
  479. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_base.py +0 -0
  480. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_belief.py +0 -0
  481. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_biz.py +0 -0
  482. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_crypto.py +0 -0
  483. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_dns.py +0 -0
  484. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_doc.py +0 -0
  485. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_economic.py +0 -0
  486. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_entity.py +0 -0
  487. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_files.py +0 -0
  488. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_geopol.py +0 -0
  489. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_geospace.py +0 -0
  490. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_gov_cn.py +0 -0
  491. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_gov_intl.py +0 -0
  492. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_gov_us.py +0 -0
  493. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_inet.py +0 -0
  494. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_infotech.py +0 -0
  495. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_language.py +0 -0
  496. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_material.py +0 -0
  497. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_math.py +0 -0
  498. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_media.py +0 -0
  499. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_person.py +0 -0
  500. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_planning.py +0 -0
  501. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_proj.py +0 -0
  502. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_risk.py +0 -0
  503. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_science.py +0 -0
  504. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_syn.py +0 -0
  505. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_telco.py +0 -0
  506. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_model_transport.py +0 -0
  507. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_servers_axon.py +0 -0
  508. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_servers_cortex.py +0 -0
  509. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_servers_cryotank.py +0 -0
  510. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_servers_stemcell.py +0 -0
  511. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_servers_univ.py +0 -0
  512. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_telepath.py +0 -0
  513. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_aha.py +0 -0
  514. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_apikey.py +0 -0
  515. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_autodoc.py +0 -0
  516. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_axon.py +0 -0
  517. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  518. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_backup.py +0 -0
  519. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_cellauth.py +0 -0
  520. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_changelog.py +0 -0
  521. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
  522. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  523. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  524. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_csvtool.py +0 -0
  525. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_demote.py +0 -0
  526. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  527. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_easycert.py +0 -0
  528. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_feed.py +0 -0
  529. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_genpkg.py +0 -0
  530. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_guid.py +0 -0
  531. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  532. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_hiveload.py +0 -0
  533. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_hivesave.py +0 -0
  534. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  535. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_livebackup.py +0 -0
  536. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_modrole.py +0 -0
  537. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_moduser.py +0 -0
  538. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_pkgs_gendocs.py +0 -0
  539. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_promote.py +0 -0
  540. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_pullfile.py +0 -0
  541. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_pushfile.py +0 -0
  542. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_reload.py +0 -0
  543. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_rstorm.py +0 -0
  544. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_shutdown.py +0 -0
  545. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_snapshot.py +0 -0
  546. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_tools_storm.py +0 -0
  547. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_utils.py +0 -0
  548. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_utils_getrefs.py +0 -0
  549. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/test_utils_stormcov.py +0 -0
  550. {synapse-2.221.0 → synapse-2.222.0}/synapse/tests/utils.py +0 -0
  551. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/__init__.py +0 -0
  552. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/__init__.py +0 -0
  553. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/clone.py +0 -0
  554. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/easycert.py +0 -0
  555. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/enroll.py +0 -0
  556. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/list.py +0 -0
  557. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/mirror.py +0 -0
  558. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/provision/__init__.py +0 -0
  559. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/provision/service.py +0 -0
  560. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/aha/provision/user.py +0 -0
  561. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/apikey.py +0 -0
  562. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/autodoc.py +0 -0
  563. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/axon/__init__.py +0 -0
  564. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/axon/dump.py +0 -0
  565. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/axon/load.py +0 -0
  566. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/axon2axon.py +0 -0
  567. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/backup.py +0 -0
  568. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cellauth.py +0 -0
  569. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/changelog.py +0 -0
  570. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cmdr.py +0 -0
  571. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cortex/__init__.py +0 -0
  572. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cortex/layer/__init__.py +0 -0
  573. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cortex/layer/dump.py +0 -0
  574. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cortex/layer/load.py +0 -0
  575. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cryo/__init__.py +0 -0
  576. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cryo/cat.py +0 -0
  577. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/cryo/list.py +0 -0
  578. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/csvtool.py +0 -0
  579. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/demote.py +0 -0
  580. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/docker/__init__.py +0 -0
  581. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/docker/validate.py +0 -0
  582. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/easycert.py +0 -0
  583. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/feed.py +0 -0
  584. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/genpkg.py +0 -0
  585. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/guid.py +0 -0
  586. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/healthcheck.py +0 -0
  587. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/hive/__init__.py +0 -0
  588. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/hive/load.py +0 -0
  589. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/hive/save.py +0 -0
  590. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/json2mpk.py +0 -0
  591. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/livebackup.py +0 -0
  592. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/modrole.py +0 -0
  593. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/moduser.py +0 -0
  594. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/pkgs/gendocs.py +0 -0
  595. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/pkgs/pandoc_filter.py +0 -0
  596. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/promote.py +0 -0
  597. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/pullfile.py +0 -0
  598. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/pushfile.py +0 -0
  599. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/reload.py +0 -0
  600. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/rstorm.py +0 -0
  601. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/shutdown.py +0 -0
  602. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/snapshot.py +0 -0
  603. {synapse-2.221.0 → synapse-2.222.0}/synapse/tools/storm.py +0 -0
  604. {synapse-2.221.0 → synapse-2.222.0}/synapse/utils/__init__.py +0 -0
  605. {synapse-2.221.0 → synapse-2.222.0}/synapse/utils/getrefs.py +0 -0
  606. {synapse-2.221.0 → synapse-2.222.0}/synapse/utils/stormcov/__init__.py +0 -0
  607. {synapse-2.221.0 → synapse-2.222.0}/synapse/utils/stormcov/plugin.py +0 -0
  608. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/__init__.py +0 -0
  609. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  610. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  611. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cashaddress/base58.py +0 -0
  612. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cashaddress/convert.py +0 -0
  613. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  614. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  615. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  616. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/LICENSE +0 -0
  617. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/__init__.py +0 -0
  618. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  619. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  620. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  621. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  622. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
  623. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
  624. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  625. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/json.py +0 -0
  626. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  627. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  628. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  629. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  630. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  631. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
  632. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  633. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
  634. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  635. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  636. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  637. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  638. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  639. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  640. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/utils.py +0 -0
  641. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/LICENSE +0 -0
  642. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/__init__.py +0 -0
  643. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/constants.py +0 -0
  644. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  645. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  646. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  647. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  648. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  649. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  650. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  651. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  652. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  653. {synapse-2.221.0 → synapse-2.222.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  654. {synapse-2.221.0 → synapse-2.222.0}/synapse.egg-info/SOURCES.txt +0 -0
  655. {synapse-2.221.0 → synapse-2.222.0}/synapse.egg-info/dependency_links.txt +0 -0
  656. {synapse-2.221.0 → synapse-2.222.0}/synapse.egg-info/requires.txt +0 -0
  657. {synapse-2.221.0 → synapse-2.222.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.221.0
3
+ Version: 2.222.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.221.0'
7
+ version = '2.222.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -624,7 +624,8 @@ class CoreApi(s_cell.CellApi):
624
624
  Returns:
625
625
  AsyncIterator[Tuple(buid, valu)]
626
626
  '''
627
- self.user.confirm(('layer', 'lift', layriden))
627
+ if not self.user.allowed(('layer', 'lift', layriden)):
628
+ self.user.confirm(('layer', 'read', layriden))
628
629
  async for item in self.cell.iterFormRows(layriden, form, stortype=stortype, startvalu=startvalu):
629
630
  yield item
630
631
 
@@ -642,7 +643,8 @@ class CoreApi(s_cell.CellApi):
642
643
  Returns:
643
644
  AsyncIterator[Tuple(buid, valu)]
644
645
  '''
645
- self.user.confirm(('layer', 'lift', layriden))
646
+ if not self.user.allowed(('layer', 'lift', layriden)):
647
+ self.user.confirm(('layer', 'read', layriden))
646
648
  async for item in self.cell.iterPropRows(layriden, form, prop, stortype=stortype, startvalu=startvalu):
647
649
  yield item
648
650
 
@@ -659,7 +661,8 @@ class CoreApi(s_cell.CellApi):
659
661
  Returns:
660
662
  AsyncIterator[Tuple(buid, valu)]
661
663
  '''
662
- self.user.confirm(('layer', 'lift', layriden))
664
+ if not self.user.allowed(('layer', 'lift', layriden)):
665
+ self.user.confirm(('layer', 'read', layriden))
663
666
  async for item in self.cell.iterUnivRows(layriden, prop, stortype=stortype, startvalu=startvalu):
664
667
  yield item
665
668
 
@@ -680,7 +683,8 @@ class CoreApi(s_cell.CellApi):
680
683
  This yields (buid, (tagvalu, form)) instead of just buid, valu in order to allow resuming an interrupted
681
684
  call by feeding the last value retrieved into starttupl
682
685
  '''
683
- self.user.confirm(('layer', 'lift', layriden))
686
+ if not self.user.allowed(('layer', 'lift', layriden)):
687
+ self.user.confirm(('layer', 'read', layriden))
684
688
  async for item in self.cell.iterTagRows(layriden, tag, form=form, starttupl=starttupl):
685
689
  yield item
686
690
 
@@ -699,7 +703,8 @@ class CoreApi(s_cell.CellApi):
699
703
  Returns:
700
704
  AsyncIterator[Tuple(buid, valu)]
701
705
  '''
702
- self.user.confirm(('layer', 'lift', layriden))
706
+ if not self.user.allowed(('layer', 'lift', layriden)):
707
+ self.user.confirm(('layer', 'read', layriden))
703
708
  async for item in self.cell.iterTagPropRows(layriden, tag, prop, form=form, stortype=stortype,
704
709
  startvalu=startvalu):
705
710
  yield item
@@ -1366,6 +1371,30 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1366
1371
 
1367
1372
  def _initCorePerms(self):
1368
1373
  self._cortex_permdefs.extend((
1374
+ {'perm': ('axon', 'upload'), 'gate': 'cortex',
1375
+ 'desc': 'Controls the ability to upload a file to the Axon.'},
1376
+ {'perm': ('axon', 'get'), 'gate': 'cortex',
1377
+ 'desc': 'Controls the ability to retrieve a file from the Axon.'},
1378
+ {'perm': ('axon', 'has'), 'gate': 'cortex',
1379
+ 'desc': 'Controls the ability to check if the Axon contains a file.'},
1380
+ {'perm': ('axon', 'del'), 'gate': 'cortex',
1381
+ 'desc': 'Controls the ability to remove a file from the Axon.'},
1382
+
1383
+ {'perm': ('layer', 'add'), 'gate': 'cortex',
1384
+ 'desc': 'Controls the ability to add Layers to the cortex.'},
1385
+ {'perm': ('layer', 'del'), 'gate': 'cortex',
1386
+ 'desc': 'Controls the ability to remove Layers from the cortex.'},
1387
+ {'perm': ('layer', 'read'), 'gate': 'layer',
1388
+ 'desc': 'Controls the ability to read/lift from a Layer.'},
1389
+ {'perm': ('layer', 'read', '<iden>'), 'gate': 'cortex',
1390
+ 'desc': 'Controls the ability to read/lift from a specific Layer.'},
1391
+ {'perm': ('layer', 'set', '<name>'), 'gate': 'layer',
1392
+ 'desc': 'Controls the ability to configure properties of a Layer.'},
1393
+ {'perm': ('layer', 'write'), 'gate': 'layer',
1394
+ 'desc': 'Controls the ability to write to a Layer.'},
1395
+ {'perm': ('layer', 'write', '<iden>'), 'gate': 'cortex',
1396
+ 'desc': 'Controls the ability to write to a specific Layer.'},
1397
+
1369
1398
  {'perm': ('model', 'form', 'add'), 'gate': 'cortex',
1370
1399
  'desc': 'Controls access to adding extended model forms.'},
1371
1400
  {'perm': ('model', 'form', 'add', '<form>'), 'gate': 'cortex',
@@ -1519,15 +1548,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1519
1548
  {'perm': ('view', 'set', '<setting>'), 'gate': 'view',
1520
1549
  'desc': 'Controls access to change view settings.',
1521
1550
  'ex': 'view.set.name'},
1522
-
1523
- {'perm': ('axon', 'upload'), 'gate': 'cortex',
1524
- 'desc': 'Controls the ability to upload a file to the Axon.'},
1525
- {'perm': ('axon', 'get'), 'gate': 'cortex',
1526
- 'desc': 'Controls the ability to retrieve a file from the Axon.'},
1527
- {'perm': ('axon', 'has'), 'gate': 'cortex',
1528
- 'desc': 'Controls the ability to check if the Axon contains a file.'},
1529
- {'perm': ('axon', 'del'), 'gate': 'cortex',
1530
- 'desc': 'Controls the ability to remove a file from the Axon.'},
1531
1551
  ))
1532
1552
  for pdef in self._cortex_permdefs:
1533
1553
  s_schemas.reqValidPermDef(pdef)
@@ -238,10 +238,10 @@ liftreverse: _REVERSE "(" (liftformtag | liftpropby | liftprop | liftbyarray | l
238
238
 
239
239
  _DEREF.3: /\*(?=\$)/
240
240
 
241
- liftformtag: ((PROPS | UNIVNAME | WILDPROPS) | _DEREF _varvalu) tagname [_cmpr _valu]
242
- liftpropby: ((PROPS | EMBEDPROPS | UNIVNAME) | _DEREF _varvalu) _cmpr _valu
243
- liftprop: ((PROPS | UNIVNAME | WILDPROPS) | _DEREF _varvalu)
244
- liftbyarray: ((PROPS | EMBEDPROPS | UNIVNAME) | _DEREF _varvalu) "*[" _safe_cmpr _valu "]"
241
+ liftformtag: (PROPS | UNIVNAME | WILDPROPS | derefprops) tagname [_cmpr _valu]
242
+ liftpropby: (PROPS | EMBEDPROPS | UNIVNAME | derefprops) _cmpr _valu
243
+ liftprop: (PROPS | UNIVNAME | WILDPROPS | derefprops)
244
+ liftbyarray: (PROPS | EMBEDPROPS | UNIVNAME | derefprops) "*[" _safe_cmpr _valu "]"
245
245
  lifttagtag: (_HASH | _HASHSPACE) tagname [_cmpr _valu]
246
246
  liftbytag: (tagname | tagnamewithspace) [_cmpr _valu]
247
247
  liftbytagprop: (tagprop | tagpropwithspace) [_cmpr _valu]
@@ -249,7 +249,7 @@ liftbyformtagprop: formtagprop [_cmpr _valu]
249
249
 
250
250
  tagprop: tagname _COLONNOSPACE (BASEPROP | _varvalu)
251
251
  tagpropwithspace: tagnamewithspace _COLONNOSPACE (BASEPROP | _varvalu) -> tagprop
252
- formtagprop: ((PROPS | UNIVNAME | WILDPROPS) | _DEREF _varvalu) tagname _COLONNOSPACE (BASEPROP | _varvalu)
252
+ formtagprop: (PROPS | UNIVNAME | WILDPROPS | derefprops) tagname _COLONNOSPACE (BASEPROP | _varvalu)
253
253
  _COLONNOSPACE.2: /(?<!\s):/
254
254
 
255
255
  _funcarg: (VARTOKN [EQNOSPACE _valu])
@@ -484,7 +484,7 @@ EMBEDPROPS.2: /[a-z_][a-z0-9_]*(:[a-z0-9_]+)+((\:\:|\:|\.)[a-z0-9_]+)*(?![:.a-z0
484
484
  UNIVNAME.2: /(?<=^|[\s\|\{\(\[+=-])\.[a-z_][a-z0-9_]*([:.][a-z0-9_]+)*/
485
485
  univprop: UNIVNAME | "." _varvalu
486
486
  // A full property or a universal property
487
- formname: PROPS | _DEREF _varvalu
487
+ formname: PROPS | derefprops
488
488
  // A relative property
489
489
  relprop: RELNAME | _COLONDOLLAR _varvaluatom
490
490
 
@@ -494,6 +494,9 @@ RELNAME: /(?<!\w):\.?[a-z_][a-z0-9_]*(?:(\:\:|\:|\.)[a-z_][a-z0-9_]*)*/
494
494
  // Similar to PROPS but does not require a colon
495
495
  BASEPROP: /[a-z_][a-z0-9_]*(?:(\:\:|\:|\.)[a-z_][a-z0-9_]*)*/
496
496
 
497
+ // Derefed variable for prop names
498
+ derefprops: _DEREF _varvalu
499
+
497
500
  // The entry point for a $(...) expression. The initial dollar sign is now optional
498
501
  _dollarexprs: "$"? dollaroper
499
502
 
@@ -2,7 +2,6 @@ import types
2
2
  import asyncio
3
3
  import decimal
4
4
  import fnmatch
5
- import hashlib
6
5
  import logging
7
6
  import binascii
8
7
  import itertools
@@ -1833,7 +1832,7 @@ class LiftProp(LiftOper):
1833
1832
 
1834
1833
  assert len(self.kids) == 1
1835
1834
 
1836
- name = await tostr(await self.kids[0].compute(runt, path))
1835
+ name = await self.kids[0].compute(runt, path)
1837
1836
 
1838
1837
  prop = runt.model.props.get(name)
1839
1838
  if prop is not None:
@@ -4029,6 +4028,13 @@ class FormName(Value):
4029
4028
  async def compute(self, runt, path):
4030
4029
  return await self.kids[0].compute(runt, path)
4031
4030
 
4031
+ class DerefProps(Value):
4032
+ async def compute(self, runt, path):
4033
+ valu = await toprim(await self.kids[0].compute(runt, path))
4034
+ if (exc := await s_stormtypes.typeerr(valu, str)) is not None:
4035
+ raise self.kids[0].addExcInfo(exc)
4036
+ return valu
4037
+
4032
4038
  class RelProp(PropName):
4033
4039
  pass
4034
4040
 
@@ -119,6 +119,7 @@ class LayerApi(s_cell.CellApi):
119
119
 
120
120
  self.layr = layr
121
121
  self.liftperm = ('layer', 'lift', self.layr.iden)
122
+ self.readperm = ('layer', 'read', self.layr.iden)
122
123
  self.writeperm = ('layer', 'write', self.layr.iden)
123
124
 
124
125
  async def iterLayerNodeEdits(self):
@@ -126,7 +127,8 @@ class LayerApi(s_cell.CellApi):
126
127
  Scan the full layer and yield artificial nodeedit sets.
127
128
  '''
128
129
 
129
- await self._reqUserAllowed(self.liftperm)
130
+ if not self.allowed(self.liftperm):
131
+ await self._reqUserAllowed(self.readperm)
130
132
  async for item in self.layr.iterLayerNodeEdits():
131
133
  yield item
132
134
  await asyncio.sleep(0)
@@ -165,13 +167,15 @@ class LayerApi(s_cell.CellApi):
165
167
 
166
168
  Once caught up with storage, yield them in realtime.
167
169
  '''
168
- await self._reqUserAllowed(self.liftperm)
170
+ if not self.allowed(self.liftperm):
171
+ await self._reqUserAllowed(self.readperm)
169
172
  async for item in self.layr.syncNodeEdits(offs, wait=wait, reverse=reverse):
170
173
  yield item
171
174
  await asyncio.sleep(0)
172
175
 
173
176
  async def syncNodeEdits2(self, offs, wait=True):
174
- await self._reqUserAllowed(self.liftperm)
177
+ if not self.allowed(self.liftperm):
178
+ await self._reqUserAllowed(self.readperm)
175
179
  async for item in self.layr.syncNodeEdits2(offs, wait=wait):
176
180
  yield item
177
181
  await asyncio.sleep(0)
@@ -180,18 +184,21 @@ class LayerApi(s_cell.CellApi):
180
184
  '''
181
185
  Returns what will be the *next* nodeedit log index.
182
186
  '''
183
- await self._reqUserAllowed(self.liftperm)
187
+ if not self.allowed(self.liftperm):
188
+ await self._reqUserAllowed(self.readperm)
184
189
  return await self.layr.getEditIndx()
185
190
 
186
191
  async def getEditSize(self):
187
192
  '''
188
193
  Return the total number of (edits, meta) pairs in the layer changelog.
189
194
  '''
190
- await self._reqUserAllowed(self.liftperm)
195
+ if not self.allowed(self.liftperm):
196
+ await self._reqUserAllowed(self.readperm)
191
197
  return await self.layr.getEditSize()
192
198
 
193
199
  async def getIden(self):
194
- await self._reqUserAllowed(self.liftperm)
200
+ if not self.allowed(self.liftperm):
201
+ await self._reqUserAllowed(self.readperm)
195
202
  return self.layr.iden
196
203
 
197
204
  BUID_CACHE_SIZE = 10000
@@ -3350,7 +3357,7 @@ class Layer(s_nexus.Pusher):
3350
3357
  nodeedits = [(buid, newp_formname, [set_edit])]
3351
3358
 
3352
3359
  _, changes = await self.saveNodeEdits(nodeedits, meta)
3353
- return bool(changes[0][2])
3360
+ return any(c[2] for c in changes)
3354
3361
 
3355
3362
  async def delStorNode(self, buid, meta):
3356
3363
  '''
@@ -3434,7 +3441,7 @@ class Layer(s_nexus.Pusher):
3434
3441
  if changed: # pragma: no cover
3435
3442
  return changed
3436
3443
 
3437
- return bool(changes[0][2])
3444
+ return any(c[2] for c in changes)
3438
3445
 
3439
3446
  for n2iden, edges in n2edges.items():
3440
3447
  edits = [(EDIT_EDGE_DEL, edge, ()) for edge in edges]
@@ -3455,7 +3462,7 @@ class Layer(s_nexus.Pusher):
3455
3462
  nodeedits = [(buid, oldp_formname, [del_edit])]
3456
3463
 
3457
3464
  _, changes = await self.saveNodeEdits(nodeedits, meta)
3458
- return bool(changes[0][2])
3465
+ return any(c[2] for c in changes)
3459
3466
 
3460
3467
  async def delNodeData(self, buid, meta, name=None):
3461
3468
  '''
@@ -3480,7 +3487,7 @@ class Layer(s_nexus.Pusher):
3480
3487
  nodeedits = [(buid, sode.get('form'), edits)]
3481
3488
 
3482
3489
  _, changes = await self.saveNodeEdits(nodeedits, meta)
3483
- return bool(changes[0][2])
3490
+ return any(c[2] for c in changes)
3484
3491
 
3485
3492
  async def delEdge(self, n1buid, verb, n2buid, meta):
3486
3493
  sode = self._getStorNode(n1buid)
@@ -3497,7 +3504,7 @@ class Layer(s_nexus.Pusher):
3497
3504
  nodeedits = [(n1buid, sode.get('form'), edits)]
3498
3505
 
3499
3506
  _, changes = await self.saveNodeEdits(nodeedits, meta)
3500
- return bool(changes[0][2])
3507
+ return any(c[2] for c in changes)
3501
3508
 
3502
3509
  async def storNodeEdits(self, nodeedits, meta):
3503
3510
 
@@ -669,6 +669,7 @@ ruleClassMap = {
669
669
  'condsetoper': s_ast.CondSetOper,
670
670
  'condtrysetoper': lambda astinfo, kids: s_ast.CondSetOper(astinfo, kids, errok=True),
671
671
  'condsubq': s_ast.SubqCond,
672
+ 'derefprops': s_ast.DerefProps,
672
673
  'dollarexpr': s_ast.DollarExpr,
673
674
  'edgeaddn1': s_ast.EditEdgeAdd,
674
675
  'edgedeln1': s_ast.EditEdgeDel,
@@ -344,6 +344,7 @@ class StormRst(s_base.Base):
344
344
  'storm-cortex': self._handleStormCortex,
345
345
  'storm-envvar': self._handleStormEnvVar,
346
346
  'storm-expect': self._handleStormExpect,
347
+ 'storm-python-path': self._handlePythonPath,
347
348
  'storm-multiline': self._handleStormMultiline,
348
349
  'storm-mock-http': self._handleStormMockHttp,
349
350
  'storm-vcr-opts': self._handleStormVcrOpts,
@@ -374,6 +375,22 @@ class StormRst(s_base.Base):
374
375
  raise s_exc.NoSuchName(mesg=f'The {directive} directive is not supported', directive=directive)
375
376
  return handler
376
377
 
378
+ async def _handlePythonPath(self, text):
379
+ '''
380
+ Add the text to sys.path.
381
+
382
+ Args:
383
+ text: The path to add.
384
+ '''
385
+ if not os.path.isdir(text):
386
+ raise s_exc.NoSuchDir(mesg=f'The path {text} is not a directory', path=text)
387
+ if text not in sys.path:
388
+ logger.debug(f'Inserting {text} into sys.path')
389
+ sys.path.insert(0, text)
390
+ def onfini():
391
+ sys.path.remove(text)
392
+ self.onfini(onfini)
393
+
377
394
  async def _handleStorm(self, text):
378
395
  '''
379
396
  Run a Storm command and generate text from the output.
@@ -618,7 +635,8 @@ class StormRst(s_base.Base):
618
635
  query = query.replace('--fail-ok', '')
619
636
  query = query.strip()
620
637
 
621
- env = self.context.get('shell-env')
638
+ env = dict(os.environ)
639
+ env.update(self.context.get('shell-env', {}))
622
640
 
623
641
  stderr = None
624
642
  if opts.include_stderr:
@@ -816,6 +816,10 @@ _reqValidPkgdefSchema = {
816
816
  'items': {'type': 'array',
817
817
  'items': {'type': 'string'}},
818
818
  },
819
+ 'asroot:ondeny:import': {
820
+ 'type': 'string',
821
+ 'enum': ['allow', 'warn', 'deny'],
822
+ },
819
823
  },
820
824
  'additionalProperties': True,
821
825
  'required': ['name', 'storm']
@@ -1029,7 +1029,7 @@ class HttpReq(s_stormtypes.StormType):
1029
1029
  if not isinstance(body, bytes):
1030
1030
  body = await s_stormtypes.toprim(body)
1031
1031
  body = s_json.dumps(body)
1032
- headers['Content-Type'] = 'application/json; charset=utf8"'
1032
+ headers['Content-Type'] = 'application/json; charset=utf8'
1033
1033
  headers['Content-Length'] = len(body)
1034
1034
 
1035
1035
  await self._methSendCode(code)
@@ -1595,8 +1595,16 @@ class LibBase(Lib):
1595
1595
 
1596
1596
  if not asroot:
1597
1597
  permtext = ' or '.join(('.'.join(p) for p in rootperms))
1598
- mesg = f'Module ({name}) requires permission: {permtext}'
1599
- raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
1598
+
1599
+ match mdef.get('asroot:ondeny:import', 'deny'):
1600
+ case 'allow':
1601
+ pass
1602
+ case 'warn':
1603
+ mesg = f'Module ({name}) permissions will not be elevated. Missing permission: {permtext}.'
1604
+ await self.runt.warnonce(mesg, log=False)
1605
+ case _:
1606
+ mesg = f'Module ({name}) requires permission: {permtext}'
1607
+ raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
1600
1608
 
1601
1609
  else:
1602
1610
  perm = ('storm', 'asroot', 'mod') + tuple(name.split('.'))
@@ -7837,7 +7845,8 @@ class Layer(Prim):
7837
7845
 
7838
7846
  layr = self.runt.snap.core.reqLayer(self.valu.get('iden'))
7839
7847
 
7840
- self.runt.confirm(('layer', 'edits', 'read'), gateiden=layr.iden)
7848
+ if not self.runt.allowed(('layer', 'edits', 'read'), gateiden=layr.iden):
7849
+ self.runt.confirm(('layer', 'read'), gateiden=layr.iden)
7841
7850
 
7842
7851
  if reverse:
7843
7852
  wait = False
@@ -10439,5 +10448,10 @@ async def totype(valu, basetypes=False) -> str:
10439
10448
  async def typeerr(name, reqt):
10440
10449
  if not isinstance(name, reqt):
10441
10450
  styp = await totype(name, basetypes=True)
10442
- mesg = f"Expected value of type '{reqt}', got '{styp}' with value {name}."
10451
+
10452
+ reqtname = str(reqt)
10453
+ if (clsname := getattr(reqt, '__name__')):
10454
+ reqtname = clsname
10455
+
10456
+ mesg = f"Expected value of type '{reqtname}', got '{styp}' with value {name}."
10443
10457
  return s_exc.StormRuntimeError(mesg=mesg, name=name, type=styp)
@@ -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, 221, 0)
226
+ version = (2, 222, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = '6ae7cd60524df7dc861bb91fe25309999eba6d70'
228
+ commit = '1ab0342cfb8272e9f9a629f1755b0e33b78b78b3'
@@ -729,6 +729,9 @@ class OuModule(s_module.CoreModule):
729
729
 
730
730
  ('ext:id', ('str', {'strip': True}), {
731
731
  'doc': 'An external identifier for the technique.'}),
732
+
733
+ ('parent', ('ou:technique', {}), {
734
+ 'doc': 'The parent technique for the technique.'}),
732
735
  )),
733
736
  ('ou:technique:taxonomy', {}, ()),
734
737
  ('ou:orgtype', {}, ()),
@@ -1267,7 +1267,7 @@ _ParseResults = [
1267
1267
  'Query: [EditTagPropDel: [TagProp: [TagName: [Const: baz, Const: faz], Const: lol]]]',
1268
1268
  'Query: [EditTagPropSet: [TagProp: [TagName: [Const: baz, Const: faz], Const: lol], Const: =, Const: 20]]',
1269
1269
  'Query: [LiftTagProp: [TagProp: [TagName: [Const: tag], Const: somegeoloctypebecauseihatelife], Const: near=, List: [VarValue: [Const: lat], VarValue: [Const: long]]]]',
1270
- 'Query: [LiftPropBy: [VarValue: [Const: foo], Const: near=, Const: 20]]',
1270
+ 'Query: [LiftPropBy: [DerefProps: [VarValue: [Const: foo]], Const: near=, Const: 20]]',
1271
1271
  'Query: [EditNodeAdd: [FormName: [Const: test:str], Const: =, VarDeref: [VarDeref: [VarDeref: [VarDeref: [VarDeref: [VarValue: [Const: foo], Const: woot], Const: var], VarValue: [Const: bar]], Const: mar], VarValue: [Const: car]]]]',
1272
1272
  'Query: [LiftPropBy: [Const: test:str, Const: =, VarDeref: [VarDeref: [VarValue: [Const: foo], VarValue: [Const: space key]], Const: subkey]]]',
1273
1273
  'Query: [ForLoop: [Const: iterkey, VarDeref: [VarDeref: [VarValue: [Const: foo], VarValue: [Const: bar key]], VarValue: [Const: biz key]], SubQuery: [Query: [LiftPropBy: [Const: inet:ipv4, Const: =, VarDeref: [VarDeref: [VarDeref: [VarValue: [Const: foo], VarValue: [Const: bar key]], VarValue: [Const: biz key]], VarValue: [Const: iterkey]]]]]]]',
@@ -1337,11 +1337,11 @@ _ParseResults = [
1337
1337
  'Query: [VarEvalOper: [FuncCall: [VarDeref: [VarValue: [Const: lib], Const: print], CallArgs: [DollarExpr: [FuncCall: [VarDeref: [DollarExpr: [RelPropValue: [Const: prop]], Const: upper], CallArgs: [], CallKwargs: []]]], CallKwargs: []]]]',
1338
1338
  'Query: [VarEvalOper: [FuncCall: [VarDeref: [VarValue: [Const: lib], Const: print], CallArgs: [VarDeref: [DollarExpr: [ExprDict: [Const: unicode, Const: 1]], DollarExpr: [RelPropValue: [Const: prop]]]], CallKwargs: []]]]',
1339
1339
  'Query: [VarEvalOper: [FuncCall: [VarDeref: [VarValue: [Const: lib], Const: print], CallArgs: [DollarExpr: [ExprNode: [VarDeref: [DollarExpr: [ExprDict: [Const: unicode, Const: 1]], DollarExpr: [RelPropValue: [Const: prop]]], Const: +, DollarExpr: [Const: 2]]]], CallKwargs: []]]]',
1340
- 'Query: [LiftFormTag: [VarValue: [Const: form], TagName: [VarValue: [Const: tag]]]]',
1341
- 'Query: [LiftFormTagProp: [FormTagProp: [VarValue: [Const: form], TagName: [VarValue: [Const: tag]], VarValue: [Const: prop]]]]',
1340
+ 'Query: [LiftFormTag: [DerefProps: [VarValue: [Const: form]], TagName: [VarValue: [Const: tag]]]]',
1341
+ 'Query: [LiftFormTagProp: [FormTagProp: [DerefProps: [VarValue: [Const: form]], TagName: [VarValue: [Const: tag]], VarValue: [Const: prop]]]]',
1342
1342
  'Query: [LiftProp: [Const: inet:ipv4]]',
1343
1343
  'Query: [LiftPropBy: [Const: inet:ipv4, Const: =, Const: 1.2.3.4]]',
1344
- 'Query: [LiftPropBy: [VarValue: [Const: form], Const: =, VarValue: [Const: valu]]]',
1344
+ 'Query: [LiftPropBy: [DerefProps: [VarValue: [Const: form]], Const: =, VarValue: [Const: valu]]]',
1345
1345
  'Query: [LiftPropBy: [Const: test:str, Const: =, Const: foobar], FormPivot: [Const: inet:dns*], isjoin=False]',
1346
1346
  'Query: [LiftPropBy: [Const: test:str, Const: =, Const: foobar], FormPivot: [Const: inet:dns:*], isjoin=False]',
1347
1347
  'Query: [LiftPropBy: [Const: test:str, Const: =, Const: foobar], FormPivot: [List: [Const: meta:source, Const: inet:dns:a]], isjoin=False]',
@@ -1,4 +1,5 @@
1
1
  import os
2
+ import sys
2
3
 
3
4
  import vcr
4
5
 
@@ -226,10 +227,10 @@ Bye!
226
227
  shell_input00 = '''
227
228
  Shell with environment variable.
228
229
 
229
- .. shell-env:: SYN_LOG_LEVEL=DEBUG SYN_FOO=BAR
230
- .. shell:: python3 -c "import os; print('LEVEL', os.environ.get('SYN_LOG_LEVEL')); print('FOO', os.environ.get('SYN_FOO'))"
230
+ .. shell-env:: SYN_HEHE_HAHA=BEEP SYN_FOO=BAR
231
+ .. shell:: python3 -c "import os; print('HEHE_HAHA', os.environ.get('SYN_HEHE_HAHA')); print('FOO', os.environ.get('SYN_FOO'))"
231
232
  .. shell-env::
232
- .. shell:: python3 -c "import os; print('LEVEL', os.environ.get('SYN_LOG_LEVEL')); print('FOO', os.environ.get('SYN_FOO'))"
233
+ .. shell:: python3 -c "import os; print('HEHE_HAHA', os.environ.get('SYN_HEHE_HAHA')); print('FOO', os.environ.get('SYN_FOO'))"
233
234
  '''
234
235
 
235
236
  shell_output00 = '''
@@ -237,17 +238,17 @@ Shell with environment variable.
237
238
 
238
239
  ::
239
240
 
240
- python3 -c "import os; print('LEVEL', os.environ.get('SYN_LOG_LEVEL')); print('FOO', os.environ.get('SYN_FOO'))"
241
+ python3 -c "import os; print('HEHE_HAHA', os.environ.get('SYN_HEHE_HAHA')); print('FOO', os.environ.get('SYN_FOO'))"
241
242
 
242
- LEVEL DEBUG
243
+ HEHE_HAHA BEEP
243
244
  FOO BAR
244
245
 
245
246
 
246
247
  ::
247
248
 
248
- python3 -c "import os; print('LEVEL', os.environ.get('SYN_LOG_LEVEL')); print('FOO', os.environ.get('SYN_FOO'))"
249
+ python3 -c "import os; print('HEHE_HAHA', os.environ.get('SYN_HEHE_HAHA')); print('FOO', os.environ.get('SYN_FOO'))"
249
250
 
250
- LEVEL None
251
+ HEHE_HAHA None
251
252
  FOO None
252
253
 
253
254
 
@@ -776,3 +777,50 @@ class RStormLibTest(s_test.SynTest):
776
777
  fd.write(fix_input_for_cli(fail02).encode())
777
778
  with self.raises(s_exc.StormRuntimeError):
778
779
  await get_rst_text(path)
780
+
781
+ async def test_rstorm_python_path(self):
782
+ content = '''#comment
783
+ import synapse.lib.cell as s_cell
784
+ import synapse.lib.stormsvc as s_stormsvc
785
+
786
+ class SomeApi(s_stormsvc.StormSvc, s_cell.CellApi):
787
+ _storm_svc_name = 'someservice'
788
+ _storm_svc_vers = '0.1.0',
789
+ _storm_svc_pkgs = ()
790
+
791
+ class SomeService(s_cell.Cell):
792
+ cellapi = SomeApi
793
+ '''
794
+ with self.getTestDir() as dirn:
795
+ with s_common.genfile(dirn, 'somefile.py') as fd:
796
+ fd.write(content.encode())
797
+ pythonpath_rst_in = f'''
798
+ .. storm-cortex:: default
799
+ .. storm-python-path:: {dirn}
800
+ .. storm-svc:: somefile.SomeService fooservice {{"https:port": 0}}
801
+ .. storm:: service.list
802
+
803
+ hello world
804
+ '''
805
+ rst_path = s_common.genpath(dirn, 'test.rst')
806
+
807
+ with s_common.genfile(rst_path) as fd:
808
+ fd.write(pythonpath_rst_in.encode())
809
+
810
+ pythonpath_rst_out = await get_rst_text(rst_path)
811
+ self.notin('storm-python-path', pythonpath_rst_out)
812
+ self.isin('(fooservice) (someservice @ 0.1.0)', pythonpath_rst_out)
813
+ self.isin('hello world', pythonpath_rst_out)
814
+ # Fini handler cleaned up the path manipulation
815
+ self.notin(dirn, sys.path)
816
+
817
+ # Sad path
818
+ pythonpath_rst_in = f'''
819
+ .. storm-python-path:: {dirn}/{s_common.guid()}
820
+ hello world
821
+ '''
822
+ rst_path = s_common.genpath(dirn, 'test.rst')
823
+ with s_common.genfile(rst_path) as fd:
824
+ fd.write(pythonpath_rst_in.encode())
825
+ with self.raises(s_exc.NoSuchDir):
826
+ await get_rst_text(rst_path)
@@ -1,6 +1,5 @@
1
1
  import copy
2
2
  import asyncio
3
- import datetime
4
3
  import itertools
5
4
  import urllib.parse as u_parse
6
5
  import unittest.mock as mock
@@ -17,6 +16,7 @@ import synapse.lib.storm as s_storm
17
16
  import synapse.lib.httpapi as s_httpapi
18
17
  import synapse.lib.msgpack as s_msgpack
19
18
  import synapse.lib.version as s_version
19
+ import synapse.lib.stormtypes as s_stormtypes
20
20
 
21
21
  import synapse.tests.utils as s_t_utils
22
22
  from synapse.tests.utils import alist
@@ -4874,6 +4874,79 @@ class StormTest(s_t_utils.SynTest):
4874
4874
  self.len(1, links)
4875
4875
  self.eq({'type': 'runtime'}, links[0][1])
4876
4876
 
4877
+ async def test_storm_derefprops(self):
4878
+ async with self.getTestCore() as core:
4879
+ await core.addTagProp('score', ('int', {}), {})
4880
+
4881
+ mesg = "Expected value of type 'str', got '"
4882
+
4883
+ # editnodeadd
4884
+ msgs = await core.stormlist('$form = inet:fqdn [ *$form=foobar.com ]')
4885
+ self.stormHasNoWarnErr(msgs)
4886
+
4887
+ invals = [10, None, False, [], {}]
4888
+
4889
+ for inval in invals:
4890
+ opts = {'vars': {'form': inval}}
4891
+ with self.raises(s_exc.StormRuntimeError) as exc:
4892
+ await core.nodes('[ *$form=valu ]', opts=opts)
4893
+ self.true(exc.exception.get('mesg').startswith(mesg))
4894
+
4895
+ # liftprop
4896
+ msgs = await core.stormlist('$form = inet:fqdn *$form')
4897
+ self.stormHasNoWarnErr(msgs)
4898
+
4899
+ for inval in invals:
4900
+ opts = {'vars': {'form': inval}}
4901
+ with self.raises(s_exc.StormRuntimeError) as exc:
4902
+ await core.nodes('*$form', opts=opts)
4903
+ self.true(exc.exception.get('mesg').startswith(mesg))
4904
+
4905
+ # liftpropby
4906
+ msgs = await core.stormlist('$form = inet:fqdn *$form=foobar.com')
4907
+ self.stormHasNoWarnErr(msgs)
4908
+
4909
+ for inval in invals:
4910
+ opts = {'vars': {'form': inval}}
4911
+ with self.raises(s_exc.StormRuntimeError) as exc:
4912
+ await core.nodes('*$form=newp', opts=opts)
4913
+ self.true(exc.exception.get('mesg').startswith(mesg))
4914
+
4915
+ # liftformtag
4916
+ msgs = await core.stormlist('$form = inet:fqdn *$form#foo')
4917
+ self.stormHasNoWarnErr(msgs)
4918
+
4919
+ for inval in invals:
4920
+ opts = {'vars': {'form': inval}}
4921
+ with self.raises(s_exc.StormRuntimeError) as exc:
4922
+ await core.nodes('*$form#newp', opts=opts)
4923
+ self.true(exc.exception.get('mesg').startswith(mesg))
4924
+
4925
+ # liftbyarray
4926
+ msgs = await core.stormlist('$form = test:arrayform *$form*[=(10)]')
4927
+ self.stormHasNoWarnErr(msgs)
4928
+
4929
+ for inval in invals:
4930
+ opts = {'vars': {'form': inval}}
4931
+ with self.raises(s_exc.StormRuntimeError) as exc:
4932
+ await core.nodes('*$form*[="newp"]', opts=opts)
4933
+ self.true(exc.exception.get('mesg').startswith(mesg))
4934
+
4935
+ # formtagprop
4936
+ msgs = await core.stormlist('$form = inet:fqdn *$form#foo:score')
4937
+ self.stormHasNoWarnErr(msgs)
4938
+
4939
+ for inval in invals:
4940
+ opts = {'vars': {'form': inval}}
4941
+ with self.raises(s_exc.StormRuntimeError) as exc:
4942
+ await core.nodes('*$form#newp:score', opts=opts)
4943
+ self.true(exc.exception.get('mesg').startswith(mesg))
4944
+
4945
+ # Check Storm Str types
4946
+ name = s_stormtypes.Str('inet:fqdn')
4947
+ msgs = await core.stormlist('*$form', opts={'vars': {'form': name}})
4948
+ self.stormHasNoWarnErr(msgs)
4949
+
4877
4950
  async def test_storm_nested_root(self):
4878
4951
  async with self.getTestCore() as core:
4879
4952
  self.eq(20, await core.callStorm('''