synapse 3.2.0__tar.gz → 3.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. {synapse-3.2.0/synapse.egg-info → synapse-3.3.0}/PKG-INFO +1 -1
  2. {synapse-3.2.0 → synapse-3.3.0}/pyproject.toml +1 -1
  3. {synapse-3.2.0 → synapse-3.3.0}/synapse/cortex.py +8 -3
  4. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/skills/storm/SKILL.md +6 -0
  5. {synapse-3.2.0 → synapse-3.3.0}/synapse/datamodel.py +30 -0
  6. {synapse-3.2.0/synapse/tools/storm → synapse-3.3.0/synapse/lib}/_http.py +64 -2
  7. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/ast.py +42 -12
  8. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/auth.py +29 -10
  9. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/passwd.py +17 -2
  10. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/mddocs.py +193 -10
  11. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/node.py +8 -1
  12. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/process.py +8 -1
  13. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/aha.py +168 -29
  14. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/oauth.py +1 -1
  15. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/stats.py +15 -11
  16. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/storm.py +11 -13
  17. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormtypes.py +3 -0
  18. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/types.py +7 -0
  19. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/version.py +2 -2
  20. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/view.py +34 -10
  21. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/entity.py +2 -0
  22. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/geospace.py +4 -0
  23. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/infotech.py +107 -11
  24. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/proj.py +3 -0
  25. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/testpkg.yaml +2 -2
  26. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_cortex.py +81 -1
  27. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_datamodel.py +15 -0
  28. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_ast.py +104 -0
  29. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_auth.py +29 -0
  30. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_passwd.py +49 -0
  31. synapse-3.3.0/synapse/tests/test_lib_http.py +383 -0
  32. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_layer.py +76 -0
  33. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_mddocs.py +267 -6
  34. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_process.py +16 -0
  35. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_aha.py +109 -2
  36. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_stats.py +62 -0
  37. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_storm.py +70 -0
  38. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_entity.py +13 -0
  39. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_geospace.py +12 -0
  40. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_infotech.py +69 -0
  41. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_proj.py +2 -0
  42. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_aha.py +126 -10
  43. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_cli.py +14 -278
  44. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_pkg_gen.py +148 -0
  45. synapse-3.3.0/synapse/tests/test_tools_utils_docmanifest.py +83 -0
  46. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/utils.py +19 -0
  47. synapse-3.3.0/synapse/tools/aha/mirror.py +341 -0
  48. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/_cli.py +3 -24
  49. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/gen.py +33 -5
  50. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/publish.py +1 -2
  51. synapse-3.3.0/synapse/tools/utils/docmanifest.py +36 -0
  52. {synapse-3.2.0 → synapse-3.3.0}/synapse/utils/stormcov.py +11 -0
  53. {synapse-3.2.0 → synapse-3.3.0/synapse.egg-info}/PKG-INFO +1 -1
  54. {synapse-3.2.0 → synapse-3.3.0}/synapse.egg-info/SOURCES.txt +4 -1
  55. synapse-3.2.0/synapse/tools/aha/mirror.py +0 -171
  56. {synapse-3.2.0 → synapse-3.3.0}/LICENSE +0 -0
  57. {synapse-3.2.0 → synapse-3.3.0}/README.md +0 -0
  58. {synapse-3.2.0 → synapse-3.3.0}/setup.cfg +0 -0
  59. {synapse-3.2.0 → synapse-3.3.0}/synapse/__init__.py +0 -0
  60. {synapse-3.2.0 → synapse-3.3.0}/synapse/assets/__init__.py +0 -0
  61. {synapse-3.2.0 → synapse-3.3.0}/synapse/axon.py +0 -0
  62. {synapse-3.2.0 → synapse-3.3.0}/synapse/cells.py +0 -0
  63. {synapse-3.2.0 → synapse-3.3.0}/synapse/common.py +0 -0
  64. {synapse-3.2.0 → synapse-3.3.0}/synapse/daemon.py +0 -0
  65. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/__init__.py +0 -0
  66. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  67. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/attack-flow/README.md +0 -0
  68. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  69. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA (2026).crt +0 -0
  70. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/cas/The Vertex Project ROOT CA (2026).crt +0 -0
  71. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA (2026).crl +0 -0
  72. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/crls/The Vertex Project ROOT CA (2026).crl +0 -0
  73. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/iana.tlds.mpk +0 -0
  74. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/iana.uris.mpk +0 -0
  75. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/README.md +0 -0
  76. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
  77. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  78. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  79. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  80. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  81. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  82. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  83. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  84. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  85. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  86. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  87. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  88. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  89. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  90. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  91. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  92. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  93. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  94. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  95. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  96. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  97. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  98. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  99. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  100. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  101. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  102. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  103. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  104. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  105. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  106. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  107. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  108. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  109. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  110. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  111. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  112. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  113. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  114. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  115. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  116. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  117. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  118. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  119. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  120. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  121. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  122. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  123. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  124. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  125. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  126. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  127. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  128. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  129. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  130. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  131. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  132. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  133. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  134. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  135. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/lark/__init__.py +0 -0
  136. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/lark/imap.lark +0 -0
  137. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/lark/storm.lark +0 -0
  138. {synapse-3.2.0 → synapse-3.3.0}/synapse/data/v2modelmap.yaml +0 -0
  139. {synapse-3.2.0 → synapse-3.3.0}/synapse/exc.py +0 -0
  140. {synapse-3.2.0 → synapse-3.3.0}/synapse/glob.py +0 -0
  141. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/__init__.py +0 -0
  142. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/agenda.py +0 -0
  143. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/aha.py +0 -0
  144. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/autodoc.py +0 -0
  145. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/base.py +0 -0
  146. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/boss.py +0 -0
  147. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cache.py +0 -0
  148. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cell.py +0 -0
  149. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/certdir.py +0 -0
  150. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/chop.py +0 -0
  151. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cli.py +0 -0
  152. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cluster.py +0 -0
  153. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cmd.py +0 -0
  154. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/config.py +0 -0
  155. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/const.py +0 -0
  156. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/coro.py +0 -0
  157. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/__init__.py +0 -0
  158. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/coin.py +0 -0
  159. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/ecc.py +0 -0
  160. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/jwk.py +0 -0
  161. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/rsa.py +0 -0
  162. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/tinfoil.py +0 -0
  163. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/utils.py +0 -0
  164. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/datfile.py +0 -0
  165. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/drive.py +0 -0
  166. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/dyndeps.py +0 -0
  167. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/editor.py +0 -0
  168. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/gis.py +0 -0
  169. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/grammar.py +0 -0
  170. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/hashitem.py +0 -0
  171. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/hashset.py +0 -0
  172. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/health.py +0 -0
  173. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/httpapi.py +0 -0
  174. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/httpclient.py +0 -0
  175. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/json.py +0 -0
  176. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/jsonstor.py +0 -0
  177. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/jsrpc.py +0 -0
  178. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/layer.py +0 -0
  179. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/link.py +0 -0
  180. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/lmdbslab.py +0 -0
  181. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/logging.py +0 -0
  182. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/mcp.py +0 -0
  183. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/mdstorm.py +0 -0
  184. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/modelrev.py +0 -0
  185. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/msgpack.py +0 -0
  186. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/multislabseqn.py +0 -0
  187. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/nexus.py +0 -0
  188. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/nodefuse.py +0 -0
  189. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/oauth.py +0 -0
  190. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/output.py +0 -0
  191. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/parser.py +0 -0
  192. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/__init__.py +0 -0
  193. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/common.py +0 -0
  194. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/darwin.py +0 -0
  195. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/freebsd.py +0 -0
  196. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/linux.py +0 -0
  197. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/windows.py +0 -0
  198. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/processpool.py +0 -0
  199. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/provision.py +0 -0
  200. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/queue.py +0 -0
  201. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/reflect.py +0 -0
  202. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/schemas.py +0 -0
  203. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/scope.py +0 -0
  204. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/scrape.py +0 -0
  205. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/share.py +0 -0
  206. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/slabseqn.py +0 -0
  207. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/spawner.py +0 -0
  208. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/spooled.py +0 -0
  209. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/storm.py +0 -0
  210. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/storm_format.py +0 -0
  211. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormctrl.py +0 -0
  212. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormhttp.py +0 -0
  213. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/__init__.py +0 -0
  214. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/auth.py +0 -0
  215. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/basex.py +0 -0
  216. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/bytes.py +0 -0
  217. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cache.py +0 -0
  218. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cell.py +0 -0
  219. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/compression.py +0 -0
  220. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cortex.py +0 -0
  221. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cryptoutils.py +0 -0
  222. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/easyperm.py +0 -0
  223. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/ecc.py +0 -0
  224. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/ethereum.py +0 -0
  225. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/file.py +0 -0
  226. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/gen.py +0 -0
  227. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/gis.py +0 -0
  228. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/graph.py +0 -0
  229. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/hashes.py +0 -0
  230. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/hex.py +0 -0
  231. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/imap.py +0 -0
  232. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/index.py +0 -0
  233. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/infosec.py +0 -0
  234. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/ipv6.py +0 -0
  235. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/iters.py +0 -0
  236. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/json.py +0 -0
  237. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/jwt.py +0 -0
  238. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/log.py +0 -0
  239. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/macro.py +0 -0
  240. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/math.py +0 -0
  241. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/mime.py +0 -0
  242. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/model.py +0 -0
  243. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/modelext.py +0 -0
  244. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/pack.py +0 -0
  245. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/pkg.py +0 -0
  246. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/quorum.py +0 -0
  247. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/random.py +0 -0
  248. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/rsa.py +0 -0
  249. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/scrape.py +0 -0
  250. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/smtp.py +0 -0
  251. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/spooled.py +0 -0
  252. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/stix.py +0 -0
  253. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/tabular.py +0 -0
  254. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/task.py +0 -0
  255. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/utils.py +0 -0
  256. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/vault.py +0 -0
  257. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/version.py +0 -0
  258. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/vertex.py +0 -0
  259. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/xml.py +0 -0
  260. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/yaml.py +0 -0
  261. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormsvc.py +0 -0
  262. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/task.py +0 -0
  263. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/thishost.py +0 -0
  264. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/thisplat.py +0 -0
  265. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/threads.py +0 -0
  266. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/time.py +0 -0
  267. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/trigger.py +0 -0
  268. {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/urlhelp.py +0 -0
  269. {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/__init__.py +0 -0
  270. {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/cvss.py +0 -0
  271. {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/iana.py +0 -0
  272. {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/macho.py +0 -0
  273. {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/pe.py +0 -0
  274. {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/phonenum.py +0 -0
  275. {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/timezones.py +0 -0
  276. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/__init__.py +0 -0
  277. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/auth.py +0 -0
  278. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/base.py +0 -0
  279. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/belief.py +0 -0
  280. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/biz.py +0 -0
  281. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/crypto.py +0 -0
  282. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/dns.py +0 -0
  283. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/doc.py +0 -0
  284. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/economic.py +0 -0
  285. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/files.py +0 -0
  286. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/geopol.py +0 -0
  287. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/gov.py +0 -0
  288. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/ind.py +0 -0
  289. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/inet.py +0 -0
  290. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/language.py +0 -0
  291. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/material.py +0 -0
  292. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/orgs.py +0 -0
  293. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/person.py +0 -0
  294. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/planning.py +0 -0
  295. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/risk.py +0 -0
  296. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/science.py +0 -0
  297. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/syn.py +0 -0
  298. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/telco.py +0 -0
  299. {synapse-3.2.0 → synapse-3.3.0}/synapse/models/transport.py +0 -0
  300. {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/__init__.py +0 -0
  301. {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/aha.py +0 -0
  302. {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/axon.py +0 -0
  303. {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/cell.py +0 -0
  304. {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/cortex.py +0 -0
  305. {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/jsonstor.py +0 -0
  306. {synapse-3.2.0 → synapse-3.3.0}/synapse/telepath.py +0 -0
  307. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/__init__.py +0 -0
  308. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  309. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/__init__.py +0 -0
  310. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/cas/synapse.crt.tinfoil +0 -0
  311. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/cas/synapse.key.tinfoil +0 -0
  312. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt.tinfoil +0 -0
  313. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key.tinfoil +0 -0
  314. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/users/root@synapse.crt.tinfoil +0 -0
  315. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/users/root@synapse.key.tinfoil +0 -0
  316. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  317. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  318. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/cas/ca.crt.tinfoil +0 -0
  319. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/cas/ca.key.tinfoil +0 -0
  320. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/hosts/localhost.crt.tinfoil +0 -0
  321. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/hosts/localhost.key.tinfoil +0 -0
  322. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/root.crt.tinfoil +0 -0
  323. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/root.key.tinfoil +0 -0
  324. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/user.crt.tinfoil +0 -0
  325. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/user.key.tinfoil +0 -0
  326. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/cpedata.json +0 -0
  327. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/mdstorm/httprespmulti.yaml +0 -0
  328. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/mdstorm/testsvc.py +0 -0
  329. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_export/basic.json +0 -0
  330. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  331. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  332. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  333. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  334. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_import/scos.json +0 -0
  335. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  336. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery2.storm +0 -0
  337. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery3.storm +0 -0
  338. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery4.storm +0 -0
  339. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery5.storm +0 -0
  340. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/badstorm.storm +0 -0
  341. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/continueloop.storm +0 -0
  342. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  343. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/dupewarn.storm +0 -0
  344. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/dupfunc.storm +0 -0
  345. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery.storm +0 -0
  346. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery2.storm +0 -0
  347. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery3.storm +0 -0
  348. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery4.storm +0 -0
  349. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery5.storm +0 -0
  350. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/emptybody.storm +0 -0
  351. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/exprdict.storm +0 -0
  352. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/forloop.storm +0 -0
  353. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/ifelif.storm +0 -0
  354. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/ifelse.storm +0 -0
  355. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  356. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  357. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  358. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/runtsafety.storm +0 -0
  359. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  360. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/stopreturn.storm +0 -0
  361. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  362. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/switch.storm +0 -0
  363. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/switchnodefault.storm +0 -0
  364. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/trycatch.storm +0 -0
  365. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whilebackedge.storm +0 -0
  366. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whilecontinue.storm +0 -0
  367. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whileloop.storm +0 -0
  368. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whilewithnode.storm +0 -0
  369. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormmod/common +0 -0
  370. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  371. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  372. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
  373. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
  374. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  375. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
  376. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
  377. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/declaredfiles.yaml +0 -0
  378. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  379. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  380. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/docs/index.md +0 -0
  381. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  382. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
  383. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
  384. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
  385. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/files/data.dat +0 -0
  386. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/files/sub/nested.dat +0 -0
  387. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  388. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  389. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  390. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  391. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD.storm +0 -0
  392. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz.storm +0 -0
  393. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd.storm +0 -0
  394. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/modules/apimod.storm +0 -0
  395. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/modules/testmod.storm +0 -0
  396. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  397. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  398. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  399. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/test.dat +0 -0
  400. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/index.md +0 -0
  401. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/mocks/cassette.yaml +0 -0
  402. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/stormpackage.md +0 -0
  403. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/sub/image.svg +0 -0
  404. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/sub/nested.md +0 -0
  405. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/userguide.md +0 -0
  406. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
  407. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
  408. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
  409. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
  410. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
  411. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/index.md +0 -0
  412. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/noh1.md +0 -0
  413. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs_no_h1/testpkg.yaml +0 -0
  414. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/nopmod.py +0 -0
  415. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_assets.py +0 -0
  416. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_axon.py +0 -0
  417. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_common.py +0 -0
  418. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_daemon.py +0 -0
  419. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_data.py +0 -0
  420. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_docs_stormref.py +0 -0
  421. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_exc.py +0 -0
  422. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_glob.py +0 -0
  423. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_agenda.py +0 -0
  424. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_aha.py +0 -0
  425. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_autodoc.py +0 -0
  426. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_base.py +0 -0
  427. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_boss.py +0 -0
  428. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cache.py +0 -0
  429. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cell.py +0 -0
  430. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_certdir.py +0 -0
  431. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_chop.py +0 -0
  432. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cli.py +0 -0
  433. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cluster.py +0 -0
  434. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_config.py +0 -0
  435. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_const.py +0 -0
  436. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_coro.py +0 -0
  437. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  438. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  439. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_jwk.py +0 -0
  440. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_rsa.py +0 -0
  441. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  442. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_datfile.py +0 -0
  443. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_drive.py +0 -0
  444. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  445. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_gis.py +0 -0
  446. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_grammar.py +0 -0
  447. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_hashitem.py +0 -0
  448. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_hashset.py +0 -0
  449. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_health.py +0 -0
  450. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_httpapi.py +0 -0
  451. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_httpclient.py +0 -0
  452. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_json.py +0 -0
  453. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  454. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_jsrpc.py +0 -0
  455. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_link.py +0 -0
  456. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  457. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_logging.py +0 -0
  458. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_mcp.py +0 -0
  459. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_mdstorm.py +0 -0
  460. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_modelrev.py +0 -0
  461. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_msgpack.py +0 -0
  462. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  463. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_nexus.py +0 -0
  464. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_node.py +0 -0
  465. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_output.py +0 -0
  466. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  467. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_processpool.py +0 -0
  468. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_provision.py +0 -0
  469. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_queue.py +0 -0
  470. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_reflect.py +0 -0
  471. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_scope.py +0 -0
  472. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_scrape.py +0 -0
  473. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  474. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_spawner.py +0 -0
  475. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_spooled.py +0 -0
  476. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_storm.py +0 -0
  477. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_storm_format.py +0 -0
  478. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormctrl.py +0 -0
  479. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  480. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  481. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  482. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  483. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  484. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  485. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  486. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  487. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_ecc.py +0 -0
  488. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  489. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  490. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_file.py +0 -0
  491. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  492. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  493. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  494. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  495. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  496. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
  497. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  498. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  499. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  500. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  501. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_jwt.py +0 -0
  502. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  503. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  504. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  505. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  506. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  507. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  508. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  509. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_pkg.py +0 -0
  510. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
  511. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  512. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_rsa.py +0 -0
  513. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  514. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  515. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  516. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  517. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  518. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
  519. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
  520. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  521. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_vertex.py +0 -0
  522. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  523. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  524. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  525. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormtypes.py +0 -0
  526. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_task.py +0 -0
  527. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_thishost.py +0 -0
  528. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_time.py +0 -0
  529. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_trigger.py +0 -0
  530. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_types.py +0 -0
  531. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  532. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_version.py +0 -0
  533. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_view.py +0 -0
  534. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  535. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_auth.py +0 -0
  536. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_base.py +0 -0
  537. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_belief.py +0 -0
  538. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_biz.py +0 -0
  539. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_crypto.py +0 -0
  540. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_dns.py +0 -0
  541. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_doc.py +0 -0
  542. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_economic.py +0 -0
  543. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_files.py +0 -0
  544. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_geopol.py +0 -0
  545. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov.py +0 -0
  546. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov_cn.py +0 -0
  547. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov_intl.py +0 -0
  548. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov_us.py +0 -0
  549. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_inet.py +0 -0
  550. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_language.py +0 -0
  551. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_material.py +0 -0
  552. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_orgs.py +0 -0
  553. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_person.py +0 -0
  554. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_planning.py +0 -0
  555. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_risk.py +0 -0
  556. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_science.py +0 -0
  557. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_syn.py +0 -0
  558. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_telco.py +0 -0
  559. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_transport.py +0 -0
  560. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_servers_axon.py +0 -0
  561. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_servers_cortex.py +0 -0
  562. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_servers_univ.py +0 -0
  563. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_telepath.py +0 -0
  564. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_copy.py +0 -0
  565. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
  566. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_get.py +0 -0
  567. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_put.py +0 -0
  568. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_csv.py +0 -0
  569. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_docmodel.py +0 -0
  570. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
  571. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
  572. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  573. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_apikey.py +0 -0
  574. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_backup.py +0 -0
  575. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_demote.py +0 -0
  576. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_healthcheck.py +0 -0
  577. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_modrole.py +0 -0
  578. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_moduser.py +0 -0
  579. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_promote.py +0 -0
  580. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_reload.py +0 -0
  581. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_shutdown.py +0 -0
  582. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
  583. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
  584. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_pkg_publish.py +0 -0
  585. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_printer.py +0 -0
  586. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_tester.py +0 -0
  587. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_validate.py +0 -0
  588. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_doc.py +0 -0
  589. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
  590. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_guid.py +0 -0
  591. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
  592. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_mdstorm.py +0 -0
  593. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_utils.py +0 -0
  594. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_utils_getrefs.py +0 -0
  595. {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_utils_stormcov.py +0 -0
  596. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/__init__.py +0 -0
  597. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/__init__.py +0 -0
  598. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/clone.py +0 -0
  599. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/del.py +0 -0
  600. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/easycert.py +0 -0
  601. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/enroll.py +0 -0
  602. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/list.py +0 -0
  603. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/provision/__init__.py +0 -0
  604. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/provision/service.py +0 -0
  605. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/provision/user.py +0 -0
  606. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/__init__.py +0 -0
  607. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/copy.py +0 -0
  608. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/dump.py +0 -0
  609. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/get.py +0 -0
  610. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/load.py +0 -0
  611. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/put.py +0 -0
  612. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/__init__.py +0 -0
  613. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/csv.py +0 -0
  614. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/docmodel.py +0 -0
  615. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/feed.py +0 -0
  616. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/layer/__init__.py +0 -0
  617. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/layer/dump.py +0 -0
  618. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/layer/load.py +0 -0
  619. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/docker/__init__.py +0 -0
  620. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/docker/validate.py +0 -0
  621. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/__init__.py +0 -0
  622. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/apikey.py +0 -0
  623. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/backup.py +0 -0
  624. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/demote.py +0 -0
  625. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/healthcheck.py +0 -0
  626. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/modrole.py +0 -0
  627. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/moduser.py +0 -0
  628. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/promote.py +0 -0
  629. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/reload.py +0 -0
  630. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/shutdown.py +0 -0
  631. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/snapshot.py +0 -0
  632. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/__init__.py +0 -0
  633. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/__main__.py +0 -0
  634. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/_printer.py +0 -0
  635. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/__init__.py +0 -0
  636. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/doc.py +0 -0
  637. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/tester.py +0 -0
  638. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/validate.py +0 -0
  639. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/__init__.py +0 -0
  640. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/doc.py +0 -0
  641. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/easycert.py +0 -0
  642. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/guid.py +0 -0
  643. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/json2mpk.py +0 -0
  644. {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/mdstorm.py +0 -0
  645. {synapse-3.2.0 → synapse-3.3.0}/synapse/utils/__init__.py +0 -0
  646. {synapse-3.2.0 → synapse-3.3.0}/synapse/utils/getrefs.py +0 -0
  647. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/__init__.py +0 -0
  648. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  649. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  650. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/base58.py +0 -0
  651. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/convert.py +0 -0
  652. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  653. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  654. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  655. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/LICENSE +0 -0
  656. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/__init__.py +0 -0
  657. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  658. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  659. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  660. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  661. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  662. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/json.py +0 -0
  663. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  664. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  665. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  666. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  667. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/test_parseaddr.py +0 -0
  668. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  669. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  670. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
  671. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  672. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  673. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  674. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  675. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  676. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  677. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/utils.py +0 -0
  678. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/LICENSE +0 -0
  679. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/__init__.py +0 -0
  680. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/constants.py +0 -0
  681. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  682. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  683. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  684. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  685. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  686. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  687. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  688. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  689. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  690. {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  691. {synapse-3.2.0 → synapse-3.3.0}/synapse.egg-info/dependency_links.txt +0 -0
  692. {synapse-3.2.0 → synapse-3.3.0}/synapse.egg-info/requires.txt +0 -0
  693. {synapse-3.2.0 → synapse-3.3.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: 3.2.0
3
+ Version: 3.3.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 = '3.2.0'
7
+ version = '3.3.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -6075,7 +6075,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
6075
6075
  except Exception as e:
6076
6076
  return s_common.retnexc(e)
6077
6077
 
6078
- def _logStormQuery(self, text, user, info=None, meta=None):
6078
+ def _logStormQuery(self, text, user, info=None, meta=None, via=None):
6079
6079
  '''
6080
6080
  Log a storm query.
6081
6081
 
@@ -6084,6 +6084,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
6084
6084
  user: The User who ran the query.
6085
6085
  info (dict): Fields to record alongside the query.
6086
6086
  meta (dict): The caller supplied meta opt, if any.
6087
+ via (str): The name of the Storm command or library which dispatched the query.
6087
6088
  '''
6088
6089
  if self.stormlog:
6089
6090
  if info is None:
@@ -6097,8 +6098,12 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
6097
6098
  if meta is not None:
6098
6099
  info['meta'] = meta
6099
6100
 
6100
- stormlogger.log(self.stormloglvl, 'Executing storm query {%s} as [%s]', text, user.name,
6101
- extra=self.getLogExtra(**info))
6101
+ if via is None:
6102
+ stormlogger.log(self.stormloglvl, 'Executing storm query {%s} as [%s]', text, user.name,
6103
+ extra=self.getLogExtra(**info))
6104
+ else:
6105
+ stormlogger.log(self.stormloglvl, 'Executing storm query via %s {%s} as [%s]', via, text, user.name,
6106
+ extra=self.getLogExtra(**info))
6102
6107
 
6103
6108
  async def getCoreInfoV2(self):
6104
6109
  return {
@@ -754,6 +754,12 @@ $x = (true)
754
754
  $y = (999)
755
755
  $dict = ({})
756
756
  $list = ([])
757
+
758
+ // WRONG - redundant parens inside a JSON expression
759
+ $props = ({"ids": ([$iden]), "opts": ({"asof": $asof})})
760
+
761
+ // CORRECT
762
+ $props = ({"ids": [$iden], "opts": {"asof": $asof}})
757
763
  ```
758
764
 
759
765
  ### 3. Forgetting `|` After Inline Commands
@@ -677,6 +677,7 @@ class Model:
677
677
  self.formprefixcache = s_cache.LruDict(PREFIX_CACHE_SIZE)
678
678
 
679
679
  self._lookup_hints = None
680
+ self._virts_by_type = None
680
681
 
681
682
  self._type_pends = collections.defaultdict(list)
682
683
  self._modeldef = {
@@ -748,6 +749,33 @@ class Model:
748
749
  return ()
749
750
  return list(props.values())
750
751
 
752
+ def getVirtsByType(self, name):
753
+ '''
754
+ Return the (formname, virtname) tuples for the indexed virtual properties
755
+ of a form primary property which reference the given form name. A virt on
756
+ a secondary property is not a ref because the node for the property value
757
+ carries the ref, the same as Form.getRefsOut().
758
+ '''
759
+ if self._virts_by_type is None:
760
+
761
+ virtsbytype = collections.defaultdict(list)
762
+
763
+ for formname, form in self.forms.items():
764
+ for virtname, virtinfo in form.type.virts.items():
765
+
766
+ typename = virtinfo[0].name
767
+ if self.forms.get(typename) is None:
768
+ continue
769
+
770
+ if form.type.virtindx.get(virtname) is None:
771
+ continue
772
+
773
+ virtsbytype[typename].append((formname, virtname))
774
+
775
+ self._virts_by_type = virtsbytype
776
+
777
+ return self._virts_by_type.get(name, ())
778
+
751
779
  def getProps(self):
752
780
  return [pobj for pname, pobj in self.props.items()
753
781
  if not (isinstance(pname, tuple))]
@@ -1790,6 +1818,7 @@ class Model:
1790
1818
  self.formprefixcache.clear()
1791
1819
  self.pivchaincache.clear()
1792
1820
  self._lookup_hints = None
1821
+ self._virts_by_type = None
1793
1822
 
1794
1823
  return form
1795
1824
 
@@ -1904,6 +1933,7 @@ class Model:
1904
1933
  self.formprefixcache.clear()
1905
1934
  self.pivchaincache.clear()
1906
1935
  self._lookup_hints = None
1936
+ self._virts_by_type = None
1907
1937
 
1908
1938
  if parentform:
1909
1939
  self.childforms[parentform.name].remove(formname)
@@ -15,6 +15,8 @@ import synapse.lib.const as s_const
15
15
  import synapse.lib.httpapi as s_httpapi
16
16
  import synapse.lib.msgpack as s_msgpack
17
17
  import synapse.lib.urlhelp as s_urlhelp
18
+ import synapse.lib.version as s_version
19
+ import synapse.lib.httpclient as s_httpclient
18
20
  import synapse.lib.crypto.passwd as s_passwd
19
21
 
20
22
  logger = logging.getLogger(__name__)
@@ -34,6 +36,11 @@ EXPORT_TIMEOUT = 3600
34
36
  # The number of chunks buffered while streaming bytes into an Axon HTTP upload.
35
37
  UPLOAD_QSIZE = 4
36
38
 
39
+ # The product token in the default outbound User-Agent. A Cell derives its own token
40
+ # from its cell type ( see Cell._getUserAgentProd ); this client is not a Cell, and it
41
+ # ships with Synapse, so its version is the Synapse version.
42
+ USER_AGENT_PROD = 'Synapse-Client'
43
+
37
44
  apikeymesg = 'A user API key is required to connect to a Cortex over HTTP. ' \
38
45
  'Provide it in the URL as https://<apikey>@host:port/.'
39
46
 
@@ -49,6 +56,43 @@ def isHttpsUrl(url):
49
56
  '''
50
57
  return url.lower().startswith('https://')
51
58
 
59
+ def addHttpsArgs(pars):
60
+ '''
61
+ Add the options which configure the Cortex HTTP API client to an argument parser.
62
+
63
+ Note:
64
+ Shared by every CLI tool which accepts an https:// Cortex URL, so the options
65
+ and their help text cannot drift apart between them.
66
+
67
+ Args:
68
+ pars (s_cmd.Parser): The argument parser.
69
+ '''
70
+ pars.add_argument('--https-proxy', default=None,
71
+ help='An aiohttp-socks compatible proxy URL to use for https:// URLs.')
72
+ pars.add_argument('--https-ca-dir', default=None,
73
+ help='A directory of CAs which are added to the TLS CA chain for https:// URLs.')
74
+ pars.add_argument('--https-noverify', default=False, action='store_true',
75
+ help='Ignore SSL certificate validation errors for https:// URLs.')
76
+
77
+ def reqTeleOpts(opts):
78
+ '''
79
+ Require that the https only options are not used with a telepath URL.
80
+
81
+ Args:
82
+ opts (argparse.Namespace): The parsed arguments.
83
+ '''
84
+ httponly = (
85
+ ('--https-proxy', opts.https_proxy),
86
+ ('--https-ca-dir', opts.https_ca_dir),
87
+ ('--https-noverify', opts.https_noverify or None),
88
+ )
89
+
90
+ for name, valu in httponly:
91
+
92
+ if valu is not None:
93
+ mesg = f'The {name} option may only be used with an https:// Cortex URL.'
94
+ raise s_exc.BadArg(mesg=mesg, arg=name)
95
+
52
96
  async def openurl(url, cadir=None, proxy=None, verify=True):
53
97
  '''
54
98
  Open a Cortex HTTP API client which duck types the Telepath CoreApi.
@@ -190,7 +234,8 @@ class HttpCortex(s_base.Base):
190
234
  '''
191
235
  A Cortex client which uses the HTTP API rather than Telepath.
192
236
 
193
- This implements the subset of the Telepath CoreApi which is used by the Storm CLI.
237
+ This implements the subset of the Telepath CoreApi used by the CLI tools which
238
+ accept an https:// Cortex URL.
194
239
 
195
240
  Note:
196
241
  Messages are deserialized from JSON, so nested sequences are lists where the
@@ -237,9 +282,14 @@ class HttpCortex(s_base.Base):
237
282
  # running Storm queries.
238
283
  timeout = aiohttp.ClientTimeout(total=None)
239
284
 
285
+ headers = {
286
+ 'X-API-KEY': apikey,
287
+ 'User-Agent': s_httpclient.getUserAgent(USER_AGENT_PROD, s_version.version),
288
+ }
289
+
240
290
  sess = aiohttp.ClientSession(connector=connector,
241
291
  timeout=timeout,
242
- headers={'X-API-KEY': apikey},
292
+ headers=headers,
243
293
  max_line_size=s_const.MAX_LINE_SIZE,
244
294
  max_field_size=s_const.MAX_FIELD_SIZE)
245
295
 
@@ -378,6 +428,18 @@ class HttpCortex(s_base.Base):
378
428
  mesg = 'The Cortex HTTP API export stream ended with a partial node.'
379
429
  raise s_exc.BadDataValu(mesg=mesg)
380
430
 
431
+ async def addStormPkg(self, pkgdef, *, verify=False):
432
+ '''
433
+ Add a Storm package to the Cortex.
434
+
435
+ Note:
436
+ The HTTP API has no package endpoint, so this runs $lib.pkg.add() which
437
+ confirms the same pkg.add permission and calls the same Cortex API the
438
+ Telepath CoreApi method does.
439
+ '''
440
+ opts = {'vars': {'pkgdef': pkgdef, 'verify': verify}}
441
+ return await self.callStorm('return($lib.pkg.add($pkgdef, verify=$verify))', opts=opts)
442
+
381
443
  async def getCoreInfoV2(self):
382
444
 
383
445
  async with self.sess.get(self._getUrl('/api/v3/core/info'), **self.reqinfo) as resp:
@@ -312,9 +312,10 @@ class Lookup(Query):
312
312
  return
313
313
 
314
314
  hints = runt.model.getLookupHints()
315
- if not hints:
316
- return
317
315
 
316
+ # the remainder tokens are resolved by the data model lookup hints and
317
+ # then by the search interface. Nodes from those two steps are
318
+ # deduplicated against each other.
318
319
  async with await s_spooled.Set.anit(dirn=view.core.dirn, cell=view.core) as nidset:
319
320
 
320
321
  for tokn in remtokns:
@@ -331,6 +332,22 @@ class Lookup(Query):
331
332
  except (s_exc.BadTypeValu, s_exc.BadCmprValu, s_exc.NoSuchCmpr):
332
333
  continue
333
334
 
335
+ todo = s_common.todo('search', remtokns)
336
+ async for _, nid in view.mergeStormIface('search', todo):
337
+
338
+ nid = s_common.int64en(nid)
339
+ if nid in nidset:
340
+ await asyncio.sleep(0)
341
+ continue
342
+
343
+ await nidset.add(nid)
344
+
345
+ node = await view.getNodeByNid(nid)
346
+ if node is None:
347
+ continue
348
+
349
+ yield node, runt.initPath(node)
350
+
334
351
  realgenr = lookgenr()
335
352
  if len(self.kids) > 1:
336
353
  realgenr = self.kids[1].run(runt, realgenr)
@@ -2714,6 +2731,13 @@ class PivotIn(PivotOper):
2714
2731
 
2715
2732
  name, valu = node.ndef
2716
2733
 
2734
+ for formtype in node.form.formtypes:
2735
+ for formname, virtname in runt.model.getVirtsByType(formtype):
2736
+ link = {'type': 'prop', 'prop': f'.{virtname}', 'reverse': True}
2737
+
2738
+ async for pivo in runt.view.nodesByPropValu(formname, '=', valu, norm=False, virt=virtname):
2739
+ yield pivo, path.fork(pivo, link)
2740
+
2717
2741
  for formtype in node.form.formtypes:
2718
2742
  for prop in runt.model.getPropsByType(formtype):
2719
2743
  link = {'type': 'prop', 'prop': prop.name, 'reverse': True}
@@ -4044,12 +4068,13 @@ class TagVirtCond(Cond):
4044
4068
  valu = await rval.compute(runt, path)
4045
4069
  virt = await vkid.compute(runt, path)
4046
4070
 
4047
- (ptyp, getr) = ival.getVirtInfo(virt)
4071
+ (ptyp, getr) = ival.getTagVirtInfo(virt)
4048
4072
 
4049
4073
  if (cmprctor := ptyp.getCmprCtor(cmpr)) is None:
4050
4074
  raise self.kids[2].addExcInfo(s_exc.NoSuchCmpr(cmpr=cmpr, name=ptyp.name))
4051
4075
 
4052
- tval = getr(node.getTag(name))
4076
+ if (tval := node.getTag(name, getr=getr)) is None:
4077
+ return False
4053
4078
 
4054
4079
  return await (await cmprctor(valu))(tval)
4055
4080
 
@@ -4061,7 +4086,7 @@ class TagVirtCond(Cond):
4061
4086
  valu = await rval.compute(runt, None)
4062
4087
  virt = await vkid.compute(runt, None)
4063
4088
 
4064
- (ptyp, getr) = ival.getVirtInfo(virt)
4089
+ (ptyp, getr) = ival.getTagVirtInfo(virt)
4065
4090
 
4066
4091
  if (cmprctor := ptyp.getCmprCtor(cmpr)) is None:
4067
4092
  raise self.kids[2].addExcInfo(s_exc.NoSuchCmpr(cmpr=cmpr, name=ptyp.name))
@@ -4069,7 +4094,9 @@ class TagVirtCond(Cond):
4069
4094
  cmpr = await cmprctor(valu)
4070
4095
 
4071
4096
  async def cond(node, path):
4072
- tval = getr(node.getTag(name))
4097
+ if (tval := node.getTag(name, getr=getr)) is None:
4098
+ return False
4099
+
4073
4100
  return await cmpr(tval)
4074
4101
 
4075
4102
  return cond
@@ -4079,12 +4106,13 @@ class TagVirtCond(Cond):
4079
4106
  valu = await rval.compute(runt, path)
4080
4107
  virt = await vkid.compute(runt, path)
4081
4108
 
4082
- (ptyp, getr) = ival.getVirtInfo(virt)
4109
+ (ptyp, getr) = ival.getTagVirtInfo(virt)
4083
4110
 
4084
4111
  if (cmprctor := ptyp.getCmprCtor(cmpr)) is None:
4085
4112
  raise self.kids[2].addExcInfo(s_exc.NoSuchCmpr(cmpr=cmpr, name=ptyp.name))
4086
4113
 
4087
- tval = getr(node.getTag(name))
4114
+ if (tval := node.getTag(name, getr=getr)) is None:
4115
+ return False
4088
4116
 
4089
4117
  return await (await cmprctor(valu))(tval)
4090
4118
 
@@ -4433,8 +4461,8 @@ class TagVirtValue(Value):
4433
4461
  name = await self.kids[0].compute(runt, path)
4434
4462
  virt = await self.kids[1].compute(runt, path)
4435
4463
 
4436
- getr = runt.model.type('ival').getVirtGetr(virt)
4437
- return getr(path.node.getTag(name))
4464
+ (_, getr) = runt.model.type('ival').getTagVirtInfo(virt)
4465
+ return path.node.getTag(name, getr=getr)
4438
4466
 
4439
4467
  class TagProp(Value):
4440
4468
 
@@ -5862,10 +5890,12 @@ class N1Walk(Oper):
5862
5890
  for destform in destforms:
5863
5891
  prop = runt.model.prop(destform)
5864
5892
  if prop is not None:
5893
+ # a form or prop name also matches the forms which inherit from it
5865
5894
  if prop.isform:
5866
- forms.add(destform)
5895
+ forms.update(runt.model.getChildForms(destform))
5867
5896
  else:
5868
- formprops[prop.form.name][prop.name] = prop
5897
+ for cprop in runt.model.getChildProps(prop):
5898
+ formprops[cprop.form.name][cprop.name] = cprop
5869
5899
  continue
5870
5900
 
5871
5901
  formlist = runt.model.reqFormsByLook(destform, extra=self.kids[0].addExcInfo)
@@ -44,14 +44,7 @@ async def _getEmailType():
44
44
 
45
45
  return _emailtype
46
46
 
47
- async def normEmail(email):
48
- '''
49
- Normalize an email address for use as a unique key via the inet:email type.
50
-
51
- Returns the normalized form or None if the input is None or normalizes
52
- to an empty string. Raises BadArg if the value is not a string or does
53
- not parse as an email address.
54
- '''
47
+ async def _normEmail(email):
55
48
  if email is None:
56
49
  return None
57
50
 
@@ -64,11 +57,37 @@ async def normEmail(email):
64
57
 
65
58
  try:
66
59
  etype = await _getEmailType()
67
- norm, _info = await etype.norm(valu)
60
+ return await etype.norm(valu)
68
61
  except s_exc.BadTypeValu as e:
69
62
  raise s_exc.BadArg(mesg=e.get('mesg'), name='email') from None
70
63
 
71
- return norm
64
+ async def normEmail(email):
65
+ '''
66
+ Normalize an email address for use as a unique key via the inet:email type.
67
+
68
+ Returns the normalized form or None if the input is None or normalizes
69
+ to an empty string. Raises BadArg if the value is not a string or does
70
+ not parse as an email address.
71
+ '''
72
+ retn = await _normEmail(email)
73
+ if retn is None:
74
+ return None
75
+
76
+ return retn[0]
77
+
78
+ async def normEmailFqdn(email):
79
+ '''
80
+ Extract the normalized FQDN from an email address via the inet:email type.
81
+
82
+ Returns the normalized FQDN or None if the input is None or normalizes
83
+ to an empty string. Raises BadArg if the value is not a string or does
84
+ not parse as an email address.
85
+ '''
86
+ retn = await _normEmail(email)
87
+ if retn is None:
88
+ return None
89
+
90
+ return retn[1]['subs']['fqdn'][1]
72
91
 
73
92
  @dataclasses.dataclass(slots=True)
74
93
  class _allowedReason:
@@ -21,6 +21,9 @@ PBKDF2_ITERATIONS = 310_000 # OWASP recommended value 20221004
21
21
 
22
22
  DEFAULT_PTYP = PBKDF2
23
23
 
24
+ APIKEY_PREFIX = 'syn-'
25
+ APIKEY_PREFIX_SIZE = len(APIKEY_PREFIX)
26
+
24
27
  def _getPbkdf2(passwd):
25
28
  salt = os.urandom(32)
26
29
  func_params = {'salt': salt,
@@ -130,11 +133,11 @@ async def generateApiKey(iden=None):
130
133
  if not s_common.isguid(iden):
131
134
  raise s_exc.CryptoErr(mesg=f'Invalid iden provided: {iden}, must be a guid.')
132
135
  secv = s_common.guid()
133
- key = base64.b64encode(s_common.uhex(iden) + s_common.uhex(secv), altchars=b'-_').decode('utf-8')
136
+ key = APIKEY_PREFIX + base64.b64encode(s_common.uhex(iden) + s_common.uhex(secv), altchars=b'-_').decode('utf-8')
134
137
  shadow = await getShadowV2(secv)
135
138
  return iden, key, shadow
136
139
 
137
- def parseApiKey(valu):
140
+ def _parseApiKey(valu):
138
141
  if '+' in valu or '/' in valu:
139
142
  return False, 'Invalid character in API key.'
140
143
  try:
@@ -144,3 +147,15 @@ def parseApiKey(valu):
144
147
  if len(buf) != 32:
145
148
  return False, f'Incorrect length, got {len(valu)}'
146
149
  return True, (s_common.ehex(buf[:16]), s_common.ehex(buf[16:]))
150
+
151
+ def parseApiKey(valu):
152
+ # keys issued before APIKEY_PREFIX was added carry no prefix and must still parse.
153
+ # '-_' is the altchars alphabet, so a legacy key can itself begin with the prefix
154
+ # ('s', 'y', 'n', '-' are all valid altchars); fall back to the unprefixed parse
155
+ # rather than stripping unconditionally.
156
+ if valu.startswith(APIKEY_PREFIX):
157
+ isok, retn = _parseApiKey(valu[APIKEY_PREFIX_SIZE:])
158
+ if isok:
159
+ return True, retn
160
+
161
+ return _parseApiKey(valu)