synapse 2.165.0__tar.gz → 2.166.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.165.0/synapse.egg-info → synapse-2.166.0}/PKG-INFO +2 -2
- {synapse-2.165.0 → synapse-2.166.0}/pyproject.toml +2 -2
- {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/cortex.py +1 -6
- {synapse-2.165.0 → synapse-2.166.0}/synapse/common.py +6 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/cortex.py +73 -56
- {synapse-2.165.0 → synapse-2.166.0}/synapse/datamodel.py +32 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/agenda.py +81 -51
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/ast.py +21 -23
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/base.py +0 -6
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cell.py +13 -22
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/httpapi.py +1 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/nexus.py +3 -2
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/schemas.py +2 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/snap.py +50 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/storm.py +19 -17
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/aha.py +4 -1
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/auth.py +11 -4
- synapse-2.166.0/synapse/lib/stormlib/cache.py +202 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/cortex.py +69 -7
- synapse-2.166.0/synapse/lib/stormlib/spooled.py +109 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormtypes.py +43 -15
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/trigger.py +10 -12
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/types.py +1 -1
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/version.py +2 -2
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/view.py +12 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/inet.py +74 -2
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/orgs.py +52 -8
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/person.py +30 -11
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/risk.py +44 -3
- {synapse-2.165.0 → synapse-2.166.0}/synapse/telepath.py +114 -32
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cortex.py +40 -6
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_datamodel.py +22 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_agenda.py +8 -1
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_aha.py +18 -4
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_storm.py +95 -4
- synapse-2.166.0/synapse/tests/test_lib_stormlib_cache.py +272 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_cortex.py +71 -0
- synapse-2.166.0/synapse/tests/test_lib_stormlib_spooled.py +190 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormtypes.py +27 -4
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_inet.py +67 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_risk.py +6 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_telepath.py +30 -7
- synapse-2.166.0/synapse/tests/test_tools_modrole.py +142 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_moduser.py +105 -0
- synapse-2.166.0/synapse/tools/modrole.py +119 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/moduser.py +78 -10
- {synapse-2.165.0 → synapse-2.166.0/synapse.egg-info}/PKG-INFO +2 -2
- {synapse-2.165.0 → synapse-2.166.0}/synapse.egg-info/SOURCES.txt +4 -2
- {synapse-2.165.0 → synapse-2.166.0}/synapse.egg-info/requires.txt +1 -1
- synapse-2.165.0/synapse/lib/provenance.py +0 -111
- synapse-2.165.0/synapse/tests/test_lib_provenance.py +0 -37
- synapse-2.165.0/synapse/tests/test_tools_modrole.py +0 -61
- synapse-2.165.0/synapse/tools/modrole.py +0 -67
- {synapse-2.165.0 → synapse-2.166.0}/LICENSE +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/README.rst +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/setup.cfg +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/axon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/cells.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/cryotank.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/daemon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.165.0 → synapse-2.166.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.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.165.0 → synapse-2.166.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.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.165.0 → synapse-2.166.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.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.165.0 → synapse-2.166.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.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/exc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/glob.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/aha.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/boss.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cache.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/chop.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cli.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/config.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/const.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/coro.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/gis.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/health.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hive.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/hiveauth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/interval.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/jupyter.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/layer.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/link.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/module.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/modules.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/node.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/output.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/parser.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/queue.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/scope.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/share.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/storm.lark +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/task.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/threads.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/time.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/mindmeld.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/auth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/base.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/belief.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/biz.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/crypto.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/dns.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/economic.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/files.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/geopol.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/geospace.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/infotech.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/language.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/material.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/media.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/proj.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/science.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/syn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/telco.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/models/transport.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/aha.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/axon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/cell.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_hiveauth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_jupyter.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tests/utils.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/backup.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/feed.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/guid.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/promote.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/reload.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/tools/storm.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.165.0 → synapse-2.166.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.165.0 → synapse-2.166.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.
|
|
3
|
+
Version: 2.166.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
|
|
@@ -36,7 +36,7 @@ Requires-Dist: lark==1.1.9
|
|
|
36
36
|
Requires-Dist: Pygments<2.18.0,>=2.7.4
|
|
37
37
|
Requires-Dist: packaging<24.0,>=20.0
|
|
38
38
|
Requires-Dist: fastjsonschema<2.20.0,>=2.18.0
|
|
39
|
-
Requires-Dist: stix2-validator<
|
|
39
|
+
Requires-Dist: stix2-validator<3.2.0,>=3.0.0
|
|
40
40
|
Requires-Dist: vcrpy<5.2.0,>=4.3.1
|
|
41
41
|
Requires-Dist: base58<2.2.0,>=2.1.0
|
|
42
42
|
Requires-Dist: python-bitcoinlib<0.13.0,>=0.11.0
|
|
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = 'synapse'
|
|
7
|
-
version = '2.
|
|
7
|
+
version = '2.166.0'
|
|
8
8
|
authors = [
|
|
9
9
|
{ name = 'The Vertex Project LLC', email = 'root@vertex.link'},
|
|
10
10
|
]
|
|
@@ -40,7 +40,7 @@ dependencies = [
|
|
|
40
40
|
'Pygments>=2.7.4,<2.18.0',
|
|
41
41
|
'packaging>=20.0,<24.0',
|
|
42
42
|
'fastjsonschema>=2.18.0,<2.20.0',
|
|
43
|
-
'stix2-validator>=3.0.0,<
|
|
43
|
+
'stix2-validator>=3.0.0,<3.2.0',
|
|
44
44
|
'vcrpy>=4.3.1,<5.2.0',
|
|
45
45
|
'base58>=2.1.0,<2.2.0',
|
|
46
46
|
'python-bitcoinlib>=0.11.0,<0.13.0',
|
|
@@ -212,7 +212,7 @@ class StormCmd(s_cli.Cmd):
|
|
|
212
212
|
* nodeedits (default),
|
|
213
213
|
* count (just counts of nodeedits), or
|
|
214
214
|
* none (no such messages emitted).
|
|
215
|
-
--show-prov:
|
|
215
|
+
--show-prov: Deprecated. This no longer does anything.
|
|
216
216
|
--raw: Print the nodes in their raw format. This overrides --hide-tags and --hide-props.
|
|
217
217
|
--debug: Display cmd debug information along with nodes in raw format. This overrides other display arguments.
|
|
218
218
|
--path: Get path information about returned nodes.
|
|
@@ -256,7 +256,6 @@ class StormCmd(s_cli.Cmd):
|
|
|
256
256
|
'err': self._onErr,
|
|
257
257
|
'node:edits': self._onNodeEdits,
|
|
258
258
|
'node:edits:count': self._onNodeEditsCount,
|
|
259
|
-
'prov:new': self._onProvNew, # TODO remove in 3.0.0
|
|
260
259
|
}
|
|
261
260
|
self._indented = False
|
|
262
261
|
|
|
@@ -281,10 +280,6 @@ class StormCmd(s_cli.Cmd):
|
|
|
281
280
|
s_cli.Cmd.printf(self, '.' * count, addnl=False, color=NODEEDIT_COLOR)
|
|
282
281
|
self._indented = True
|
|
283
282
|
|
|
284
|
-
def _onProvNew(self, mesg, opts):
|
|
285
|
-
if opts.get('show-prov'):
|
|
286
|
-
self.printf(repr(mesg), color=PROVNEW_COLOR)
|
|
287
|
-
|
|
288
283
|
def _printNodeProp(self, name, valu):
|
|
289
284
|
self.printf(f' {name} = {valu}')
|
|
290
285
|
|
|
@@ -973,6 +973,12 @@ def unjsonsafe_nodeedits(nodeedits):
|
|
|
973
973
|
|
|
974
974
|
return retn
|
|
975
975
|
|
|
976
|
+
def reprauthrule(rule):
|
|
977
|
+
text = '.'.join(rule[1])
|
|
978
|
+
if not rule[0]:
|
|
979
|
+
text = '!' + text
|
|
980
|
+
return text
|
|
981
|
+
|
|
976
982
|
def reqJsonSafeStrict(item):
|
|
977
983
|
'''
|
|
978
984
|
Require the item to be safe to serialize to JSON without type coercion issues.
|
|
@@ -53,7 +53,6 @@ import synapse.lib.crypto.rsa as s_rsa
|
|
|
53
53
|
import synapse.lib.stormhttp as s_stormhttp # NOQA
|
|
54
54
|
import synapse.lib.stormwhois as s_stormwhois # NOQA
|
|
55
55
|
|
|
56
|
-
import synapse.lib.provenance as s_provenance
|
|
57
56
|
import synapse.lib.stormtypes as s_stormtypes
|
|
58
57
|
|
|
59
58
|
import synapse.lib.stormlib.aha as s_stormlib_aha # NOQA
|
|
@@ -74,6 +73,7 @@ import synapse.lib.stormlib.smtp as s_stormlib_smtp # NOQA
|
|
|
74
73
|
import synapse.lib.stormlib.stix as s_stormlib_stix # NOQA
|
|
75
74
|
import synapse.lib.stormlib.yaml as s_stormlib_yaml # NOQA
|
|
76
75
|
import synapse.lib.stormlib.basex as s_stormlib_basex # NOQA
|
|
76
|
+
import synapse.lib.stormlib.cache as s_stormlib_cache # NOQA
|
|
77
77
|
import synapse.lib.stormlib.graph as s_stormlib_graph # NOQA
|
|
78
78
|
import synapse.lib.stormlib.iters as s_stormlib_iters # NOQA
|
|
79
79
|
import synapse.lib.stormlib.macro as s_stormlib_macro
|
|
@@ -89,6 +89,7 @@ import synapse.lib.stormlib.random as s_stormlib_random # NOQA
|
|
|
89
89
|
import synapse.lib.stormlib.scrape as s_stormlib_scrape # NOQA
|
|
90
90
|
import synapse.lib.stormlib.infosec as s_stormlib_infosec # NOQA
|
|
91
91
|
import synapse.lib.stormlib.project as s_stormlib_project # NOQA
|
|
92
|
+
import synapse.lib.stormlib.spooled as s_stormlib_spooled # NOQA
|
|
92
93
|
import synapse.lib.stormlib.version as s_stormlib_version # NOQA
|
|
93
94
|
import synapse.lib.stormlib.easyperm as s_stormlib_easyperm # NOQA
|
|
94
95
|
import synapse.lib.stormlib.ethereum as s_stormlib_ethereum # NOQA
|
|
@@ -286,10 +287,8 @@ class CoreApi(s_cell.CellApi):
|
|
|
286
287
|
s_common.deprecated('CoreApi.addNode')
|
|
287
288
|
async with await self.cell.snap(user=self.user) as snap:
|
|
288
289
|
self.user.confirm(('node', 'add', form), gateiden=snap.wlyr.iden)
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
node = await snap.addNode(form, valu, props=props)
|
|
292
|
-
return node.pack()
|
|
290
|
+
node = await snap.addNode(form, valu, props=props)
|
|
291
|
+
return node.pack()
|
|
293
292
|
|
|
294
293
|
async def addNodes(self, nodes):
|
|
295
294
|
'''
|
|
@@ -317,16 +316,14 @@ class CoreApi(s_cell.CellApi):
|
|
|
317
316
|
done[formname] = True
|
|
318
317
|
|
|
319
318
|
async with await self.cell.snap(user=self.user) as snap:
|
|
320
|
-
with s_provenance.claim('coreapi', meth='node:add', user=snap.user.iden):
|
|
321
319
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
async for node in snap.addNodes(nodes):
|
|
320
|
+
snap.strict = False
|
|
321
|
+
async for node in snap.addNodes(nodes):
|
|
325
322
|
|
|
326
|
-
|
|
327
|
-
|
|
323
|
+
if node is not None:
|
|
324
|
+
node = node.pack()
|
|
328
325
|
|
|
329
|
-
|
|
326
|
+
yield node
|
|
330
327
|
|
|
331
328
|
async def getFeedFuncs(self):
|
|
332
329
|
'''
|
|
@@ -361,9 +358,8 @@ class CoreApi(s_cell.CellApi):
|
|
|
361
358
|
})
|
|
362
359
|
|
|
363
360
|
async with await self.cell.snap(user=self.user, view=view) as snap:
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
await snap.addFeedData(name, items)
|
|
361
|
+
snap.strict = False
|
|
362
|
+
await snap.addFeedData(name, items)
|
|
367
363
|
|
|
368
364
|
async def count(self, text, opts=None):
|
|
369
365
|
'''
|
|
@@ -1002,7 +998,16 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1002
998
|
'multiqueue': self.multiqueue,
|
|
1003
999
|
})
|
|
1004
1000
|
|
|
1005
|
-
|
|
1001
|
+
# TODO - Remove this in 3.0.0
|
|
1002
|
+
ag = await self.auth.addAuthGate('cortex', 'cortex')
|
|
1003
|
+
for (useriden, user) in ag.gateusers.items():
|
|
1004
|
+
mesg = f'User {useriden} ({user.name}) has a rule on the "cortex" authgate. This authgate is not used ' \
|
|
1005
|
+
f'for permission checks and will be removed in Synapse v3.0.0.'
|
|
1006
|
+
logger.warning(mesg, extra=await self.getLogExtra(user=useriden, username=user.name))
|
|
1007
|
+
for (roleiden, role) in ag.gateroles.items():
|
|
1008
|
+
mesg = f'Role {roleiden} ({role.name}) has a rule on the "cortex" authgate. This authgate is not used ' \
|
|
1009
|
+
f'for permission checks and will be removed in Synapse v3.0.0.'
|
|
1010
|
+
logger.warning(mesg, extra=await self.getLogExtra(role=roleiden, rolename=role.name))
|
|
1006
1011
|
|
|
1007
1012
|
self._initVaults()
|
|
1008
1013
|
|
|
@@ -1447,6 +1452,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1447
1452
|
async def initServiceActive(self):
|
|
1448
1453
|
|
|
1449
1454
|
await self.stormdmons.start()
|
|
1455
|
+
await self.agenda.clearRunningStatus()
|
|
1450
1456
|
|
|
1451
1457
|
for view in self.views.values():
|
|
1452
1458
|
await view.initTrigTask()
|
|
@@ -1472,19 +1478,28 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1472
1478
|
|
|
1473
1479
|
async def initStormPool(self):
|
|
1474
1480
|
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1481
|
+
try:
|
|
1482
|
+
|
|
1483
|
+
byts = self.slab.get(b'storm:pool', db='cell:conf')
|
|
1484
|
+
if byts is None:
|
|
1485
|
+
return
|
|
1486
|
+
|
|
1487
|
+
url, opts = s_msgpack.un(byts)
|
|
1478
1488
|
|
|
1479
|
-
|
|
1489
|
+
self.stormpoolurl = url
|
|
1490
|
+
self.stormpoolopts = opts
|
|
1480
1491
|
|
|
1481
|
-
|
|
1482
|
-
|
|
1492
|
+
async def onlink(proxy, urlinfo):
|
|
1493
|
+
_url = s_urlhelp.sanitizeUrl(s_telepath.zipurl(urlinfo))
|
|
1494
|
+
logger.debug(f'Stormpool client connected to {_url}')
|
|
1483
1495
|
|
|
1484
|
-
|
|
1496
|
+
self.stormpool = await s_telepath.open(url, onlink=onlink)
|
|
1485
1497
|
|
|
1486
|
-
|
|
1487
|
-
|
|
1498
|
+
# make this one a fini weakref vs the fini() handler
|
|
1499
|
+
self.onfini(self.stormpool)
|
|
1500
|
+
|
|
1501
|
+
except Exception as e: # pragma: no cover
|
|
1502
|
+
logger.exception(f'Error starting stormpool, it will not be available: {e}')
|
|
1488
1503
|
|
|
1489
1504
|
async def finiStormPool(self):
|
|
1490
1505
|
|
|
@@ -3478,14 +3493,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3478
3493
|
buid = s_common.uhex(iden)
|
|
3479
3494
|
async with await self.snap(user=user) as snap:
|
|
3480
3495
|
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
if node is None:
|
|
3485
|
-
raise s_exc.NoSuchIden(iden=iden)
|
|
3496
|
+
node = await snap.getNodeByBuid(buid)
|
|
3497
|
+
if node is None:
|
|
3498
|
+
raise s_exc.NoSuchIden(iden=iden)
|
|
3486
3499
|
|
|
3487
|
-
|
|
3488
|
-
|
|
3500
|
+
await node.addTag(tag, valu=valu)
|
|
3501
|
+
return node.pack()
|
|
3489
3502
|
|
|
3490
3503
|
async def addNode(self, user, form, valu, props=None):
|
|
3491
3504
|
|
|
@@ -3505,14 +3518,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3505
3518
|
|
|
3506
3519
|
async with await self.snap(user=user) as snap:
|
|
3507
3520
|
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
if node is None:
|
|
3512
|
-
raise s_exc.NoSuchIden(iden=iden)
|
|
3521
|
+
node = await snap.getNodeByBuid(buid)
|
|
3522
|
+
if node is None:
|
|
3523
|
+
raise s_exc.NoSuchIden(iden=iden)
|
|
3513
3524
|
|
|
3514
|
-
|
|
3515
|
-
|
|
3525
|
+
await node.delTag(tag)
|
|
3526
|
+
return node.pack()
|
|
3516
3527
|
|
|
3517
3528
|
async def _onCoreFini(self):
|
|
3518
3529
|
'''
|
|
@@ -4130,7 +4141,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4130
4141
|
@s_nexus.Pusher.onPushAuto('http:api:mod')
|
|
4131
4142
|
async def modHttpExtApi(self, iden, name, valu):
|
|
4132
4143
|
# Created, Creator, Updated are not mutable
|
|
4133
|
-
if name in ('name', 'desc', 'runas', 'methods', 'authenticated', 'perms', 'readonly', 'vars'):
|
|
4144
|
+
if name in ('name', 'desc', 'runas', 'methods', 'authenticated', 'pool', 'perms', 'readonly', 'vars'):
|
|
4134
4145
|
# Schema takes care of these values
|
|
4135
4146
|
pass
|
|
4136
4147
|
elif name == 'owner':
|
|
@@ -5280,12 +5291,14 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5280
5291
|
return mirropts
|
|
5281
5292
|
|
|
5282
5293
|
async def _getMirrorProxy(self):
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5294
|
+
|
|
5295
|
+
if self.stormpool is None: # pragma: no cover
|
|
5296
|
+
return None
|
|
5297
|
+
|
|
5298
|
+
if self.stormpool.size() == 0:
|
|
5299
|
+
logger.warning('Storm query mirror pool is empty, running query locally.')
|
|
5286
5300
|
return None
|
|
5287
5301
|
|
|
5288
|
-
proxy = None
|
|
5289
5302
|
try:
|
|
5290
5303
|
timeout = self.stormpoolopts.get('timeout:connection')
|
|
5291
5304
|
proxy = await self.stormpool.proxy(timeout=timeout)
|
|
@@ -5293,10 +5306,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5293
5306
|
if proxyname is not None and proxyname == self.ahasvcname:
|
|
5294
5307
|
# we are part of the pool and were selected. Convert to local use.
|
|
5295
5308
|
return None
|
|
5309
|
+
|
|
5310
|
+
return proxy
|
|
5311
|
+
|
|
5296
5312
|
except (TimeoutError, s_exc.IsFini):
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
return proxy
|
|
5313
|
+
logger.warning('Timeout waiting for pool mirror, running query locally.')
|
|
5314
|
+
return None
|
|
5300
5315
|
|
|
5301
5316
|
async def storm(self, text, opts=None):
|
|
5302
5317
|
|
|
@@ -5767,16 +5782,15 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5767
5782
|
|
|
5768
5783
|
async def _initCoreMods(self):
|
|
5769
5784
|
|
|
5770
|
-
|
|
5771
|
-
for ctor, modu in list(self.modules.items()):
|
|
5785
|
+
for ctor, modu in list(self.modules.items()):
|
|
5772
5786
|
|
|
5773
|
-
|
|
5774
|
-
|
|
5775
|
-
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5787
|
+
try:
|
|
5788
|
+
await s_coro.ornot(modu.initCoreModule)
|
|
5789
|
+
except asyncio.CancelledError: # pragma: no cover TODO: remove once >= py 3.8 only
|
|
5790
|
+
raise
|
|
5791
|
+
except Exception:
|
|
5792
|
+
logger.exception(f'module initCoreModule failed: {ctor}')
|
|
5793
|
+
self.modules.pop(ctor, None)
|
|
5780
5794
|
|
|
5781
5795
|
def _loadCoreModule(self, ctor, conf=None):
|
|
5782
5796
|
|
|
@@ -6033,6 +6047,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
6033
6047
|
elif name == 'doc':
|
|
6034
6048
|
appt.doc = str(valu)
|
|
6035
6049
|
|
|
6050
|
+
elif name == 'pool':
|
|
6051
|
+
appt.pool = bool(valu)
|
|
6052
|
+
|
|
6036
6053
|
else:
|
|
6037
6054
|
mesg = f'editCronJob name {name} is not supported for editing.'
|
|
6038
6055
|
raise s_exc.BadArg(mesg=mesg)
|
|
@@ -873,10 +873,42 @@ class Model:
|
|
|
873
873
|
for ifname in form.type.info.get('interfaces', ()):
|
|
874
874
|
self._addFormIface(form, ifname)
|
|
875
875
|
|
|
876
|
+
self._checkFormDisplay(form)
|
|
877
|
+
|
|
876
878
|
self.formprefixcache.clear()
|
|
877
879
|
|
|
878
880
|
return form
|
|
879
881
|
|
|
882
|
+
def _checkFormDisplay(self, form):
|
|
883
|
+
|
|
884
|
+
formtype = self.types.get(form.full)
|
|
885
|
+
|
|
886
|
+
display = formtype.info.get('display')
|
|
887
|
+
if display is None:
|
|
888
|
+
return
|
|
889
|
+
|
|
890
|
+
for column in display.get('columns', ()):
|
|
891
|
+
coltype = column.get('type')
|
|
892
|
+
colopts = column.get('opts')
|
|
893
|
+
|
|
894
|
+
if coltype == 'prop':
|
|
895
|
+
curf = form
|
|
896
|
+
propname = colopts.get('name')
|
|
897
|
+
parts = propname.split('::')
|
|
898
|
+
|
|
899
|
+
for partname in parts:
|
|
900
|
+
prop = curf.prop(partname)
|
|
901
|
+
if prop is None:
|
|
902
|
+
mesg = (f'Form {form.name} defines prop column {propname}'
|
|
903
|
+
f' but {curf.full} has no property named {partname}.')
|
|
904
|
+
raise s_exc.BadFormDef(mesg=mesg)
|
|
905
|
+
|
|
906
|
+
curf = self.form(prop.type.name)
|
|
907
|
+
|
|
908
|
+
else:
|
|
909
|
+
mesg = f'Form {form.name} defines column with invalid type ({coltype}).'
|
|
910
|
+
raise s_exc.BadFormDef(mesg=mesg)
|
|
911
|
+
|
|
880
912
|
def delForm(self, formname):
|
|
881
913
|
|
|
882
914
|
form = self.forms.get(formname)
|
|
@@ -16,7 +16,6 @@ import synapse.common as s_common
|
|
|
16
16
|
|
|
17
17
|
import synapse.lib.base as s_base
|
|
18
18
|
import synapse.lib.coro as s_coro
|
|
19
|
-
import synapse.lib.provenance as s_provenance
|
|
20
19
|
|
|
21
20
|
# Agenda: manages running one-shot and periodic tasks in the future ("appointments")
|
|
22
21
|
|
|
@@ -259,6 +258,7 @@ class _Appt:
|
|
|
259
258
|
_synced_attrs = {
|
|
260
259
|
'doc',
|
|
261
260
|
'name',
|
|
261
|
+
'pool',
|
|
262
262
|
'created',
|
|
263
263
|
'enabled',
|
|
264
264
|
'errcount',
|
|
@@ -271,10 +271,11 @@ class _Appt:
|
|
|
271
271
|
'lastfinishtime',
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
-
def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None):
|
|
274
|
+
def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None, pool=False):
|
|
275
275
|
self.doc = ''
|
|
276
276
|
self.name = ''
|
|
277
277
|
self.stor = stor
|
|
278
|
+
self.pool = pool
|
|
278
279
|
self.iden = iden
|
|
279
280
|
self.recur = recur # does this appointment repeat
|
|
280
281
|
self.indx = indx # incremented for each appt added ever. Used for nexttime tiebreaking for stable ordering
|
|
@@ -339,6 +340,7 @@ class _Appt:
|
|
|
339
340
|
'ver': 1,
|
|
340
341
|
'doc': self.doc,
|
|
341
342
|
'name': self.name,
|
|
343
|
+
'pool': self.pool,
|
|
342
344
|
'enabled': self.enabled,
|
|
343
345
|
'recur': self.recur,
|
|
344
346
|
'iden': self.iden,
|
|
@@ -366,6 +368,7 @@ class _Appt:
|
|
|
366
368
|
appt = cls(stor, val['iden'], val['recur'], val['indx'], val['query'], val['creator'], recs, nexttime=val['nexttime'], view=val.get('view'))
|
|
367
369
|
appt.doc = val.get('doc', '')
|
|
368
370
|
appt.name = val.get('name', '')
|
|
371
|
+
appt.pool = val.get('pool', False)
|
|
369
372
|
appt.created = val.get('created', None)
|
|
370
373
|
appt.laststarttime = val['laststarttime']
|
|
371
374
|
appt.lastfinishtime = val['lastfinishtime']
|
|
@@ -562,6 +565,8 @@ class Agenda(s_base.Base):
|
|
|
562
565
|
view = cdef.get('view')
|
|
563
566
|
created = cdef.get('created')
|
|
564
567
|
|
|
568
|
+
pool = cdef.get('pool', False)
|
|
569
|
+
|
|
565
570
|
recur = incunit is not None
|
|
566
571
|
indx = self._next_indx
|
|
567
572
|
self._next_indx += 1
|
|
@@ -602,7 +607,7 @@ class Agenda(s_base.Base):
|
|
|
602
607
|
incvals = (incvals, )
|
|
603
608
|
recs.extend(ApptRec(rd, incunit, v) for (rd, v) in itertools.product(reqdicts, incvals))
|
|
604
609
|
|
|
605
|
-
appt = _Appt(self, iden, recur, indx, query, creator, recs, nexttime=nexttime, view=view, created=created)
|
|
610
|
+
appt = _Appt(self, iden, recur, indx, query, creator, recs, nexttime=nexttime, view=view, created=created, pool=pool)
|
|
606
611
|
self._addappt(iden, appt)
|
|
607
612
|
|
|
608
613
|
appt.doc = cdef.get('doc', '')
|
|
@@ -698,6 +703,13 @@ class Agenda(s_base.Base):
|
|
|
698
703
|
self.tickoff += offs
|
|
699
704
|
self._wake_event.set()
|
|
700
705
|
|
|
706
|
+
async def clearRunningStatus(self):
|
|
707
|
+
'''Used for clearing the running state at startup or change of leadership.'''
|
|
708
|
+
for appt in list(self.appts.values()):
|
|
709
|
+
if appt.isrunning:
|
|
710
|
+
logger.debug(f'Clearing the isrunning flag for {appt.iden}')
|
|
711
|
+
await self.core.addCronEdits(appt.iden, {'isrunning': False})
|
|
712
|
+
|
|
701
713
|
async def runloop(self):
|
|
702
714
|
'''
|
|
703
715
|
Task loop to issue query tasks at the right times.
|
|
@@ -808,57 +820,75 @@ class Agenda(s_base.Base):
|
|
|
808
820
|
}
|
|
809
821
|
await self.core.addCronEdits(appt.iden, edits)
|
|
810
822
|
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
823
|
+
logger.info(f'Agenda executing for iden={appt.iden}, name={appt.name} user={user.name}, view={appt.view}, query={appt.query}',
|
|
824
|
+
extra={'synapse': {'iden': appt.iden, 'name': appt.name, 'user': user.iden, 'text': appt.query,
|
|
825
|
+
'username': user.name, 'view': appt.view}})
|
|
826
|
+
starttime = self._getNowTick()
|
|
827
|
+
success = False
|
|
828
|
+
try:
|
|
829
|
+
opts = {
|
|
830
|
+
'user': user.iden,
|
|
831
|
+
'view': appt.view,
|
|
832
|
+
'mirror': appt.pool,
|
|
833
|
+
'vars': {'auto': {'iden': appt.iden, 'type': 'cron'}},
|
|
834
|
+
}
|
|
835
|
+
opts = self.core._initStormOpts(opts)
|
|
836
|
+
|
|
837
|
+
await self.core.feedBeholder('cron:start', {'iden': appt.iden})
|
|
838
|
+
|
|
839
|
+
async for mesg in self.core.storm(appt.query, opts=opts):
|
|
840
|
+
|
|
841
|
+
if mesg[0] == 'node':
|
|
827
842
|
count += 1
|
|
828
|
-
except asyncio.CancelledError:
|
|
829
|
-
result = 'cancelled'
|
|
830
|
-
raise
|
|
831
|
-
except Exception as e:
|
|
832
|
-
result = f'raised exception {e}'
|
|
833
|
-
logger.exception(f'Agenda job {appt.iden} {appt.name} raised exception',
|
|
834
|
-
extra={'synapse': {'iden': appt.iden, 'name': appt.name}}
|
|
835
|
-
)
|
|
836
|
-
else:
|
|
837
|
-
success = True
|
|
838
|
-
result = f'finished successfully with {count} nodes'
|
|
839
|
-
finally:
|
|
840
|
-
finishtime = self._getNowTick()
|
|
841
|
-
if not success:
|
|
842
|
-
appt.lasterrs.append(result)
|
|
843
|
-
edits = {
|
|
844
|
-
'errcount': appt.errcount + 1,
|
|
845
|
-
# we only care about the last five errors
|
|
846
|
-
'lasterrs': list(appt.lasterrs[-5:]),
|
|
847
|
-
}
|
|
848
|
-
await self.core.addCronEdits(appt.iden, edits)
|
|
849
843
|
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
844
|
+
elif mesg[0] == 'err':
|
|
845
|
+
excname, errinfo = mesg[1]
|
|
846
|
+
errinfo.pop('eline', None)
|
|
847
|
+
errinfo.pop('efile', None)
|
|
848
|
+
excctor = getattr(s_exc, excname, s_exc.SynErr)
|
|
849
|
+
raise excctor(**errinfo)
|
|
850
|
+
|
|
851
|
+
except asyncio.CancelledError:
|
|
852
|
+
result = 'cancelled'
|
|
853
|
+
raise
|
|
854
|
+
|
|
855
|
+
except Exception as e:
|
|
856
|
+
result = f'raised exception {e}'
|
|
857
|
+
logger.exception(f'Agenda job {appt.iden} {appt.name} raised exception',
|
|
858
|
+
extra={'synapse': {'iden': appt.iden, 'name': appt.name}}
|
|
859
|
+
)
|
|
860
|
+
else:
|
|
861
|
+
success = True
|
|
862
|
+
result = f'finished successfully with {count} nodes'
|
|
863
|
+
|
|
864
|
+
finally:
|
|
865
|
+
finishtime = self._getNowTick()
|
|
866
|
+
if not success:
|
|
867
|
+
appt.lasterrs.append(result)
|
|
855
868
|
edits = {
|
|
856
|
-
'
|
|
857
|
-
|
|
858
|
-
'
|
|
869
|
+
'errcount': appt.errcount + 1,
|
|
870
|
+
# we only care about the last five errors
|
|
871
|
+
'lasterrs': list(appt.lasterrs[-5:]),
|
|
859
872
|
}
|
|
873
|
+
|
|
874
|
+
if self.core.isactive:
|
|
875
|
+
await self.core.addCronEdits(appt.iden, edits)
|
|
876
|
+
|
|
877
|
+
took = finishtime - starttime
|
|
878
|
+
mesg = f'Agenda completed query for iden={appt.iden} name={appt.name} with result "{result}" ' \
|
|
879
|
+
f'took {took:.3f}s'
|
|
880
|
+
if not self.core.isactive:
|
|
881
|
+
mesg = mesg + ' Agenda status will not be saved since the Cortex is no longer the leader.'
|
|
882
|
+
logger.info(mesg, extra={'synapse': {'iden': appt.iden, 'name': appt.name, 'user': user.iden,
|
|
883
|
+
'result': result, 'username': user.name, 'took': took}})
|
|
884
|
+
edits = {
|
|
885
|
+
'lastfinishtime': finishtime,
|
|
886
|
+
'isrunning': False,
|
|
887
|
+
'lastresult': result,
|
|
888
|
+
}
|
|
889
|
+
if self.core.isactive:
|
|
860
890
|
await self.core.addCronEdits(appt.iden, edits)
|
|
861
891
|
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
892
|
+
if not self.isfini:
|
|
893
|
+
# fire beholder event before invoking nexus change (in case readonly)
|
|
894
|
+
await self.core.feedBeholder('cron:stop', {'iden': appt.iden})
|
|
@@ -24,7 +24,6 @@ import synapse.lib.scrape as s_scrape
|
|
|
24
24
|
import synapse.lib.msgpack as s_msgpack
|
|
25
25
|
import synapse.lib.spooled as s_spooled
|
|
26
26
|
import synapse.lib.stormctrl as s_stormctrl
|
|
27
|
-
import synapse.lib.provenance as s_provenance
|
|
28
27
|
import synapse.lib.stormtypes as s_stormtypes
|
|
29
28
|
|
|
30
29
|
from synapse.lib.stormtypes import tobool, toint, toprim, tostr, tonumber, tocmprvalu, undef
|
|
@@ -1180,33 +1179,32 @@ class CmdOper(Oper):
|
|
|
1180
1179
|
mesg = f'Command ({name}) is not marked safe for readonly use.'
|
|
1181
1180
|
raise self.addExcInfo(s_exc.IsReadOnly(mesg=mesg))
|
|
1182
1181
|
|
|
1183
|
-
|
|
1184
|
-
async def genx():
|
|
1182
|
+
async def genx():
|
|
1185
1183
|
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1184
|
+
async for node, path in genr:
|
|
1185
|
+
argv = await self.kids[1].compute(runt, path)
|
|
1186
|
+
if not await scmd.setArgv(argv):
|
|
1187
|
+
raise s_stormctrl.StormExit()
|
|
1190
1188
|
|
|
1191
|
-
|
|
1189
|
+
yield node, path
|
|
1192
1190
|
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1191
|
+
# must pull through the genr to get opts set
|
|
1192
|
+
# ( many commands expect self.opts is set at run() )
|
|
1193
|
+
genr, empty = await pullone(genx())
|
|
1196
1194
|
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1195
|
+
try:
|
|
1196
|
+
if runtsafe:
|
|
1197
|
+
argv = await self.kids[1].compute(runt, None)
|
|
1198
|
+
if not await scmd.setArgv(argv):
|
|
1199
|
+
raise s_stormctrl.StormExit()
|
|
1200
|
+
|
|
1201
|
+
if runtsafe or not empty:
|
|
1202
|
+
async with contextlib.aclosing(scmd.execStormCmd(runt, genr)) as agen:
|
|
1203
|
+
async for item in agen:
|
|
1204
|
+
yield item
|
|
1207
1205
|
|
|
1208
|
-
|
|
1209
|
-
|
|
1206
|
+
finally:
|
|
1207
|
+
await genr.aclose()
|
|
1210
1208
|
|
|
1211
1209
|
class SetVarOper(Oper):
|
|
1212
1210
|
|
|
@@ -477,8 +477,6 @@ class Base:
|
|
|
477
477
|
asyncio.Task: An asyncio.Task object.
|
|
478
478
|
|
|
479
479
|
'''
|
|
480
|
-
import synapse.lib.provenance as s_provenance # avoid import cycle
|
|
481
|
-
|
|
482
480
|
if __debug__:
|
|
483
481
|
assert inspect.isawaitable(coro)
|
|
484
482
|
import synapse.lib.threads as s_threads # avoid import cycle
|
|
@@ -491,10 +489,6 @@ class Base:
|
|
|
491
489
|
|
|
492
490
|
s_scope.clone(task)
|
|
493
491
|
|
|
494
|
-
# In rare cases, (Like this function being triggered from call_soon_threadsafe), there's no task context
|
|
495
|
-
if asyncio.current_task():
|
|
496
|
-
s_provenance.dupstack(task)
|
|
497
|
-
|
|
498
492
|
def taskDone(task):
|
|
499
493
|
self._active_tasks.remove(task)
|
|
500
494
|
try:
|