synapse 2.167.0__tar.gz → 2.168.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 (576) hide show
  1. {synapse-2.167.0/synapse.egg-info → synapse-2.168.0}/PKG-INFO +1 -1
  2. {synapse-2.167.0 → synapse-2.168.0}/pyproject.toml +1 -1
  3. {synapse-2.167.0 → synapse-2.168.0}/synapse/cortex.py +24 -11
  4. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/aha.py +2 -1
  5. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/layer.py +2 -0
  6. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/modelrev.py +6 -0
  7. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/modules.py +1 -0
  8. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/aha.py +21 -6
  9. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/easyperm.py +8 -0
  10. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormtypes.py +7 -0
  11. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/version.py +2 -2
  12. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/view.py +1 -0
  13. synapse-2.168.0/synapse/models/planning.py +161 -0
  14. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_cortex.py +1 -1
  15. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_aha.py +7 -2
  16. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_aha.py +1 -1
  17. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_trigger.py +3 -3
  18. synapse-2.168.0/synapse/tests/test_model_planning.py +126 -0
  19. {synapse-2.167.0 → synapse-2.168.0/synapse.egg-info}/PKG-INFO +1 -1
  20. {synapse-2.167.0 → synapse-2.168.0}/synapse.egg-info/SOURCES.txt +2 -0
  21. {synapse-2.167.0 → synapse-2.168.0}/LICENSE +0 -0
  22. {synapse-2.167.0 → synapse-2.168.0}/README.rst +0 -0
  23. {synapse-2.167.0 → synapse-2.168.0}/setup.cfg +0 -0
  24. {synapse-2.167.0 → synapse-2.168.0}/synapse/__init__.py +0 -0
  25. {synapse-2.167.0 → synapse-2.168.0}/synapse/axon.py +0 -0
  26. {synapse-2.167.0 → synapse-2.168.0}/synapse/cells.py +0 -0
  27. {synapse-2.167.0 → synapse-2.168.0}/synapse/cmds/__init__.py +0 -0
  28. {synapse-2.167.0 → synapse-2.168.0}/synapse/cmds/boss.py +0 -0
  29. {synapse-2.167.0 → synapse-2.168.0}/synapse/cmds/cortex.py +0 -0
  30. {synapse-2.167.0 → synapse-2.168.0}/synapse/cmds/hive.py +0 -0
  31. {synapse-2.167.0 → synapse-2.168.0}/synapse/common.py +0 -0
  32. {synapse-2.167.0 → synapse-2.168.0}/synapse/cryotank.py +0 -0
  33. {synapse-2.167.0 → synapse-2.168.0}/synapse/daemon.py +0 -0
  34. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/__init__.py +0 -0
  35. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  36. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/attack-flow/README.md +0 -0
  37. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  38. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  39. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  40. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  41. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  42. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/iana.tlds.mpk +0 -0
  43. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/README.md +0 -0
  44. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  45. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  46. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  47. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  48. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  49. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  50. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  51. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  52. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  53. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  54. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  55. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  56. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  57. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  58. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  59. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  60. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  61. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  62. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  63. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  64. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  65. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  66. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  67. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  68. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  69. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  70. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  71. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  72. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  73. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  74. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  75. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  76. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  77. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  78. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  79. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  80. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  81. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  82. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  83. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  84. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  85. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  86. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  87. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  88. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  89. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  90. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  91. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  92. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  93. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  94. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  95. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  96. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  97. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  98. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  99. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  100. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  101. {synapse-2.167.0 → synapse-2.168.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  102. {synapse-2.167.0 → synapse-2.168.0}/synapse/datamodel.py +0 -0
  103. {synapse-2.167.0 → synapse-2.168.0}/synapse/exc.py +0 -0
  104. {synapse-2.167.0 → synapse-2.168.0}/synapse/glob.py +0 -0
  105. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/__init__.py +0 -0
  106. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/agenda.py +0 -0
  107. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/ast.py +0 -0
  108. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/autodoc.py +0 -0
  109. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/base.py +0 -0
  110. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/boss.py +0 -0
  111. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/cache.py +0 -0
  112. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/cell.py +0 -0
  113. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/certdir.py +0 -0
  114. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/chop.py +0 -0
  115. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/cli.py +0 -0
  116. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/cmd.py +0 -0
  117. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/cmdr.py +0 -0
  118. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/config.py +0 -0
  119. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/const.py +0 -0
  120. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/coro.py +0 -0
  121. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/crypto/__init__.py +0 -0
  122. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/crypto/coin.py +0 -0
  123. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/crypto/ecc.py +0 -0
  124. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/crypto/passwd.py +0 -0
  125. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/crypto/rsa.py +0 -0
  126. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/crypto/tinfoil.py +0 -0
  127. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/datfile.py +0 -0
  128. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/dyndeps.py +0 -0
  129. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/encoding.py +0 -0
  130. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/gis.py +0 -0
  131. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/grammar.py +0 -0
  132. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/hashitem.py +0 -0
  133. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/hashset.py +0 -0
  134. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/health.py +0 -0
  135. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/hive.py +0 -0
  136. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/hiveauth.py +0 -0
  137. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/httpapi.py +0 -0
  138. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/ingest.py +0 -0
  139. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/interval.py +0 -0
  140. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/jsonstor.py +0 -0
  141. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/jupyter.py +0 -0
  142. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/link.py +0 -0
  143. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/lmdbslab.py +0 -0
  144. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/module.py +0 -0
  145. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/msgpack.py +0 -0
  146. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/multislabseqn.py +0 -0
  147. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/nexus.py +0 -0
  148. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/node.py +0 -0
  149. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/oauth.py +0 -0
  150. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/output.py +0 -0
  151. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/parser.py +0 -0
  152. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/platforms/__init__.py +0 -0
  153. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/platforms/common.py +0 -0
  154. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/platforms/darwin.py +0 -0
  155. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/platforms/freebsd.py +0 -0
  156. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/platforms/linux.py +0 -0
  157. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/platforms/windows.py +0 -0
  158. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/queue.py +0 -0
  159. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/ratelimit.py +0 -0
  160. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/reflect.py +0 -0
  161. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/rstorm.py +0 -0
  162. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/schemas.py +0 -0
  163. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/scope.py +0 -0
  164. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/scrape.py +0 -0
  165. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/share.py +0 -0
  166. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/slaboffs.py +0 -0
  167. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/slabseqn.py +0 -0
  168. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/snap.py +0 -0
  169. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/spooled.py +0 -0
  170. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/storm.lark +0 -0
  171. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/storm.py +0 -0
  172. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/storm_format.py +0 -0
  173. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormctrl.py +0 -0
  174. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormhttp.py +0 -0
  175. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/__init__.py +0 -0
  176. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/auth.py +0 -0
  177. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/backup.py +0 -0
  178. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/basex.py +0 -0
  179. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/cache.py +0 -0
  180. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/cell.py +0 -0
  181. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/compression.py +0 -0
  182. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/cortex.py +0 -0
  183. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/ethereum.py +0 -0
  184. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/gen.py +0 -0
  185. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/gis.py +0 -0
  186. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/graph.py +0 -0
  187. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/hashes.py +0 -0
  188. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/hex.py +0 -0
  189. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/imap.py +0 -0
  190. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/infosec.py +0 -0
  191. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/ipv6.py +0 -0
  192. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/iters.py +0 -0
  193. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/json.py +0 -0
  194. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/log.py +0 -0
  195. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/macro.py +0 -0
  196. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/math.py +0 -0
  197. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/mime.py +0 -0
  198. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/model.py +0 -0
  199. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/modelext.py +0 -0
  200. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/notifications.py +0 -0
  201. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/oauth.py +0 -0
  202. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/pack.py +0 -0
  203. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/project.py +0 -0
  204. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/random.py +0 -0
  205. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/scrape.py +0 -0
  206. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/smtp.py +0 -0
  207. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/spooled.py +0 -0
  208. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/stats.py +0 -0
  209. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/stix.py +0 -0
  210. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/storm.py +0 -0
  211. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/vault.py +0 -0
  212. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/version.py +0 -0
  213. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/xml.py +0 -0
  214. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormlib/yaml.py +0 -0
  215. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormsvc.py +0 -0
  216. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/stormwhois.py +0 -0
  217. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/structlog.py +0 -0
  218. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/task.py +0 -0
  219. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/thishost.py +0 -0
  220. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/thisplat.py +0 -0
  221. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/threads.py +0 -0
  222. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/time.py +0 -0
  223. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/trigger.py +0 -0
  224. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/types.py +0 -0
  225. {synapse-2.167.0 → synapse-2.168.0}/synapse/lib/urlhelp.py +0 -0
  226. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/__init__.py +0 -0
  227. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/cvss.py +0 -0
  228. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/iana.py +0 -0
  229. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/iso3166.py +0 -0
  230. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/macho.py +0 -0
  231. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/pe.py +0 -0
  232. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/phonenum.py +0 -0
  233. {synapse-2.167.0 → synapse-2.168.0}/synapse/lookup/timezones.py +0 -0
  234. {synapse-2.167.0 → synapse-2.168.0}/synapse/mindmeld.py +0 -0
  235. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/__init__.py +0 -0
  236. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/auth.py +0 -0
  237. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/base.py +0 -0
  238. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/belief.py +0 -0
  239. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/biz.py +0 -0
  240. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/crypto.py +0 -0
  241. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/dns.py +0 -0
  242. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/economic.py +0 -0
  243. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/files.py +0 -0
  244. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/geopol.py +0 -0
  245. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/geospace.py +0 -0
  246. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/gov/__init__.py +0 -0
  247. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/gov/cn.py +0 -0
  248. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/gov/intl.py +0 -0
  249. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/gov/us.py +0 -0
  250. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/inet.py +0 -0
  251. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/infotech.py +0 -0
  252. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/language.py +0 -0
  253. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/material.py +0 -0
  254. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/media.py +0 -0
  255. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/orgs.py +0 -0
  256. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/person.py +0 -0
  257. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/proj.py +0 -0
  258. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/risk.py +0 -0
  259. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/science.py +0 -0
  260. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/syn.py +0 -0
  261. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/telco.py +0 -0
  262. {synapse-2.167.0 → synapse-2.168.0}/synapse/models/transport.py +0 -0
  263. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/__init__.py +0 -0
  264. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/aha.py +0 -0
  265. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/axon.py +0 -0
  266. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/cell.py +0 -0
  267. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/cortex.py +0 -0
  268. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/cryotank.py +0 -0
  269. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/jsonstor.py +0 -0
  270. {synapse-2.167.0 → synapse-2.168.0}/synapse/servers/stemcell.py +0 -0
  271. {synapse-2.167.0 → synapse-2.168.0}/synapse/telepath.py +0 -0
  272. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/__init__.py +0 -0
  273. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  274. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/__init__.py +0 -0
  275. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  276. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  277. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  278. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  279. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  280. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  281. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  282. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/users/root.key +0 -0
  283. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  284. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/certdir/users/user.key +0 -0
  285. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  286. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  287. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  288. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  289. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  290. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stix_export/basic.json +0 -0
  291. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  292. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  293. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  294. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  295. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  296. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  297. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  298. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  299. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  300. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  301. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormmod/common +0 -0
  302. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  303. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  304. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  305. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  306. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  307. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  308. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  309. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  310. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  311. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  312. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  313. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  314. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  315. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  316. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  317. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  318. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  319. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  320. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  321. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  322. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  323. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  324. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  325. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/test.dat +0 -0
  326. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  327. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/nopmod.py +0 -0
  328. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_axon.py +0 -0
  329. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_cmds_boss.py +0 -0
  330. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_cmds_cortex.py +0 -0
  331. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_cmds_hive.py +0 -0
  332. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_common.py +0 -0
  333. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_cryotank.py +0 -0
  334. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_daemon.py +0 -0
  335. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_data.py +0 -0
  336. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_datamodel.py +0 -0
  337. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_exc.py +0 -0
  338. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_glob.py +0 -0
  339. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_init.py +0 -0
  340. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_agenda.py +0 -0
  341. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_ast.py +0 -0
  342. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_autodoc.py +0 -0
  343. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_base.py +0 -0
  344. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_boss.py +0 -0
  345. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_cache.py +0 -0
  346. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_cell.py +0 -0
  347. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_certdir.py +0 -0
  348. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_chop.py +0 -0
  349. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_cli.py +0 -0
  350. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_config.py +0 -0
  351. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_const.py +0 -0
  352. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_coro.py +0 -0
  353. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  354. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  355. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  356. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  357. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_datfile.py +0 -0
  358. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  359. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_encoding.py +0 -0
  360. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_gis.py +0 -0
  361. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_grammar.py +0 -0
  362. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_hashitem.py +0 -0
  363. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_hashset.py +0 -0
  364. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_health.py +0 -0
  365. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_hive.py +0 -0
  366. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_hiveauth.py +0 -0
  367. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_httpapi.py +0 -0
  368. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_interval.py +0 -0
  369. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  370. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_jupyter.py +0 -0
  371. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_layer.py +0 -0
  372. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_link.py +0 -0
  373. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  374. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_modelrev.py +0 -0
  375. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_module.py +0 -0
  376. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_msgpack.py +0 -0
  377. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  378. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_nexus.py +0 -0
  379. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_node.py +0 -0
  380. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_output.py +0 -0
  381. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  382. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_queue.py +0 -0
  383. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  384. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_reflect.py +0 -0
  385. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_rstorm.py +0 -0
  386. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_scope.py +0 -0
  387. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_scrape.py +0 -0
  388. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  389. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  390. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_snap.py +0 -0
  391. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_spooled.py +0 -0
  392. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_storm.py +0 -0
  393. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_storm_format.py +0 -0
  394. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  395. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  396. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  397. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  398. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  399. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  400. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  401. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  402. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  403. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  404. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  405. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  406. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  407. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  408. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  409. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  410. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  411. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  412. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  413. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  414. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  415. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  416. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  417. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  418. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  419. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  420. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  421. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  422. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  423. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  424. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  425. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  426. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  427. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  428. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  429. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  430. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  431. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormtypes.py +0 -0
  432. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  433. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_structlog.py +0 -0
  434. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_task.py +0 -0
  435. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_thishost.py +0 -0
  436. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_time.py +0 -0
  437. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_types.py +0 -0
  438. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  439. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_version.py +0 -0
  440. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lib_view.py +0 -0
  441. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  442. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  443. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_mindmeld.py +0 -0
  444. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_auth.py +0 -0
  445. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_base.py +0 -0
  446. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_belief.py +0 -0
  447. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_biz.py +0 -0
  448. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_crypto.py +0 -0
  449. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_dns.py +0 -0
  450. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_economic.py +0 -0
  451. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_files.py +0 -0
  452. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_geopol.py +0 -0
  453. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_geospace.py +0 -0
  454. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_gov_cn.py +0 -0
  455. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_gov_intl.py +0 -0
  456. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_gov_us.py +0 -0
  457. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_inet.py +0 -0
  458. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_infotech.py +0 -0
  459. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_language.py +0 -0
  460. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_material.py +0 -0
  461. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_media.py +0 -0
  462. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_orgs.py +0 -0
  463. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_person.py +0 -0
  464. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_proj.py +0 -0
  465. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_risk.py +0 -0
  466. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_science.py +0 -0
  467. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_syn.py +0 -0
  468. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_telco.py +0 -0
  469. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_model_transport.py +0 -0
  470. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_servers_axon.py +0 -0
  471. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_servers_cortex.py +0 -0
  472. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_servers_cryotank.py +0 -0
  473. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_servers_stemcell.py +0 -0
  474. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_servers_univ.py +0 -0
  475. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_telepath.py +0 -0
  476. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_aha.py +0 -0
  477. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_autodoc.py +0 -0
  478. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  479. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_backup.py +0 -0
  480. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_cellauth.py +0 -0
  481. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  482. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  483. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_csvtool.py +0 -0
  484. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  485. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_easycert.py +0 -0
  486. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_feed.py +0 -0
  487. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_genpkg.py +0 -0
  488. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_guid.py +0 -0
  489. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  490. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_hiveload.py +0 -0
  491. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_hivesave.py +0 -0
  492. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  493. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_livebackup.py +0 -0
  494. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_modrole.py +0 -0
  495. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_moduser.py +0 -0
  496. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_pullfile.py +0 -0
  497. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_pushfile.py +0 -0
  498. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_reload.py +0 -0
  499. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_rstorm.py +0 -0
  500. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_tools_storm.py +0 -0
  501. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_utils.py +0 -0
  502. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_utils_getrefs.py +0 -0
  503. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/test_utils_stormcov.py +0 -0
  504. {synapse-2.167.0 → synapse-2.168.0}/synapse/tests/utils.py +0 -0
  505. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/__init__.py +0 -0
  506. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/aha/__init__.py +0 -0
  507. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/aha/easycert.py +0 -0
  508. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/aha/enroll.py +0 -0
  509. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/aha/list.py +0 -0
  510. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/aha/provision/__init__.py +0 -0
  511. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/aha/provision/service.py +0 -0
  512. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/aha/provision/user.py +0 -0
  513. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/autodoc.py +0 -0
  514. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/axon2axon.py +0 -0
  515. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/backup.py +0 -0
  516. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/cellauth.py +0 -0
  517. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/cmdr.py +0 -0
  518. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/cryo/__init__.py +0 -0
  519. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/cryo/cat.py +0 -0
  520. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/cryo/list.py +0 -0
  521. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/csvtool.py +0 -0
  522. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/docker/__init__.py +0 -0
  523. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/docker/validate.py +0 -0
  524. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/easycert.py +0 -0
  525. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/feed.py +0 -0
  526. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/genpkg.py +0 -0
  527. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/guid.py +0 -0
  528. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/healthcheck.py +0 -0
  529. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/hive/__init__.py +0 -0
  530. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/hive/load.py +0 -0
  531. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/hive/save.py +0 -0
  532. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/json2mpk.py +0 -0
  533. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/livebackup.py +0 -0
  534. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/modrole.py +0 -0
  535. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/moduser.py +0 -0
  536. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/promote.py +0 -0
  537. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/pullfile.py +0 -0
  538. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/pushfile.py +0 -0
  539. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/reload.py +0 -0
  540. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/rstorm.py +0 -0
  541. {synapse-2.167.0 → synapse-2.168.0}/synapse/tools/storm.py +0 -0
  542. {synapse-2.167.0 → synapse-2.168.0}/synapse/utils/__init__.py +0 -0
  543. {synapse-2.167.0 → synapse-2.168.0}/synapse/utils/getrefs.py +0 -0
  544. {synapse-2.167.0 → synapse-2.168.0}/synapse/utils/stormcov/__init__.py +0 -0
  545. {synapse-2.167.0 → synapse-2.168.0}/synapse/utils/stormcov/plugin.py +0 -0
  546. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/__init__.py +0 -0
  547. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  548. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  549. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/cashaddress/base58.py +0 -0
  550. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/cashaddress/convert.py +0 -0
  551. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  552. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  553. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  554. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  555. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  556. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  557. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  558. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  559. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  560. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/utils.py +0 -0
  561. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/LICENSE +0 -0
  562. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/__init__.py +0 -0
  563. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/constants.py +0 -0
  564. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  565. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  566. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  567. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  568. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  569. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  570. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  571. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  572. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  573. {synapse-2.167.0 → synapse-2.168.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  574. {synapse-2.167.0 → synapse-2.168.0}/synapse.egg-info/dependency_links.txt +0 -0
  575. {synapse-2.167.0 → synapse-2.168.0}/synapse.egg-info/requires.txt +0 -0
  576. {synapse-2.167.0 → synapse-2.168.0}/synapse.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.167.0
3
+ Version: 2.168.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License: Apache License 2.0
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.167.0'
7
+ version = '2.168.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -881,7 +881,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
881
881
 
882
882
  self.maxnodes = self.conf.get('max:nodes')
883
883
  self.nodecount = 0
884
+
884
885
  self.migration = False
886
+ self._migration_lock = asyncio.Lock()
885
887
 
886
888
  self.stormmods = {} # name: mdef
887
889
  self.stormpkgs = {} # name: pkgdef
@@ -1480,12 +1482,21 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1480
1482
  await self.stormdmons.start()
1481
1483
  await self.agenda.clearRunningStatus()
1482
1484
 
1483
- for view in self.views.values():
1484
- await view.initTrigTask()
1485
- await view.initMergeTask()
1485
+ async def _runMigrations():
1486
+ # Run migrations when this cortex becomes active. This is to prevent
1487
+ # migrations getting skipped in a zero-downtime upgrade path
1488
+ # (upgrade mirror, promote mirror).
1489
+ await self._checkLayerModels()
1486
1490
 
1487
- for layer in self.layers.values():
1488
- await layer.initLayerActive()
1491
+ # Once migrations are complete, start the view and layer tasks.
1492
+ for view in self.views.values():
1493
+ await view.initTrigTask()
1494
+ await view.initMergeTask()
1495
+
1496
+ for layer in self.layers.values():
1497
+ await layer.initLayerActive()
1498
+
1499
+ self.runActiveTask(_runMigrations())
1489
1500
 
1490
1501
  await self.initStormPool()
1491
1502
 
@@ -3597,6 +3608,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3597
3608
  break
3598
3609
 
3599
3610
  yield ioff, layr.iden, SYNC_NODEEDITS, item, meta
3611
+ await asyncio.sleep(0)
3600
3612
 
3601
3613
  if layr.isdeleted:
3602
3614
  yield layr.deloffs, layr.iden, SYNC_LAYR_DEL, (), {}
@@ -4363,7 +4375,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4363
4375
  return ret
4364
4376
 
4365
4377
  async def _checkLayerModels(self):
4366
- with self.enterMigrationMode():
4378
+ async with self.enterMigrationMode():
4367
4379
  mrev = s_modelrev.ModelRev(self)
4368
4380
  await mrev.revCoreLayers()
4369
4381
 
@@ -6098,11 +6110,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
6098
6110
  appt = await self.agenda.get(iden)
6099
6111
  await appt.edits(edits)
6100
6112
 
6101
- @contextlib.contextmanager
6102
- def enterMigrationMode(self):
6103
- self.migration = True
6104
- yield
6105
- self.migration = False
6113
+ @contextlib.asynccontextmanager
6114
+ async def enterMigrationMode(self):
6115
+ async with self._migration_lock:
6116
+ self.migration = True
6117
+ yield
6118
+ self.migration = False
6106
6119
 
6107
6120
  async def iterFormRows(self, layriden, form, stortype=None, startvalu=None):
6108
6121
  '''
@@ -807,7 +807,8 @@ class AhaCell(s_cell.Cell):
807
807
  async def _setAhaSvcDown(self, name, linkiden, network=None):
808
808
  svcname, svcnetw, svcfull = self._nameAndNetwork(name, network)
809
809
  path = ('aha', 'services', svcnetw, svcname)
810
- await self.jsonstor.cmpDelPathObjProp(path, 'svcinfo/online', linkiden)
810
+ if await self.jsonstor.cmpDelPathObjProp(path, 'svcinfo/online', linkiden):
811
+ await self.jsonstor.setPathObjProp(path, 'svcinfo/ready', False)
811
812
 
812
813
  # Check if we have any links which may need to be removed
813
814
  current_sessions = {s_common.guid(iden): sess for iden, sess in self.dmon.sessions.items()}
@@ -165,11 +165,13 @@ class LayerApi(s_cell.CellApi):
165
165
  await self._reqUserAllowed(self.liftperm)
166
166
  async for item in self.layr.syncNodeEdits(offs, wait=wait):
167
167
  yield item
168
+ await asyncio.sleep(0)
168
169
 
169
170
  async def syncNodeEdits2(self, offs, wait=True):
170
171
  await self._reqUserAllowed(self.liftperm)
171
172
  async for item in self.layr.syncNodeEdits2(offs, wait=wait):
172
173
  yield item
174
+ await asyncio.sleep(0)
173
175
 
174
176
  async def getEditIndx(self):
175
177
  '''
@@ -768,6 +768,12 @@ class ModelRev:
768
768
  Returns:
769
769
  None
770
770
  '''
771
+ if opts is None:
772
+ opts = {}
773
+
774
+ # Migrations only run on leaders
775
+ opts['mirror'] = False
776
+
771
777
  async def _runStorm():
772
778
  async for mesgtype, mesginfo in self.core.storm(text, opts=opts):
773
779
  if mesgtype == 'print':
@@ -28,4 +28,5 @@ coremods = (
28
28
  'synapse.models.biz.BizModule',
29
29
  'synapse.models.belief.BeliefModule',
30
30
  'synapse.models.science.ScienceModule',
31
+ 'synapse.models.planning.PlanModule',
31
32
  )
@@ -190,7 +190,7 @@ class AhaPool(s_stormtypes.StormType):
190
190
  'desc': 'The name of the AHA service to add. It is easiest to use the relative name of a service, ending with "...".', },
191
191
  ),
192
192
  'returns': {'type': 'null', }}},
193
- {'name': 'add', 'desc': '''Remove a service from the AHA pool.
193
+ {'name': 'del', 'desc': '''Remove a service from the AHA pool.
194
194
 
195
195
  Examples:
196
196
  Remove a service from a pool with its relative name::
@@ -203,7 +203,7 @@ class AhaPool(s_stormtypes.StormType):
203
203
  {'name': 'svcname', 'type': 'str',
204
204
  'desc': 'The name of the AHA service to remove. It is easiest to use the relative name of a service, ending with "...".', },
205
205
  ),
206
- 'returns': {'type': 'null', }}},
206
+ 'returns': {'type': ['null', 'str'], 'desc': 'The service removed from the pool or null if a service was not removed.'}}},
207
207
  )
208
208
  _storm_typename = 'aha:pool'
209
209
 
@@ -243,9 +243,20 @@ class AhaPool(s_stormtypes.StormType):
243
243
  proxy = await self.runt.snap.core.reqAhaProxy()
244
244
 
245
245
  poolname = self.poolinfo.get('name')
246
- await proxy.delAhaPoolSvc(poolname, svcname)
246
+ newinfo = await proxy.delAhaPoolSvc(poolname, svcname)
247
+
248
+ tname = svcname
249
+ if tname.endswith('...'):
250
+ tname = tname[:-2]
251
+ deleted_service = None
252
+ deleted_services = [svc for svc in self.poolinfo.get('services').keys()
253
+ if svc not in newinfo.get('services') and svc.startswith(tname)]
254
+ if deleted_services:
255
+ deleted_service = deleted_services[0]
256
+
257
+ self.poolinfo = newinfo
247
258
 
248
- self.poolinfo = await proxy.getAhaPool(poolname)
259
+ return deleted_service
249
260
 
250
261
  stormcmds = (
251
262
  {
@@ -319,8 +330,12 @@ stormcmds = (
319
330
  $pool = $lib.aha.pool.get($cmdopts.poolname)
320
331
  if (not $pool) { $lib.exit(`No AHA service pool named: {$cmdopts.poolname}`) }
321
332
 
322
- $pool.del($cmdopts.svcname)
323
- $lib.print(`AHA service ({$cmdopts.svcname}) removed from service pool ({$pool.name})`)
333
+ $svc = $pool.del($cmdopts.svcname)
334
+ if $svc {
335
+ $lib.print(`AHA service ({$svc}) removed from service pool ({$pool.name})`)
336
+ } else {
337
+ $lib.print(`Did not remove ({$cmdopts.svcname}) from the service pool.`)
338
+ }
324
339
  ''',
325
340
  },
326
341
  {
@@ -51,6 +51,14 @@ class LibEasyPerm(s_stormtypes.Lib):
51
51
  'desc': 'Optional error message to present if user does not have required permission level.'},
52
52
  ),
53
53
  'returns': {'type': 'null'}}},
54
+ {'name': 'level.admin', 'desc': 'Constant for admin permission.',
55
+ 'type': 'int', },
56
+ {'name': 'level.deny', 'desc': 'Constant for deny permission.',
57
+ 'type': 'int', },
58
+ {'name': 'level.edit', 'desc': 'Constant for edit permission.',
59
+ 'type': 'int', },
60
+ {'name': 'level.read', 'desc': 'Constant for read permission.',
61
+ 'type': 'int', },
54
62
  )
55
63
  _storm_lib_path = ('auth', 'easyperm')
56
64
 
@@ -1707,6 +1707,13 @@ class LibDict(Lib):
1707
1707
  A Storm Library for interacting with dictionaries.
1708
1708
  '''
1709
1709
  _storm_locals = (
1710
+ {'name': 'has', 'desc': 'Check a dictionary has a specific key.',
1711
+ 'type': {'type': 'function', '_funcname': '_has',
1712
+ 'args': (
1713
+ {'name': 'valu', 'type': 'dict', 'desc': 'The dictionary being checked.'},
1714
+ {'name': 'name', 'type': 'str', 'desc': 'The key name to check.'},
1715
+ ),
1716
+ 'returns': {'type': 'boolean', 'desc': 'True if the key is present, false if the key is not present.'}}},
1710
1717
  {'name': 'keys', 'desc': 'Retrieve a list of keys in the specified dictionary.',
1711
1718
  'type': {'type': 'function', '_funcname': '_keys',
1712
1719
  'args': (
@@ -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, 167, 0)
226
+ version = (2, 168, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = '7b2983533ea27d69e547ac54d9aab953630137c2'
228
+ commit = 'd07eb2560a6e5e025ce9c20efaafe5571a55856c'
@@ -55,6 +55,7 @@ class ViewApi(s_cell.CellApi):
55
55
  layr = self.view.layers[0]
56
56
  async for item in layr.syncNodeEdits2(offs, wait=wait):
57
57
  yield item
58
+ await asyncio.sleep(0)
58
59
 
59
60
  @s_cell.adminapi()
60
61
  async def saveNodeEdits(self, edits, meta):
@@ -0,0 +1,161 @@
1
+ import synapse.lib.module as s_module
2
+
3
+ class PlanModule(s_module.CoreModule):
4
+
5
+ def getModelDefs(self):
6
+ return (('plan', {
7
+ 'types': (
8
+ ('plan:system', ('guid', {}), {
9
+ 'doc': 'A planning or behavioral analysis system that defines phases and procedures.'}),
10
+
11
+ ('plan:phase', ('guid', {}), {
12
+ 'doc': 'A phase within a planning system which may be used to group steps within a procedure.'}),
13
+
14
+ ('plan:procedure', ('guid', {}), {
15
+ 'doc': 'A procedure consisting of steps.'}),
16
+
17
+ ('plan:procedure:type:taxonomy', ('taxonomy', {}), {
18
+ 'interfaces': ('meta:taxonomy',),
19
+ 'doc': 'A taxonomy of procedure types.'}),
20
+
21
+ ('plan:procedure:variable', ('guid', {}), {
22
+ 'doc': 'A variable used by a procedure.'}),
23
+
24
+ ('plan:procedure:step', ('guid', {}), {
25
+ 'doc': 'A step within a procedure.'}),
26
+
27
+ ('plan:procedure:link', ('guid', {}), {
28
+ 'doc': 'A link between steps in a procedure.'}),
29
+ ),
30
+
31
+ 'forms': (
32
+ ('plan:system', {}, (
33
+
34
+ ('name', ('str', {'lower': True, 'onespace': True}), {
35
+ 'ex': 'mitre att&ck flow',
36
+ 'doc': 'The name of the planning system.'}),
37
+
38
+ ('summary', ('str', {}), {
39
+ 'disp': {'hint': 'text'},
40
+ 'doc': 'A summary of the purpose and use case for the planning system.'}),
41
+
42
+ ('author', ('ps:contact', {}), {
43
+ 'doc': 'The contact of the person or organization which authored the system.'}),
44
+
45
+ ('created', ('time', {}), {
46
+ 'doc': 'The time the planning system was first created.'}),
47
+
48
+ ('updated', ('time', {}), {
49
+ 'doc': 'The time the planning system was last updated.'}),
50
+
51
+ ('version', ('it:semver', {}), {
52
+ 'doc': 'The version of the planning system.'}),
53
+
54
+ ('url', ('inet:url', {}), {
55
+ 'doc': 'The primary URL which documents the planning system.'}),
56
+ )),
57
+ ('plan:phase', {}, (
58
+ ('title', ('str', {}), {
59
+ 'ex': 'Reconnaissance Phase',
60
+ 'doc': 'The title of the phase.'}),
61
+
62
+ ('summary', ('str', {}), {
63
+ 'disp': {'hint': 'text'},
64
+ 'doc': 'A summary of the definition of the phase.'}),
65
+
66
+ ('index', ('int', {}), {
67
+ 'doc': 'The index of this phase within the phases of the system.'}),
68
+
69
+ ('url', ('inet:url', {}), {
70
+ 'doc': 'A URL which links to the full documentation about the phase.'}),
71
+
72
+ ('system', ('plan:system', {}), {
73
+ 'doc': 'The planning system which defines this phase.'}),
74
+ )),
75
+ ('plan:procedure:type:taxonomy', {}, ()),
76
+ ('plan:procedure', {}, (
77
+
78
+ ('title', ('str', {}), {
79
+ 'ex': 'Network Reconnaissance Procedure',
80
+ 'doc': 'The name of the procedure.'}),
81
+
82
+ ('summary', ('str', {}), {
83
+ 'disp': {'hint': 'text'},
84
+ 'doc': 'A summary of the purpose and use cases for the procedure.'}),
85
+
86
+ ('author', ('ps:contact', {}), {
87
+ 'doc': 'The contact of the person or organization which authored the procedure.'}),
88
+
89
+ ('created', ('time', {}), {
90
+ 'doc': 'The time the procedure was created.'}),
91
+
92
+ ('updated', ('time', {}), {
93
+ 'doc': 'The time the procedure was last updated.'}),
94
+
95
+ ('version', ('it:semver', {}), {
96
+ 'doc': 'The version of the procedure.'}),
97
+
98
+ ('system', ('plan:system', {}), {
99
+ 'doc': 'The planning system which defines this procedure.'}),
100
+
101
+ ('type', ('plan:procedure:type:taxonomy', {}), {
102
+ 'doc': 'A type classification for the procedure.'}),
103
+
104
+ ('inputs', ('array', {'type': 'plan:procedure:variable', 'uniq': True, 'sorted': True}), {
105
+ 'doc': 'An array of inputs required to execute the procedure.'}),
106
+
107
+ ('firststep', ('plan:procedure:step', {}), {
108
+ 'doc': 'The first step in the procedure.'}),
109
+ )),
110
+ ('plan:procedure:variable', {}, (
111
+
112
+ ('name', ('str', {}), {
113
+ 'doc': 'The name of the variable.'}),
114
+
115
+ ('type', ('str', {}), {
116
+ 'doc': 'The type for the input. Types are specific to the planning system.'}),
117
+
118
+ ('default', ('data', {}), {
119
+ 'doc': 'The optional default value if the procedure is invoked without the input.'}),
120
+
121
+ ('procedure', ('plan:procedure', {}), {
122
+ 'doc': 'The procedure which defines the variable.'}),
123
+ )),
124
+ ('plan:procedure:step', {}, (
125
+
126
+ ('phase', ('plan:phase', {}), {
127
+ 'doc': 'The phase that the step belongs within.'}),
128
+
129
+ ('procedure', ('plan:procedure', {}), {
130
+ 'doc': 'The procedure which defines the step.'}),
131
+
132
+ ('title', ('str', {}), {
133
+ 'ex': 'Scan the IPv4 address range for open ports',
134
+ 'doc': 'The title of the step.'}),
135
+
136
+ ('summary', ('str', {}), {
137
+ 'doc': 'A summary of the tasks executed within the step.'}),
138
+
139
+ ('outputs', ('array', {'type': 'plan:procedure:variable', 'uniq': True, 'sorted': True}), {
140
+ 'doc': 'An array of variables defined in this step.'}),
141
+
142
+ ('techniques', ('array', {'type': 'ou:technique', 'uniq': True, 'sorted': True}), {
143
+ 'doc': 'An array of techniques used when executing this step.'}),
144
+
145
+ ('links', ('array', {'type': 'plan:procedure:link', 'uniq': True}), {
146
+ 'doc': 'An array of links to subsequent steps.'}),
147
+
148
+ )),
149
+ ('plan:procedure:link', {}, (
150
+
151
+ ('condition', ('bool', {}), {
152
+ 'doc': 'Set to true/false if this link is conditional based on a decision step.'}),
153
+
154
+ ('next', ('plan:procedure:step', {}), {
155
+ 'doc': 'The next step in the plan.'}),
156
+
157
+ ('procedure', ('plan:procedure', {}), {
158
+ 'doc': 'The procedure which defines the link.'}),
159
+ )),
160
+ ),
161
+ }),)
@@ -7958,7 +7958,7 @@ class CortexBasicTest(s_t_utils.SynTest):
7958
7958
  waiter = core01.stormpool.waiter(1, 'svc:del')
7959
7959
  msgs = await core01.stormlist('aha.pool.svc.del pool00... 01.core...', opts={'mirror': False})
7960
7960
  self.stormHasNoWarnErr(msgs)
7961
- self.stormIsInPrint('AHA service (01.core...) removed from service pool (pool00.loop.vertex.link)', msgs)
7961
+ self.stormIsInPrint('AHA service (01.core.loop.vertex.link) removed from service pool (pool00.loop.vertex.link)', msgs)
7962
7962
 
7963
7963
  # TODO: this wait should not return None
7964
7964
  await waiter.wait(timeout=3)
@@ -1126,7 +1126,7 @@ class AhaTest(s_test.SynTest):
1126
1126
  ready = svcinfo.get('ready')
1127
1127
  online = svcinfo.get('online')
1128
1128
  self.none(online)
1129
- self.true(ready) # Ready is not cleared upon restart
1129
+ self.false(ready) # Ready is cleared upon restart / setting service down.
1130
1130
 
1131
1131
  n = 3
1132
1132
  if len(stack._exit_callbacks) > 0:
@@ -1245,7 +1245,12 @@ class AhaTest(s_test.SynTest):
1245
1245
 
1246
1246
  msgs = await core00.stormlist('aha.pool.svc.del pool00... 00...')
1247
1247
  self.stormHasNoWarnErr(msgs)
1248
- self.stormIsInPrint('AHA service (00...) removed from service pool (pool00.loop.vertex.link)', msgs)
1248
+ self.stormIsInPrint('AHA service (00.loop.vertex.link) removed from service pool (pool00.loop.vertex.link)',
1249
+ msgs)
1250
+
1251
+ msgs = await core00.stormlist('aha.pool.svc.del pool00... 00...')
1252
+ self.stormHasNoWarnErr(msgs)
1253
+ self.stormIsInPrint('Did not remove (00...) from the service pool.', msgs)
1249
1254
 
1250
1255
  await waiter.wait(timeout=3)
1251
1256
  run00 = await (await pool.proxy(timeout=3)).getCellRunId()
@@ -139,7 +139,7 @@ Member: 00.cell.loop.vertex.link'''
139
139
  self.len(nevents, await waiter.wait(timeout=12))
140
140
 
141
141
  msgs = await core00.stormlist('aha.svc.list')
142
- self.stormIsInPrint('01.cell.loop.vertex.link false false true', msgs)
142
+ self.stormIsInPrint('01.cell.loop.vertex.link false false false', msgs)
143
143
 
144
144
  # Fake a record
145
145
  await aha.addAhaSvc('00.newp', info={'urlinfo': {'scheme': 'tcp', 'host': '0.0.0.0', 'port': '3030'}},
@@ -369,7 +369,7 @@ class TrigTest(s_t_utils.SynTest):
369
369
 
370
370
  # coverage for migration mode
371
371
  await core.nodes('[inet:fqdn=vertex.link +#foo]') # for additional migration mode trigger tests below
372
- with core.enterMigrationMode():
372
+ async with core.enterMigrationMode():
373
373
  await core.nodes('inet:fqdn=vertex.link [ +#bar -#foo ]')
374
374
 
375
375
  async def test_trigger_delete(self):
@@ -774,7 +774,7 @@ class TrigTest(s_t_utils.SynTest):
774
774
  await core.nodes('trigger.add edge:add --verb r* --n2form test:int --query { [ +#n2 ] }')
775
775
  await core.nodes('trigger.add edge:add --verb no** --form test:int --n2form test:str --query { [ +#both ] }')
776
776
 
777
- with core.enterMigrationMode():
777
+ async with core.enterMigrationMode():
778
778
  nodes = await core.nodes('[test:int=123 +(foo:beep:boop)> { [test:str=neato] }]')
779
779
  self.len(1, nodes)
780
780
  self.notin('foo', nodes[0].tags)
@@ -834,7 +834,7 @@ class TrigTest(s_t_utils.SynTest):
834
834
  await core.nodes('trigger.add edge:del --verb r* --n2form test:int --query { [ +#del.two ] }')
835
835
  await core.nodes('trigger.add edge:del --verb no** --form test:int --n2form test:str --query { [ +#del.all ] }')
836
836
 
837
- with core.enterMigrationMode():
837
+ async with core.enterMigrationMode():
838
838
  nodes = await core.nodes('test:int=123 | [ -(foo:beep:boop)> { test:str=neato } ]')
839
839
  self.len(1, nodes)
840
840
  self.notin('del.none', nodes[0].tags)
@@ -0,0 +1,126 @@
1
+ import synapse.exc as s_exc
2
+ import synapse.common as s_common
3
+ import synapse.tests.utils as s_t_utils
4
+
5
+ class PlanModelTest(s_t_utils.SynTest):
6
+
7
+ async def test_model_planning(self):
8
+
9
+ async with self.getTestCore() as core:
10
+ nodes = await core.nodes('''
11
+ [ plan:system=*
12
+ :name="Woot CNO Planner"
13
+ :author={[ ps:contact=* :name=visi ]}
14
+ :created=20240202
15
+ :updated=20240203
16
+ :version=1.0.0
17
+ :url=https://vertex.link
18
+ ]
19
+ ''')
20
+ self.len(1, nodes)
21
+ self.eq('woot cno planner', nodes[0].get('name'))
22
+ self.eq(1706832000000, nodes[0].get('created'))
23
+ self.eq(1706918400000, nodes[0].get('updated'))
24
+ self.eq(1099511627776, nodes[0].get('version'))
25
+ self.eq('https://vertex.link', nodes[0].get('url'))
26
+
27
+ self.len(1, await core.nodes('plan:system :author -> ps:contact +:name=visi'))
28
+
29
+ nodes = await core.nodes('''
30
+ [ plan:phase=*
31
+ :system={ plan:system:name="Woot CNO Planner"}
32
+ :title="Recon"
33
+ :summary="Do some recon."
34
+ :index=17
35
+ :url=https://vertex.link/recon
36
+ ]
37
+ ''')
38
+
39
+ self.len(1, nodes)
40
+ self.eq('Recon', nodes[0].get('title'))
41
+ self.eq('Do some recon.', nodes[0].get('summary'))
42
+ self.eq(17, nodes[0].get('index'))
43
+ self.eq('https://vertex.link/recon', nodes[0].get('url'))
44
+
45
+ self.len(1, await core.nodes('plan:phase :system -> plan:system +:name="Woot CNO Planner"'))
46
+
47
+ nodes = await core.nodes('''
48
+ [ plan:procedure=*
49
+ :system={ plan:system:name="Woot CNO Planner"}
50
+ :title="Pwn Some Boxes"
51
+ :summary="Yoink."
52
+ :author={ ps:contact:name=visi }
53
+ :created=20240202
54
+ :updated=20240203
55
+ :version=1.0.0
56
+ :type=cno.offense
57
+ :system={ plan:system:name="Woot CNO Planner" }
58
+ ]
59
+
60
+ $guid = $node.value()
61
+
62
+ [
63
+ :inputs={[ plan:procedure:variable=*
64
+ :name=network
65
+ :type=cidr
66
+ :default=127.0.0.0/24
67
+ :procedure=$guid
68
+ ]}
69
+
70
+ :firststep={[ plan:procedure:step=*
71
+ :title="Are there vulnerable services?"
72
+ :summary="Scan the target network and identify available services."
73
+ :procedure=$guid
74
+ :phase={ plan:phase:title=Recon }
75
+ :outputs={[ plan:procedure:variable=* :name=services ]}
76
+ :techniques={[ ou:technique=* :name=netscan ]}
77
+
78
+ :links={[ plan:procedure:link=*
79
+ :condition=(true)
80
+ :procedure=$guid
81
+ :next={[ plan:procedure:step=*
82
+ :title="Exploit Services"
83
+ :summary="Gank that stuff."
84
+ :procedure=$guid
85
+ :outputs={[ plan:procedure:variable=* :name=shellz ]}
86
+ ]}
87
+
88
+ ]}
89
+ ]}
90
+ ]
91
+ ''')
92
+
93
+ self.len(1, nodes)
94
+ self.eq('Pwn Some Boxes', nodes[0].get('title'))
95
+ self.eq('Yoink.', nodes[0].get('summary'))
96
+ self.nn(nodes[0].get('author'))
97
+ self.eq(1706832000000, nodes[0].get('created'))
98
+ self.eq(1706918400000, nodes[0].get('updated'))
99
+ self.eq(1099511627776, nodes[0].get('version'))
100
+
101
+ self.len(1, await core.nodes('plan:procedure :type -> plan:procedure:type:taxonomy'))
102
+ self.len(1, await core.nodes('plan:procedure :system -> plan:system +:name="Woot CNO Planner"'))
103
+ self.len(1, await core.nodes('plan:procedure :firststep -> plan:procedure:step -> plan:procedure:link'))
104
+
105
+ nodes = await core.nodes('plan:procedure :inputs -> plan:procedure:variable')
106
+ self.len(1, nodes)
107
+ self.eq('network', nodes[0].get('name'))
108
+ self.eq('cidr', nodes[0].get('type'))
109
+ self.eq('127.0.0.0/24', nodes[0].get('default'))
110
+ self.nn(nodes[0].get('procedure'))
111
+
112
+ nodes = await core.nodes('plan:procedure :firststep -> plan:procedure:step')
113
+ self.len(1, nodes)
114
+ self.eq('Are there vulnerable services?', nodes[0].get('title'))
115
+ self.eq('Scan the target network and identify available services.', nodes[0].get('summary'))
116
+ self.nn(nodes[0].get('procedure'))
117
+
118
+ self.len(1, await core.nodes('plan:procedure :firststep -> plan:procedure:step -> plan:phase'))
119
+ self.len(1, await core.nodes('plan:procedure :firststep -> plan:procedure:step :techniques -> ou:technique'))
120
+ self.len(1, await core.nodes('plan:procedure :firststep -> plan:procedure:step :outputs -> plan:procedure:variable'))
121
+
122
+ nodes = await core.nodes('plan:procedure :firststep -> plan:procedure:step -> plan:procedure:link')
123
+ self.len(1, nodes)
124
+ self.eq(True, nodes[0].get('condition'))
125
+ self.nn(nodes[0].get('next'))
126
+ self.nn(nodes[0].get('procedure'))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.167.0
3
+ Version: 2.168.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License: Apache License 2.0
@@ -247,6 +247,7 @@ synapse/models/material.py
247
247
  synapse/models/media.py
248
248
  synapse/models/orgs.py
249
249
  synapse/models/person.py
250
+ synapse/models/planning.py
250
251
  synapse/models/proj.py
251
252
  synapse/models/risk.py
252
253
  synapse/models/science.py
@@ -407,6 +408,7 @@ synapse/tests/test_model_material.py
407
408
  synapse/tests/test_model_media.py
408
409
  synapse/tests/test_model_orgs.py
409
410
  synapse/tests/test_model_person.py
411
+ synapse/tests/test_model_planning.py
410
412
  synapse/tests/test_model_proj.py
411
413
  synapse/tests/test_model_risk.py
412
414
  synapse/tests/test_model_science.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes