synapse 2.219.0__tar.gz → 2.221.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.
- {synapse-2.219.0/synapse.egg-info → synapse-2.221.0}/PKG-INFO +1 -2
- {synapse-2.219.0 → synapse-2.221.0}/pyproject.toml +2 -3
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/__init__.py +4 -0
- synapse-2.221.0/synapse/data/lark/imap.lark +8 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/exc.py +2 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/json.py +6 -5
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/layer.py +134 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/link.py +49 -50
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/parser.py +3 -5
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/rstorm.py +65 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/snap.py +21 -13
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/storm.py +1 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormhttp.py +10 -10
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/aha.py +3 -3
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/auth.py +11 -11
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/cell.py +1 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/cortex.py +9 -9
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/env.py +4 -5
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/ethereum.py +1 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/gen.py +3 -3
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/hex.py +2 -2
- synapse-2.221.0/synapse/lib/stormlib/imap.py +817 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/infosec.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/iters.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/model.py +5 -5
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/notifications.py +1 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/oauth.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/project.py +3 -3
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/scrape.py +2 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/smtp.py +3 -3
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/stats.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/stix.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/utils.py +19 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/vault.py +1 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/xml.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/yaml.py +1 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormtypes.py +203 -60
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/version.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_grammar.py +2 -4
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_json.py +29 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_layer.py +86 -67
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_rstorm.py +132 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_storm.py +11 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_env.py +3 -1
- synapse-2.221.0/synapse/tests/test_lib_stormlib_imap.py +1359 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_utils.py +10 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormtypes.py +583 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/list.py +9 -9
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/provision/service.py +2 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse/utils/stormcov/plugin.py +2 -5
- synapse-2.221.0/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0/synapse.egg-info}/PKG-INFO +1 -2
- {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/SOURCES.txt +3 -1
- {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/requires.txt +0 -1
- synapse-2.219.0/synapse/lib/stormlib/imap.py +0 -376
- synapse-2.219.0/synapse/tests/test_lib_stormlib_imap.py +0 -282
- {synapse-2.219.0 → synapse-2.221.0}/LICENSE +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/README.rst +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/setup.cfg +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/axon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/cells.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/common.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/cortex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/cryotank.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/daemon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/iana.uris.mpk +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.219.0/synapse/lib/crypto → synapse-2.221.0/synapse/data/lark}/__init__.py +0 -0
- {synapse-2.219.0/synapse/lib → synapse-2.221.0/synapse/data/lark}/storm.lark +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/datamodel.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/glob.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/agenda.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/aha.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/ast.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/auth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/base.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/boss.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cache.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cell.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/chop.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cli.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/config.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/const.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/coro.py +0 -0
- {synapse-2.219.0/synapse/lib/stormlib → synapse-2.221.0/synapse/lib/crypto}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/drive.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/gis.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/health.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/hive.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/interval.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/module.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/modules.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/node.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/output.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/queue.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/schemas.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/scope.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/share.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.219.0/synapse/lookup → synapse-2.221.0/synapse/lib/stormlib}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/task.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/threads.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/time.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/types.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lib/view.py +0 -0
- {synapse-2.219.0/synapse/models → synapse-2.221.0/synapse/lookup}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/mindmeld.py +0 -0
- {synapse-2.219.0/synapse/models/gov → synapse-2.221.0/synapse/models}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/auth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/base.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/belief.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/biz.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/crypto.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/dns.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/doc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/economic.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/entity.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/files.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/geopol.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/geospace.py +0 -0
- {synapse-2.219.0/synapse/servers → synapse-2.221.0/synapse/models/gov}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/inet.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/infotech.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/language.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/material.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/math.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/media.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/orgs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/person.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/planning.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/proj.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/risk.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/science.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/syn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/telco.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/models/transport.py +0 -0
- {synapse-2.219.0/synapse/tests → synapse-2.221.0/synapse/servers}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/aha.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/axon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/cell.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/telepath.py +0 -0
- {synapse-2.219.0/synapse/tools → synapse-2.221.0/synapse/tests}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/docs/bar.rst +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/docs/foo.rst +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cortex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_entity.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_math.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_apikey.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_axon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_changelog.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_demote.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_pkgs_gendocs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_promote.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_shutdown.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_snapshot.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tests/utils.py +0 -0
- {synapse-2.219.0/synapse/tools/aha → synapse-2.221.0/synapse/tools}/__init__.py +0 -0
- {synapse-2.219.0/synapse/tools/aha/provision → synapse-2.221.0/synapse/tools/aha}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/mirror.py +0 -0
- {synapse-2.219.0/synapse/tools/axon → synapse-2.221.0/synapse/tools/aha/provision}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/apikey.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.219.0/synapse/tools/cortex → synapse-2.221.0/synapse/tools/axon}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/axon/dump.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/axon/load.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/backup.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/changelog.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.219.0/synapse/tools/cortex/layer → synapse-2.221.0/synapse/tools/cortex}/__init__.py +0 -0
- {synapse-2.219.0/synapse/tools/cryo → synapse-2.221.0/synapse/tools/cortex/layer}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cortex/layer/dump.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cortex/layer/load.py +0 -0
- {synapse-2.219.0/synapse/tools/docker → synapse-2.221.0/synapse/tools/cryo}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/demote.py +0 -0
- {synapse-2.219.0/synapse/tools/hive → synapse-2.221.0/synapse/tools/docker}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/feed.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/guid.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.219.0/synapse/utils → synapse-2.221.0/synapse/tools/hive}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pkgs/gendocs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pkgs/pandoc_filter.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/promote.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/reload.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/shutdown.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/snapshot.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/tools/storm.py +0 -0
- {synapse-2.219.0/synapse/vendor → synapse-2.221.0/synapse/utils}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.219.0/synapse/vendor/cashaddress/tests → synapse-2.221.0/synapse/vendor}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.219.0/synapse/vendor/cpython → synapse-2.221.0/synapse/vendor/cashaddress/tests}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-2.219.0/synapse/vendor/cpython/lib → synapse-2.221.0/synapse/vendor/cpython}/__init__.py +0 -0
- {synapse-2.219.0/synapse/vendor/cpython/lib/email → synapse-2.221.0/synapse/vendor/cpython/lib}/__init__.py +0 -0
- {synapse-2.219.0/synapse/vendor/cpython/lib/http → synapse-2.221.0/synapse/vendor/cpython/lib/email}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-2.219.0/synapse/vendor/cpython/lib/test → synapse-2.221.0/synapse/vendor/cpython/lib/http}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/json.py +0 -0
- {synapse-2.219.0/synapse/vendor/cpython/lib/test/test_email → synapse-2.221.0/synapse/vendor/cpython/lib/test}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-2.219.0/synapse/vendor/substrateinterface/tests → synapse-2.221.0/synapse/vendor/cpython/lib/test/test_email}/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.219.0/synapse/vendor/xrpl → synapse-2.221.0/synapse/vendor/substrateinterface}/tests/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.219.0 → synapse-2.221.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synapse
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.221.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
|
|
@@ -28,7 +28,6 @@ Requires-Dist: regex>=2022.9.11
|
|
|
28
28
|
Requires-Dist: PyYAML<6.1.0,>=5.4
|
|
29
29
|
Requires-Dist: aiohttp<4.0,>=3.10.0
|
|
30
30
|
Requires-Dist: aiohttp-socks<0.11.0,>=0.9.0
|
|
31
|
-
Requires-Dist: aioimaplib<1.2.0,>=1.1.0
|
|
32
31
|
Requires-Dist: aiosmtplib<3.1.0,>=3.0.0
|
|
33
32
|
Requires-Dist: prompt_toolkit<3.1.0,>=3.0.29
|
|
34
33
|
Requires-Dist: lark==1.2.2
|
|
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = 'synapse'
|
|
7
|
-
version = '2.
|
|
7
|
+
version = '2.221.0'
|
|
8
8
|
authors = [
|
|
9
9
|
{ name = 'The Vertex Project LLC', email = 'root@vertex.link'},
|
|
10
10
|
]
|
|
@@ -32,7 +32,6 @@ dependencies = [
|
|
|
32
32
|
'PyYAML>=5.4,<6.1.0',
|
|
33
33
|
'aiohttp>=3.10.0,<4.0',
|
|
34
34
|
'aiohttp-socks>=0.9.0,<0.11.0',
|
|
35
|
-
'aioimaplib>=1.1.0,<1.2.0',
|
|
36
35
|
'aiosmtplib>=3.0.0,<3.1.0',
|
|
37
36
|
'prompt_toolkit>=3.0.29,<3.1.0',
|
|
38
37
|
'lark==1.2.2',
|
|
@@ -86,9 +85,9 @@ include-package-data = true
|
|
|
86
85
|
'synapse' = [
|
|
87
86
|
'data/*.mpk',
|
|
88
87
|
'data/certs/**',
|
|
88
|
+
'data/lark/*.lark',
|
|
89
89
|
'data/attack-flow/**',
|
|
90
90
|
'data/jsonschemas/**',
|
|
91
|
-
'lib/storm.lark',
|
|
92
91
|
'tests/files/**',
|
|
93
92
|
'vendor/*/LICENSE'
|
|
94
93
|
]
|
|
@@ -29,5 +29,9 @@ def getJSON(name):
|
|
|
29
29
|
with s_datfile.openDatFile(f'synapse.data/{name}.json') as fd:
|
|
30
30
|
return s_json.load(fd)
|
|
31
31
|
|
|
32
|
+
def getLark(name):
|
|
33
|
+
with s_datfile.openDatFile(f'synapse.data.lark/{name}.lark') as larkf:
|
|
34
|
+
return larkf.read().decode()
|
|
35
|
+
|
|
32
36
|
def path(*names):
|
|
33
37
|
return s_common.genpath(dirname, *names)
|
|
@@ -88,12 +88,13 @@ def _dumps(obj, sort_keys=False, indent=False, default=None, newline=False):
|
|
|
88
88
|
mesg = 'Object of type bytes is not JSON serializable'
|
|
89
89
|
raise s_exc.MustBeJsonSafe(mesg=mesg)
|
|
90
90
|
|
|
91
|
-
# Raw strings have to be double-quoted. This is because the default behavior for `yyjson.Document`
|
|
92
|
-
# is to attempt to parse the string as a serialized JSON string into objects, so we escape string
|
|
93
|
-
# values so we can get the JSON encoded string as output.
|
|
94
91
|
if isinstance(obj, str) and obj not in ('null', 'true', 'false'):
|
|
95
|
-
#
|
|
96
|
-
|
|
92
|
+
# Raw strings have to be double-quoted. This is because the default behavior for `yyjson.Document` is to attempt
|
|
93
|
+
# to parse the string as a serialized JSON string into objects. Instead of trying to manually escape the string,
|
|
94
|
+
# we wrap it in a list, serialize it, and then strip off the leading/trailing [] so we can get the JSON encoded
|
|
95
|
+
# string as output.
|
|
96
|
+
doc = yyjson.Document([obj], default=default, flags=rflags)
|
|
97
|
+
return doc.dumps(flags=wflags)[1:-1].encode()
|
|
97
98
|
|
|
98
99
|
doc = yyjson.Document(obj, default=default, flags=rflags)
|
|
99
100
|
return doc.dumps(flags=wflags).encode()
|
|
@@ -3352,6 +3352,98 @@ class Layer(s_nexus.Pusher):
|
|
|
3352
3352
|
_, changes = await self.saveNodeEdits(nodeedits, meta)
|
|
3353
3353
|
return bool(changes[0][2])
|
|
3354
3354
|
|
|
3355
|
+
async def delStorNode(self, buid, meta):
|
|
3356
|
+
'''
|
|
3357
|
+
Delete all node information in this layer.
|
|
3358
|
+
|
|
3359
|
+
Deletes props, tagprops, tags, n1edges, n2edges, nodedata, and node valu.
|
|
3360
|
+
'''
|
|
3361
|
+
sode = self._getStorNode(buid)
|
|
3362
|
+
if sode is None:
|
|
3363
|
+
return False
|
|
3364
|
+
|
|
3365
|
+
formname = sode.get('form')
|
|
3366
|
+
|
|
3367
|
+
edits = []
|
|
3368
|
+
nodeedits = []
|
|
3369
|
+
|
|
3370
|
+
for propname, propvalu in sode.get('props', {}).items():
|
|
3371
|
+
edits.append(
|
|
3372
|
+
(EDIT_PROP_DEL, (propname, *propvalu), ())
|
|
3373
|
+
)
|
|
3374
|
+
|
|
3375
|
+
for tagname, tprops in sode.get('tagprops', {}).items():
|
|
3376
|
+
for propname, propvalu in tprops.items():
|
|
3377
|
+
edits.append(
|
|
3378
|
+
(EDIT_TAGPROP_DEL, (tagname, propname, *propvalu), ())
|
|
3379
|
+
)
|
|
3380
|
+
|
|
3381
|
+
for tagname, tagvalu in sode.get('tags', {}).items():
|
|
3382
|
+
edits.append(
|
|
3383
|
+
(EDIT_TAG_DEL, (tagname, tagvalu), ())
|
|
3384
|
+
)
|
|
3385
|
+
|
|
3386
|
+
# EDIT_NODE_DEL will delete all nodedata and n1 edges if there is a valu in the sode
|
|
3387
|
+
if (valu := sode.get('valu')):
|
|
3388
|
+
edits.append(
|
|
3389
|
+
(EDIT_NODE_DEL, valu, ())
|
|
3390
|
+
)
|
|
3391
|
+
else:
|
|
3392
|
+
async for item in self.iterNodeData(buid):
|
|
3393
|
+
edits.append(
|
|
3394
|
+
(EDIT_NODEDATA_DEL, item, ())
|
|
3395
|
+
)
|
|
3396
|
+
await asyncio.sleep(0)
|
|
3397
|
+
|
|
3398
|
+
async for edge in self.iterNodeEdgesN1(buid):
|
|
3399
|
+
edits.append(
|
|
3400
|
+
(EDIT_EDGE_DEL, edge, ())
|
|
3401
|
+
)
|
|
3402
|
+
await asyncio.sleep(0)
|
|
3403
|
+
|
|
3404
|
+
nodeedits.append((buid, formname, edits))
|
|
3405
|
+
|
|
3406
|
+
n2edges = {}
|
|
3407
|
+
n1iden = s_common.ehex(buid)
|
|
3408
|
+
async for verb, n2iden in self.iterNodeEdgesN2(buid):
|
|
3409
|
+
n2edges.setdefault(n2iden, []).append((verb, n1iden))
|
|
3410
|
+
await asyncio.sleep(0)
|
|
3411
|
+
|
|
3412
|
+
n2forms = {}
|
|
3413
|
+
@s_cache.memoize()
|
|
3414
|
+
def getN2Form(n2iden):
|
|
3415
|
+
buid = s_common.uhex(n2iden)
|
|
3416
|
+
if (form := n2forms.get(buid)) is not None: # pragma: no cover
|
|
3417
|
+
return form
|
|
3418
|
+
|
|
3419
|
+
n2sode = self._getStorNode(buid)
|
|
3420
|
+
form = n2sode.get('form')
|
|
3421
|
+
n2forms[buid] = form
|
|
3422
|
+
return form
|
|
3423
|
+
|
|
3424
|
+
changed = False
|
|
3425
|
+
|
|
3426
|
+
async def batchEdits(size=1000):
|
|
3427
|
+
if len(nodeedits) < size:
|
|
3428
|
+
return changed
|
|
3429
|
+
|
|
3430
|
+
_, changes = await self.saveNodeEdits(nodeedits, meta)
|
|
3431
|
+
|
|
3432
|
+
nodeedits.clear()
|
|
3433
|
+
|
|
3434
|
+
if changed: # pragma: no cover
|
|
3435
|
+
return changed
|
|
3436
|
+
|
|
3437
|
+
return bool(changes[0][2])
|
|
3438
|
+
|
|
3439
|
+
for n2iden, edges in n2edges.items():
|
|
3440
|
+
edits = [(EDIT_EDGE_DEL, edge, ()) for edge in edges]
|
|
3441
|
+
nodeedits.append((s_common.uhex(n2iden), getN2Form(n2iden), edits))
|
|
3442
|
+
|
|
3443
|
+
changed = await batchEdits()
|
|
3444
|
+
|
|
3445
|
+
return await batchEdits(size=1)
|
|
3446
|
+
|
|
3355
3447
|
async def delStorNodeProp(self, buid, prop, meta):
|
|
3356
3448
|
pprop = self.core.model.reqProp(prop)
|
|
3357
3449
|
|
|
@@ -3365,6 +3457,48 @@ class Layer(s_nexus.Pusher):
|
|
|
3365
3457
|
_, changes = await self.saveNodeEdits(nodeedits, meta)
|
|
3366
3458
|
return bool(changes[0][2])
|
|
3367
3459
|
|
|
3460
|
+
async def delNodeData(self, buid, meta, name=None):
|
|
3461
|
+
'''
|
|
3462
|
+
Delete nodedata from a node in this layer. If name is not specified, delete all nodedata.
|
|
3463
|
+
'''
|
|
3464
|
+
sode = self._getStorNode(buid)
|
|
3465
|
+
if sode is None: # pragma: no cover
|
|
3466
|
+
return False
|
|
3467
|
+
|
|
3468
|
+
edits = []
|
|
3469
|
+
if name is None:
|
|
3470
|
+
async for item in self.iterNodeData(buid):
|
|
3471
|
+
edits.append((EDIT_NODEDATA_DEL, item, ()))
|
|
3472
|
+
await asyncio.sleep(0)
|
|
3473
|
+
|
|
3474
|
+
elif await self.hasNodeData(buid, name):
|
|
3475
|
+
edits.append((EDIT_NODEDATA_DEL, (name, None), ()))
|
|
3476
|
+
|
|
3477
|
+
if not edits:
|
|
3478
|
+
return False
|
|
3479
|
+
|
|
3480
|
+
nodeedits = [(buid, sode.get('form'), edits)]
|
|
3481
|
+
|
|
3482
|
+
_, changes = await self.saveNodeEdits(nodeedits, meta)
|
|
3483
|
+
return bool(changes[0][2])
|
|
3484
|
+
|
|
3485
|
+
async def delEdge(self, n1buid, verb, n2buid, meta):
|
|
3486
|
+
sode = self._getStorNode(n1buid)
|
|
3487
|
+
if sode is None: # pragma: no cover
|
|
3488
|
+
return False
|
|
3489
|
+
|
|
3490
|
+
if not await self.hasNodeEdge(n1buid, verb, n2buid): # pragma: no cover
|
|
3491
|
+
return False
|
|
3492
|
+
|
|
3493
|
+
edits = [
|
|
3494
|
+
(EDIT_EDGE_DEL, (verb, s_common.ehex(n2buid)), ())
|
|
3495
|
+
]
|
|
3496
|
+
|
|
3497
|
+
nodeedits = [(n1buid, sode.get('form'), edits)]
|
|
3498
|
+
|
|
3499
|
+
_, changes = await self.saveNodeEdits(nodeedits, meta)
|
|
3500
|
+
return bool(changes[0][2])
|
|
3501
|
+
|
|
3368
3502
|
async def storNodeEdits(self, nodeedits, meta):
|
|
3369
3503
|
|
|
3370
3504
|
saveoff, results = await self.saveNodeEdits(nodeedits, meta)
|
|
@@ -18,34 +18,6 @@ import synapse.lib.msgpack as s_msgpack
|
|
|
18
18
|
READSIZE = 16 * s_const.mebibyte
|
|
19
19
|
MAXWRITE = 64 * s_const.mebibyte
|
|
20
20
|
|
|
21
|
-
async def connect(host, port, ssl=None, hostname=None, linkinfo=None):
|
|
22
|
-
'''
|
|
23
|
-
Async connect and return a Link().
|
|
24
|
-
'''
|
|
25
|
-
info = {'host': host, 'port': port, 'ssl': ssl, 'hostname': hostname, 'tls': bool(ssl)}
|
|
26
|
-
if linkinfo is not None:
|
|
27
|
-
info.update(linkinfo)
|
|
28
|
-
|
|
29
|
-
ssl = info.get('ssl')
|
|
30
|
-
hostname = info.get('hostname')
|
|
31
|
-
|
|
32
|
-
reader, writer = await asyncio.open_connection(host, port, ssl=ssl, server_hostname=hostname)
|
|
33
|
-
return await Link.anit(reader, writer, info=info)
|
|
34
|
-
|
|
35
|
-
async def listen(host, port, onlink, ssl=None):
|
|
36
|
-
'''
|
|
37
|
-
Listen on the given host/port and fire onlink(Link).
|
|
38
|
-
|
|
39
|
-
Returns a server object that contains the listening sockets
|
|
40
|
-
'''
|
|
41
|
-
async def onconn(reader, writer):
|
|
42
|
-
info = {'tls': bool(ssl)}
|
|
43
|
-
link = await Link.anit(reader, writer, info=info)
|
|
44
|
-
link.schedCoro(onlink(link))
|
|
45
|
-
|
|
46
|
-
server = await asyncio.start_server(onconn, host=host, port=port, ssl=ssl)
|
|
47
|
-
return server
|
|
48
|
-
|
|
49
21
|
async def unixlisten(path, onlink):
|
|
50
22
|
'''
|
|
51
23
|
Start an PF_UNIX server listening on the given path.
|
|
@@ -247,30 +219,9 @@ class Link(s_base.Base):
|
|
|
247
219
|
offs = 0
|
|
248
220
|
size = len(byts)
|
|
249
221
|
|
|
250
|
-
async with self._txlock:
|
|
251
|
-
|
|
252
|
-
while offs < size:
|
|
253
|
-
|
|
254
|
-
self.writer.write(byts[offs:offs + MAXWRITE])
|
|
255
|
-
offs += MAXWRITE
|
|
256
|
-
|
|
257
|
-
await self.writer.drain()
|
|
258
|
-
|
|
259
|
-
async def tx(self, mesg):
|
|
260
|
-
'''
|
|
261
|
-
Async transmit routine which will wait for writer drain().
|
|
262
|
-
'''
|
|
263
|
-
if self.isfini:
|
|
264
|
-
raise s_exc.IsFini()
|
|
265
|
-
|
|
266
|
-
offs = 0
|
|
267
|
-
byts = s_msgpack.en(mesg)
|
|
268
|
-
size = len(byts)
|
|
269
|
-
|
|
270
222
|
async with self._txlock:
|
|
271
223
|
|
|
272
224
|
try:
|
|
273
|
-
|
|
274
225
|
while offs < size:
|
|
275
226
|
|
|
276
227
|
self.writer.write(byts[offs:offs + MAXWRITE])
|
|
@@ -287,6 +238,16 @@ class Link(s_base.Base):
|
|
|
287
238
|
|
|
288
239
|
raise
|
|
289
240
|
|
|
241
|
+
async def tx(self, mesg):
|
|
242
|
+
'''
|
|
243
|
+
Async transmit routine which will wait for writer drain().
|
|
244
|
+
'''
|
|
245
|
+
if self.isfini:
|
|
246
|
+
raise s_exc.IsFini()
|
|
247
|
+
|
|
248
|
+
byts = await self.pack(mesg)
|
|
249
|
+
await self.send(byts)
|
|
250
|
+
|
|
290
251
|
def txfini(self):
|
|
291
252
|
self.sock.shutdown(1)
|
|
292
253
|
|
|
@@ -353,6 +314,44 @@ class Link(s_base.Base):
|
|
|
353
314
|
|
|
354
315
|
def feed(self, byts):
|
|
355
316
|
'''
|
|
356
|
-
Used by
|
|
317
|
+
Used by rx() to unpack messages from bytes.
|
|
357
318
|
'''
|
|
358
319
|
return self.unpk.feed(byts)
|
|
320
|
+
|
|
321
|
+
async def pack(self, mesg):
|
|
322
|
+
'''
|
|
323
|
+
Used by tx() to pack messages into bytes
|
|
324
|
+
'''
|
|
325
|
+
return s_msgpack.en(mesg)
|
|
326
|
+
|
|
327
|
+
async def connect(host, port, ssl=None, hostname=None, linkinfo=None, linkcls=Link):
|
|
328
|
+
'''
|
|
329
|
+
Async connect and return a <linkcls>.
|
|
330
|
+
'''
|
|
331
|
+
assert issubclass(linkcls, Link)
|
|
332
|
+
|
|
333
|
+
info = {'host': host, 'port': port, 'ssl': ssl, 'hostname': hostname, 'tls': bool(ssl)}
|
|
334
|
+
if linkinfo is not None:
|
|
335
|
+
info.update(linkinfo)
|
|
336
|
+
|
|
337
|
+
ssl = info.get('ssl')
|
|
338
|
+
hostname = info.get('hostname')
|
|
339
|
+
|
|
340
|
+
reader, writer = await asyncio.open_connection(host, port, ssl=ssl, server_hostname=hostname)
|
|
341
|
+
return await linkcls.anit(reader, writer, info=info)
|
|
342
|
+
|
|
343
|
+
async def listen(host, port, onlink, ssl=None, linkcls=Link):
|
|
344
|
+
'''
|
|
345
|
+
Listen on the given host/port and fire onlink(<linkcls>).
|
|
346
|
+
|
|
347
|
+
Returns a server object that contains the listening sockets
|
|
348
|
+
'''
|
|
349
|
+
assert issubclass(linkcls, Link)
|
|
350
|
+
|
|
351
|
+
async def onconn(reader, writer):
|
|
352
|
+
info = {'tls': bool(ssl)}
|
|
353
|
+
link = await linkcls.anit(reader, writer, info=info)
|
|
354
|
+
link.schedCoro(onlink(link))
|
|
355
|
+
|
|
356
|
+
server = await asyncio.start_server(onconn, host=host, port=port, ssl=ssl)
|
|
357
|
+
return server
|
|
@@ -6,16 +6,16 @@ import lark # type: ignore
|
|
|
6
6
|
import regex # type: ignore
|
|
7
7
|
|
|
8
8
|
import synapse.exc as s_exc
|
|
9
|
+
import synapse.data as s_data
|
|
9
10
|
import synapse.common as s_common
|
|
10
11
|
|
|
11
12
|
import synapse.lib.ast as s_ast
|
|
12
13
|
import synapse.lib.coro as s_coro
|
|
13
14
|
import synapse.lib.cache as s_cache
|
|
14
|
-
import synapse.lib.datfile as s_datfile
|
|
15
15
|
|
|
16
16
|
# TL;DR: *rules* are the internal nodes of an abstract syntax tree (AST), *terminals* are the leaves
|
|
17
17
|
|
|
18
|
-
# Note: this file is coupled strongly to synapse/
|
|
18
|
+
# Note: this file is coupled strongly to synapse/data/lark/storm.lark. Any changes to that file will probably require
|
|
19
19
|
# changes here
|
|
20
20
|
|
|
21
21
|
# For easier-to-understand syntax errors
|
|
@@ -475,9 +475,7 @@ class AstConverter(lark.Transformer):
|
|
|
475
475
|
kids[0].reverseLift(astinfo)
|
|
476
476
|
return kids[0]
|
|
477
477
|
|
|
478
|
-
|
|
479
|
-
_grammar = larkf.read().decode()
|
|
480
|
-
|
|
478
|
+
_grammar = s_data.getLark('storm')
|
|
481
479
|
LarkParser = lark.Lark(_grammar, regex=True, start=['query', 'lookup', 'cmdrargs', 'evalvalu', 'search'],
|
|
482
480
|
maybe_placeholders=False, propagate_positions=True, parser='lalr')
|
|
483
481
|
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import os
|
|
2
|
+
import sys
|
|
2
3
|
import copy
|
|
4
|
+
import shlex
|
|
3
5
|
import pprint
|
|
4
6
|
import logging
|
|
7
|
+
import argparse
|
|
5
8
|
import contextlib
|
|
9
|
+
import subprocess
|
|
6
10
|
import collections
|
|
7
11
|
|
|
8
12
|
import vcr
|
|
@@ -25,7 +29,7 @@ import synapse.tools.storm as s_storm
|
|
|
25
29
|
import synapse.tools.genpkg as s_genpkg
|
|
26
30
|
|
|
27
31
|
|
|
28
|
-
re_directive = regex.compile(r'^\.\.\s(storm.*|[^:])::(?:\s(.*)$|$)')
|
|
32
|
+
re_directive = regex.compile(r'^\.\.\s(shell.*|storm.*|[^:])::(?:\s(.*)$|$)')
|
|
29
33
|
|
|
30
34
|
logger = logging.getLogger(__name__)
|
|
31
35
|
|
|
@@ -48,7 +52,6 @@ class OutPutRst(s_output.OutPutStr):
|
|
|
48
52
|
|
|
49
53
|
return s_output.OutPutStr.printf(self, mesg, addnl)
|
|
50
54
|
|
|
51
|
-
|
|
52
55
|
class StormOutput(s_cmds_cortex.StormCmd):
|
|
53
56
|
'''
|
|
54
57
|
Produce standard output from a stream of storm runtime messages.
|
|
@@ -329,6 +332,8 @@ class StormRst(s_base.Base):
|
|
|
329
332
|
self.core = None
|
|
330
333
|
|
|
331
334
|
self.handlers = {
|
|
335
|
+
'shell': self._handleShell,
|
|
336
|
+
'shell-env': self._handleShellEnv,
|
|
332
337
|
'storm': self._handleStorm,
|
|
333
338
|
'storm-cli': self._handleStormCli,
|
|
334
339
|
'storm-pkg': self._handleStormPkg,
|
|
@@ -596,6 +601,64 @@ class StormRst(s_base.Base):
|
|
|
596
601
|
raise s_exc.NoSuchCtor(mesg=f'Failed to get callback "{text}"', ctor=text)
|
|
597
602
|
self.context['storm-vcr-callback'] = cb
|
|
598
603
|
|
|
604
|
+
async def _handleShell(self, text):
|
|
605
|
+
'''
|
|
606
|
+
Execute shell with the supplied arguments.
|
|
607
|
+
'''
|
|
608
|
+
parser = argparse.ArgumentParser(add_help=False)
|
|
609
|
+
parser.add_argument('--include-stderr', action='store_true', help='Include stderr in output.')
|
|
610
|
+
parser.add_argument('--hide-query', action='store_true', help='Do not include the command in the output.')
|
|
611
|
+
parser.add_argument('--fail-ok', action='store_true', help='Non-zero return values are non-fatal.')
|
|
612
|
+
opts, args = parser.parse_known_args(shlex.split(text))
|
|
613
|
+
|
|
614
|
+
# Remove any command line arguments
|
|
615
|
+
query = text
|
|
616
|
+
query = query.replace('--include-stderr', '')
|
|
617
|
+
query = query.replace('--hide-query', '')
|
|
618
|
+
query = query.replace('--fail-ok', '')
|
|
619
|
+
query = query.strip()
|
|
620
|
+
|
|
621
|
+
env = self.context.get('shell-env')
|
|
622
|
+
|
|
623
|
+
stderr = None
|
|
624
|
+
if opts.include_stderr:
|
|
625
|
+
stderr = subprocess.STDOUT
|
|
626
|
+
|
|
627
|
+
proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=stderr, env=env, text=True)
|
|
628
|
+
if proc.returncode != 0 and not opts.fail_ok:
|
|
629
|
+
mesg = f'Error when executing shell directive: {text} (rv: {proc.returncode})'
|
|
630
|
+
raise s_exc.SynErr(mesg=mesg)
|
|
631
|
+
|
|
632
|
+
self._printf('::\n\n')
|
|
633
|
+
|
|
634
|
+
if not opts.hide_query:
|
|
635
|
+
self._printf(f' {query}\n\n')
|
|
636
|
+
|
|
637
|
+
for line in proc.stdout.splitlines():
|
|
638
|
+
self._printf(f' {line}\n')
|
|
639
|
+
|
|
640
|
+
self._printf('\n\n')
|
|
641
|
+
|
|
642
|
+
async def _handleShellEnv(self, text):
|
|
643
|
+
'''
|
|
644
|
+
Env to use in subsequent shell queries.
|
|
645
|
+
|
|
646
|
+
Args:
|
|
647
|
+
text (str): [KEY=VALUE ...]
|
|
648
|
+
Note: No arguments will reset the shell environment.
|
|
649
|
+
'''
|
|
650
|
+
text = text.strip()
|
|
651
|
+
if not text:
|
|
652
|
+
return self.context.pop('shell-env')
|
|
653
|
+
|
|
654
|
+
env = {}
|
|
655
|
+
|
|
656
|
+
for item in text.split(' '):
|
|
657
|
+
key, val = item.split('=')
|
|
658
|
+
env[key] = val
|
|
659
|
+
|
|
660
|
+
self.context['shell-env'] = env
|
|
661
|
+
|
|
599
662
|
async def _readline(self, line):
|
|
600
663
|
|
|
601
664
|
match = re_directive.match(line)
|
|
@@ -1123,22 +1123,30 @@ class Snap(s_base.Base):
|
|
|
1123
1123
|
mesg = f'No property named "{full}".'
|
|
1124
1124
|
raise s_exc.NoSuchProp(mesg=mesg)
|
|
1125
1125
|
|
|
1126
|
-
if isinstance(valu, dict) and isinstance(prop.type, s_types.Guid) and cmpr
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
return
|
|
1126
|
+
if isinstance(valu, dict) and isinstance(prop.type, s_types.Guid) and cmpr in ('=', '?='):
|
|
1127
|
+
excignore = ()
|
|
1128
|
+
if cmpr == '?=':
|
|
1129
|
+
excignore = (s_exc.BadTypeValu,)
|
|
1131
1130
|
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1131
|
+
try:
|
|
1132
|
+
if prop.isform:
|
|
1133
|
+
if (node := await self._getGuidNodeByDict(prop, valu)) is not None:
|
|
1134
|
+
yield node
|
|
1135
|
+
return
|
|
1136
1136
|
|
|
1137
|
-
|
|
1138
|
-
|
|
1137
|
+
fname = prop.type.name
|
|
1138
|
+
if (form := prop.modl.form(fname)) is None:
|
|
1139
|
+
mesg = f'The property "{full}" type "{fname}" is not a form and cannot be lifted using a dictionary.'
|
|
1140
|
+
raise s_exc.BadTypeValu(mesg=mesg)
|
|
1139
1141
|
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
+
if (node := await self._getGuidNodeByDict(form, valu)) is None:
|
|
1143
|
+
return
|
|
1144
|
+
|
|
1145
|
+
norm = False
|
|
1146
|
+
valu = node.ndef[1]
|
|
1147
|
+
|
|
1148
|
+
except excignore:
|
|
1149
|
+
return
|
|
1142
1150
|
|
|
1143
1151
|
if norm:
|
|
1144
1152
|
cmprvals = prop.type.getStorCmprs(cmpr, valu)
|
|
@@ -90,7 +90,7 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
90
90
|
For APIs that accept an ssl_opts argument, the dictionary may contain the following values::
|
|
91
91
|
|
|
92
92
|
({
|
|
93
|
-
'verify': <
|
|
93
|
+
'verify': <boolean> - Perform SSL/TLS verification. Is overridden by the ssl_verify argument.
|
|
94
94
|
'client_cert': <str> - PEM encoded full chain certificate for use in mTLS.
|
|
95
95
|
'client_key': <str> - PEM encoded key for use in mTLS. Alternatively, can be included in client_cert.
|
|
96
96
|
'ca_cert': <str> - A PEM encoded full chain CA certificate for use when verifying the request.
|
|
@@ -116,9 +116,9 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
116
116
|
'default': None},
|
|
117
117
|
{'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
|
|
118
118
|
'default': 300},
|
|
119
|
-
{'name': 'allow_redirects', 'type': '
|
|
119
|
+
{'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to false, do not follow redirects.',
|
|
120
120
|
'default': True},
|
|
121
|
-
{'name': 'proxy', 'type': ['
|
|
121
|
+
{'name': 'proxy', 'type': ['boolean', 'str'],
|
|
122
122
|
'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
|
|
123
123
|
{'name': 'ssl_opts', 'type': 'dict',
|
|
124
124
|
'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
|
|
@@ -141,7 +141,7 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
141
141
|
'default': None},
|
|
142
142
|
{'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
|
|
143
143
|
'default': 300},
|
|
144
|
-
{'name': 'allow_redirects', 'type': '
|
|
144
|
+
{'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to false, do not follow redirects.',
|
|
145
145
|
'default': True},
|
|
146
146
|
{'name': 'fields', 'type': 'list',
|
|
147
147
|
'desc': 'A list of info dictionaries containing the name, value or sha256, '
|
|
@@ -150,7 +150,7 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
150
150
|
'and the corresponding file will be uploaded as the value for '
|
|
151
151
|
'the field.',
|
|
152
152
|
'default': None},
|
|
153
|
-
{'name': 'proxy', 'type': ['
|
|
153
|
+
{'name': 'proxy', 'type': ['boolean', 'str'],
|
|
154
154
|
'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
|
|
155
155
|
{'name': 'ssl_opts', 'type': 'dict',
|
|
156
156
|
'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
|
|
@@ -170,9 +170,9 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
170
170
|
'default': None},
|
|
171
171
|
{'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
|
|
172
172
|
'default': 300, },
|
|
173
|
-
{'name': 'allow_redirects', 'type': '
|
|
173
|
+
{'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to true, follow redirects.',
|
|
174
174
|
'default': False},
|
|
175
|
-
{'name': 'proxy', 'type': ['
|
|
175
|
+
{'name': 'proxy', 'type': ['boolean', 'str'],
|
|
176
176
|
'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
|
|
177
177
|
{'name': 'ssl_opts', 'type': 'dict',
|
|
178
178
|
'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
|
|
@@ -196,7 +196,7 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
196
196
|
'default': None},
|
|
197
197
|
{'name': 'timeout', 'type': 'int', 'desc': 'Total timeout for the request in seconds.',
|
|
198
198
|
'default': 300},
|
|
199
|
-
{'name': 'allow_redirects', 'type': '
|
|
199
|
+
{'name': 'allow_redirects', 'type': 'boolean', 'desc': 'If set to false, do not follow redirects.',
|
|
200
200
|
'default': True},
|
|
201
201
|
{'name': 'fields', 'type': 'list',
|
|
202
202
|
'desc': 'A list of info dictionaries containing the name, value or sha256, '
|
|
@@ -205,7 +205,7 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
205
205
|
'and the corresponding file will be uploaded as the value for '
|
|
206
206
|
'the field.',
|
|
207
207
|
'default': None},
|
|
208
|
-
{'name': 'proxy', 'type': ['
|
|
208
|
+
{'name': 'proxy', 'type': ['boolean', 'str'],
|
|
209
209
|
'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
|
|
210
210
|
{'name': 'ssl_opts', 'type': 'dict',
|
|
211
211
|
'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
|
|
@@ -226,7 +226,7 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
226
226
|
'default': 300},
|
|
227
227
|
{'name': 'params', 'type': 'dict', 'desc': 'Optional parameters which may be passed to the connection request.',
|
|
228
228
|
'default': None},
|
|
229
|
-
{'name': 'proxy', 'type': ['
|
|
229
|
+
{'name': 'proxy', 'type': ['boolean', 'str'],
|
|
230
230
|
'desc': 'Configure proxy usage. See $lib.inet.http help for additional details.', 'default': True},
|
|
231
231
|
{'name': 'ssl_opts', 'type': 'dict',
|
|
232
232
|
'desc': 'Optional SSL/TLS options. See $lib.inet.http help for additional details.',
|
|
@@ -50,7 +50,7 @@ class AhaLib(s_stormtypes.Lib):
|
|
|
50
50
|
'desc': 'The AHA service information dictionary, or ``(null))``.', }}},
|
|
51
51
|
{'name': 'list', 'desc': 'Enumerate all of the AHA services.',
|
|
52
52
|
'type': {'type': 'function', '_funcname': '_methAhaList', 'args': (),
|
|
53
|
-
'returns': {'name': '
|
|
53
|
+
'returns': {'name': 'yields', 'type': 'list',
|
|
54
54
|
'desc': 'The AHA service dictionaries.', }}},
|
|
55
55
|
{'name': 'callPeerApi', 'desc': '''Call an API on all peers (leader and mirrors) of an AHA service and yield the responses from each.
|
|
56
56
|
|
|
@@ -91,7 +91,7 @@ class AhaLib(s_stormtypes.Lib):
|
|
|
91
91
|
'''},
|
|
92
92
|
),
|
|
93
93
|
'returns': {'name': 'yields', 'type': 'list',
|
|
94
|
-
|
|
94
|
+
'desc': 'Yields the results of the API calls as tuples of (svcname, (ok, info)).', }}},
|
|
95
95
|
{'name': 'callPeerGenr', 'desc': '''Call a generator API on all peers (leader and mirrors) of an AHA service and yield the responses from each.
|
|
96
96
|
|
|
97
97
|
Examples:
|
|
@@ -124,7 +124,7 @@ class AhaLib(s_stormtypes.Lib):
|
|
|
124
124
|
'''},
|
|
125
125
|
),
|
|
126
126
|
'returns': {'name': 'yields', 'type': 'list',
|
|
127
|
-
|
|
127
|
+
'desc': 'Yields the results of the API calls as tuples containing (svcname, (ok, info)).', }}}
|
|
128
128
|
|
|
129
129
|
)
|
|
130
130
|
_storm_lib_path = ('aha',)
|