synapse 2.164.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.164.0/synapse.egg-info → synapse-2.166.0}/PKG-INFO +2 -2
- {synapse-2.164.0 → synapse-2.166.0}/pyproject.toml +2 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse/axon.py +3 -3
- {synapse-2.164.0 → synapse-2.166.0}/synapse/cmds/cortex.py +1 -6
- {synapse-2.164.0 → synapse-2.166.0}/synapse/common.py +7 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/cortex.py +145 -192
- {synapse-2.164.0 → synapse-2.166.0}/synapse/datamodel.py +36 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/agenda.py +87 -97
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/aha.py +51 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/ast.py +22 -23
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/base.py +0 -6
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/boss.py +3 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/cell.py +70 -39
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/certdir.py +9 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/hiveauth.py +65 -12
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/httpapi.py +1 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/modelrev.py +121 -33
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/modules.py +1 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/nexus.py +64 -26
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/parser.py +2 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/schemas.py +14 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/snap.py +50 -4
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/storm.lark +4 -3
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/storm.py +96 -22
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/storm_format.py +1 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/aha.py +7 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/auth.py +13 -5
- synapse-2.166.0/synapse/lib/stormlib/cache.py +202 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/cortex.py +147 -8
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/gen.py +53 -6
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/math.py +1 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/model.py +11 -1
- synapse-2.166.0/synapse/lib/stormlib/spooled.py +109 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/vault.py +1 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormtypes.py +113 -17
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/trigger.py +36 -47
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/types.py +29 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/version.py +2 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/view.py +80 -53
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/economic.py +174 -5
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/files.py +2 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/inet.py +77 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/infotech.py +12 -12
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/orgs.py +72 -21
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/person.py +40 -11
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/risk.py +78 -24
- synapse-2.166.0/synapse/models/science.py +102 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/telepath.py +117 -35
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_cortex.py +84 -158
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_datamodel.py +22 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_agenda.py +52 -96
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_aha.py +126 -4
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_ast.py +412 -6
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_cell.py +24 -8
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_certdir.py +32 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_grammar.py +9 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_httpapi.py +0 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_jupyter.py +0 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_modelrev.py +41 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_nexus.py +38 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_storm.py +95 -5
- synapse-2.166.0/synapse/tests/test_lib_stormlib_cache.py +272 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_cortex.py +71 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_gen.py +37 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_model.py +2 -0
- synapse-2.166.0/synapse/tests/test_lib_stormlib_spooled.py +190 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_vault.py +12 -3
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormsvc.py +0 -10
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormtypes.py +60 -8
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_trigger.py +20 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_types.py +17 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_economic.py +114 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_files.py +2 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_inet.py +73 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_infotech.py +2 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_orgs.py +10 -1
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_risk.py +30 -2
- synapse-2.166.0/synapse/tests/test_model_science.py +59 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_syn.py +0 -1
- {synapse-2.164.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.164.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.164.0 → synapse-2.166.0}/synapse/tools/moduser.py +78 -10
- {synapse-2.164.0 → synapse-2.166.0/synapse.egg-info}/PKG-INFO +2 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse.egg-info/SOURCES.txt +6 -2
- {synapse-2.164.0 → synapse-2.166.0}/synapse.egg-info/requires.txt +1 -1
- synapse-2.164.0/synapse/lib/provenance.py +0 -111
- synapse-2.164.0/synapse/tests/test_lib_provenance.py +0 -37
- synapse-2.164.0/synapse/tests/test_tools_modrole.py +0 -61
- synapse-2.164.0/synapse/tools/modrole.py +0 -67
- {synapse-2.164.0 → synapse-2.166.0}/LICENSE +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/README.rst +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/setup.cfg +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/cells.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/cryotank.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/daemon.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.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.164.0 → synapse-2.166.0}/synapse/exc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/glob.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/cache.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/chop.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/cli.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/config.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/const.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/coro.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/gis.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/health.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/hive.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/interval.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/jupyter.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/layer.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/link.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/module.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/node.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/output.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/queue.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/scope.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/share.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/task.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/threads.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/time.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/mindmeld.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/auth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/base.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/belief.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/biz.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/crypto.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/dns.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/geopol.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/geospace.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/language.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/material.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/media.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/proj.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/syn.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/telco.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/models/transport.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/aha.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/axon.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/cell.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_hiveauth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tests/utils.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/backup.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/feed.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/guid.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/promote.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/reload.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/tools/storm.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.164.0 → synapse-2.166.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.164.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',
|
|
@@ -407,7 +407,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
407
407
|
|
|
408
408
|
buf = b''
|
|
409
409
|
async for bytz in axon.get(sha256):
|
|
410
|
-
buf
|
|
410
|
+
buf += bytz
|
|
411
411
|
|
|
412
412
|
await dostuff(buf)
|
|
413
413
|
|
|
@@ -610,7 +610,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
610
610
|
ssl_opts (dict): Additional SSL/TLS options.
|
|
611
611
|
|
|
612
612
|
Notes:
|
|
613
|
-
The response body will be stored, regardless of the response code. The ``ok`` value in the
|
|
613
|
+
The response body will be stored, regardless of the response code. The ``ok`` value in the response does not
|
|
614
614
|
reflect that a status code, such as a 404, was encountered when retrieving the URL.
|
|
615
615
|
|
|
616
616
|
The ssl_opts dictionary may contain the following values::
|
|
@@ -1662,7 +1662,7 @@ class Axon(s_cell.Cell):
|
|
|
1662
1662
|
ssl_opts (dict): Additional SSL/TLS options.
|
|
1663
1663
|
|
|
1664
1664
|
Notes:
|
|
1665
|
-
The response body will be stored, regardless of the response code. The ``ok`` value in the
|
|
1665
|
+
The response body will be stored, regardless of the response code. The ``ok`` value in the response does not
|
|
1666
1666
|
reflect that a status code, such as a 404, was encountered when retrieving the URL.
|
|
1667
1667
|
|
|
1668
1668
|
The ssl_opts dictionary may contain the following values::
|
|
@@ -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
|
|
|
@@ -659,7 +659,7 @@ def iterfd(fd, size=10000000):
|
|
|
659
659
|
Notes:
|
|
660
660
|
If the first read call on the file descriptor is a empty bytestring,
|
|
661
661
|
that zero length bytestring will be yielded and the generator will
|
|
662
|
-
then be
|
|
662
|
+
then be exhausted. This behavior is intended to allow the yielding of
|
|
663
663
|
contents of a zero byte file.
|
|
664
664
|
|
|
665
665
|
Yields:
|
|
@@ -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
|
-
|
|
322
|
-
snap.strict = False
|
|
323
319
|
|
|
324
|
-
|
|
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
|
'''
|
|
@@ -578,12 +574,12 @@ class CoreApi(s_cell.CellApi):
|
|
|
578
574
|
return await self.cell.delStormDmon(iden)
|
|
579
575
|
|
|
580
576
|
@s_cell.adminapi(log=True)
|
|
581
|
-
async def enableMigrationMode(self):
|
|
582
|
-
|
|
577
|
+
async def enableMigrationMode(self): # pragma: no cover
|
|
578
|
+
s_common.deprdate('CoreApi.enableMigrationMode', '2024-05-05')
|
|
583
579
|
|
|
584
580
|
@s_cell.adminapi(log=True)
|
|
585
|
-
async def disableMigrationMode(self):
|
|
586
|
-
|
|
581
|
+
async def disableMigrationMode(self): # pragma: no cover
|
|
582
|
+
s_common.deprdate('CoreApi.disableMigrationMode', '2024-05-05')
|
|
587
583
|
|
|
588
584
|
@s_cell.adminapi()
|
|
589
585
|
async def cloneLayer(self, iden, ldef=None):
|
|
@@ -773,12 +769,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
773
769
|
},
|
|
774
770
|
'cron:enable': {
|
|
775
771
|
'default': True,
|
|
776
|
-
'description': '
|
|
772
|
+
'description': 'Deprecated. This option no longer controls cron execution and will be removed in Synapse 3.0.',
|
|
777
773
|
'type': 'boolean'
|
|
778
774
|
},
|
|
779
775
|
'trigger:enable': {
|
|
780
776
|
'default': True,
|
|
781
|
-
'description': '
|
|
777
|
+
'description': 'Deprecated. This option no longer controls trigger execution and will be removed in Synapse 3.0.',
|
|
782
778
|
'type': 'boolean'
|
|
783
779
|
},
|
|
784
780
|
'layer:lmdb:map_async': {
|
|
@@ -841,20 +837,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
841
837
|
'description': 'Enable Storm scrape interfaces when using $lib.scrape APIs.',
|
|
842
838
|
'type': 'boolean',
|
|
843
839
|
},
|
|
844
|
-
'storm:pool': {
|
|
845
|
-
'description': 'EXPERIMENTAL: Telepath URL for a Cortex mirror or AHA pool to offload Storm queries to.',
|
|
846
|
-
'type': 'string',
|
|
847
|
-
},
|
|
848
|
-
'storm:pool:timeout:sync': {
|
|
849
|
-
'description': 'The maximum time (in seconds) to wait for the mirror to be in sync with the leader.',
|
|
850
|
-
'type': 'integer',
|
|
851
|
-
'default': 1
|
|
852
|
-
},
|
|
853
|
-
'storm:pool:timeout:connection': {
|
|
854
|
-
'description': 'The maximum time (in seconds) to wait for a mirror connection.',
|
|
855
|
-
'type': 'integer',
|
|
856
|
-
'default': 1
|
|
857
|
-
},
|
|
858
840
|
'http:proxy': {
|
|
859
841
|
'description': 'An aiohttp-socks compatible proxy URL to use storm HTTP API.',
|
|
860
842
|
'type': 'string',
|
|
@@ -914,23 +896,14 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
914
896
|
self._runtPropSetFuncs = {}
|
|
915
897
|
self._runtPropDelFuncs = {}
|
|
916
898
|
|
|
917
|
-
self.ontagadds = collections.defaultdict(list)
|
|
918
|
-
self.ontagdels = collections.defaultdict(list)
|
|
919
|
-
self.ontagaddglobs = s_cache.TagGlobs()
|
|
920
|
-
self.ontagdelglobs = s_cache.TagGlobs()
|
|
921
|
-
|
|
922
899
|
self.tagvalid = s_cache.FixedCache(self._isTagValid, size=1000)
|
|
923
900
|
self.tagprune = s_cache.FixedCache(self._getTagPrune, size=1000)
|
|
924
901
|
|
|
925
902
|
self.querycache = s_cache.FixedCache(self._getStormQuery, size=10000)
|
|
926
903
|
|
|
927
904
|
self.stormpool = None
|
|
928
|
-
self.stormpoolurl =
|
|
929
|
-
|
|
930
|
-
self.stormpoolopts = {
|
|
931
|
-
'nexstimeout': self.conf.get('storm:pool:timeout:sync'),
|
|
932
|
-
'conntimeout': self.conf.get('storm:pool:timeout:connection')
|
|
933
|
-
}
|
|
905
|
+
self.stormpoolurl = None
|
|
906
|
+
self.stormpoolopts = None
|
|
934
907
|
|
|
935
908
|
self.libroot = (None, {}, {})
|
|
936
909
|
self.stormlibs = []
|
|
@@ -1001,8 +974,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1001
974
|
|
|
1002
975
|
await self._initStormGraphs()
|
|
1003
976
|
|
|
1004
|
-
self.trigson = self.conf.get('trigger:enable')
|
|
1005
|
-
|
|
1006
977
|
await self._initRuntFuncs()
|
|
1007
978
|
|
|
1008
979
|
taghive = await self.hive.open(('cortex', 'tagmeta'))
|
|
@@ -1027,7 +998,16 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1027
998
|
'multiqueue': self.multiqueue,
|
|
1028
999
|
})
|
|
1029
1000
|
|
|
1030
|
-
|
|
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))
|
|
1031
1011
|
|
|
1032
1012
|
self._initVaults()
|
|
1033
1013
|
|
|
@@ -1460,6 +1440,8 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1460
1440
|
if self.isactive:
|
|
1461
1441
|
await self._checkLayerModels()
|
|
1462
1442
|
|
|
1443
|
+
self.addActiveCoro(self.agenda.runloop)
|
|
1444
|
+
|
|
1463
1445
|
await self._initStormDmons()
|
|
1464
1446
|
await self._initStormSvcs()
|
|
1465
1447
|
|
|
@@ -1468,9 +1450,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1468
1450
|
self.dmon.share('cortex', self)
|
|
1469
1451
|
|
|
1470
1452
|
async def initServiceActive(self):
|
|
1471
|
-
|
|
1472
|
-
await self.agenda.start()
|
|
1453
|
+
|
|
1473
1454
|
await self.stormdmons.start()
|
|
1455
|
+
await self.agenda.clearRunningStatus()
|
|
1474
1456
|
|
|
1475
1457
|
for view in self.views.values():
|
|
1476
1458
|
await view.initTrigTask()
|
|
@@ -1479,11 +1461,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1479
1461
|
for layer in self.layers.values():
|
|
1480
1462
|
await layer.initLayerActive()
|
|
1481
1463
|
|
|
1482
|
-
await self.
|
|
1464
|
+
await self.initStormPool()
|
|
1483
1465
|
|
|
1484
1466
|
async def initServicePassive(self):
|
|
1485
1467
|
|
|
1486
|
-
await self.agenda.stop()
|
|
1487
1468
|
await self.stormdmons.stop()
|
|
1488
1469
|
|
|
1489
1470
|
for view in self.views.values():
|
|
@@ -1493,14 +1474,64 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1493
1474
|
for layer in self.layers.values():
|
|
1494
1475
|
await layer.initLayerPassive()
|
|
1495
1476
|
|
|
1477
|
+
await self.finiStormPool()
|
|
1478
|
+
|
|
1479
|
+
async def initStormPool(self):
|
|
1480
|
+
|
|
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)
|
|
1488
|
+
|
|
1489
|
+
self.stormpoolurl = url
|
|
1490
|
+
self.stormpoolopts = opts
|
|
1491
|
+
|
|
1492
|
+
async def onlink(proxy, urlinfo):
|
|
1493
|
+
_url = s_urlhelp.sanitizeUrl(s_telepath.zipurl(urlinfo))
|
|
1494
|
+
logger.debug(f'Stormpool client connected to {_url}')
|
|
1495
|
+
|
|
1496
|
+
self.stormpool = await s_telepath.open(url, onlink=onlink)
|
|
1497
|
+
|
|
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}')
|
|
1503
|
+
|
|
1504
|
+
async def finiStormPool(self):
|
|
1505
|
+
|
|
1496
1506
|
if self.stormpool is not None:
|
|
1497
1507
|
await self.stormpool.fini()
|
|
1498
1508
|
self.stormpool = None
|
|
1499
1509
|
|
|
1500
|
-
async def
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1510
|
+
async def getStormPool(self):
|
|
1511
|
+
byts = self.slab.get(b'storm:pool', db='cell:conf')
|
|
1512
|
+
if byts is None:
|
|
1513
|
+
return None
|
|
1514
|
+
return s_msgpack.un(byts)
|
|
1515
|
+
|
|
1516
|
+
@s_nexus.Pusher.onPushAuto('storm:pool:set')
|
|
1517
|
+
async def setStormPool(self, url, opts):
|
|
1518
|
+
|
|
1519
|
+
s_schemas.reqValidStormPoolOpts(opts)
|
|
1520
|
+
|
|
1521
|
+
info = (url, opts)
|
|
1522
|
+
self.slab.put(b'storm:pool', s_msgpack.en(info), db='cell:conf')
|
|
1523
|
+
|
|
1524
|
+
if self.isactive:
|
|
1525
|
+
await self.finiStormPool()
|
|
1526
|
+
await self.initStormPool()
|
|
1527
|
+
|
|
1528
|
+
@s_nexus.Pusher.onPushAuto('storm:pool:del')
|
|
1529
|
+
async def delStormPool(self):
|
|
1530
|
+
|
|
1531
|
+
self.slab.pop(b'storm:pool', db='cell:conf')
|
|
1532
|
+
|
|
1533
|
+
if self.isactive:
|
|
1534
|
+
await self.finiStormPool()
|
|
1504
1535
|
|
|
1505
1536
|
@s_nexus.Pusher.onPushAuto('model:depr:lock')
|
|
1506
1537
|
async def setDeprLock(self, name, locked):
|
|
@@ -2669,13 +2700,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
2669
2700
|
|
|
2670
2701
|
pkgname = pkgdef.get('name')
|
|
2671
2702
|
|
|
2672
|
-
# Check minimum synapse version
|
|
2673
|
-
minversion = pkgdef.get('synapse_minversion')
|
|
2674
|
-
if minversion is not None and tuple(minversion) > s_version.version:
|
|
2675
|
-
mesg = f'Storm package {pkgname} requires Synapse {minversion} but ' \
|
|
2676
|
-
f'Cortex is running {s_version.version}'
|
|
2677
|
-
raise s_exc.BadVersion(mesg=mesg)
|
|
2678
|
-
|
|
2679
2703
|
# Check synapse version requirement
|
|
2680
2704
|
reqversion = pkgdef.get('synapse_version')
|
|
2681
2705
|
if reqversion is not None:
|
|
@@ -2683,6 +2707,15 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
2683
2707
|
f'Cortex is running {s_version.version}'
|
|
2684
2708
|
s_version.reqVersion(s_version.version, reqversion, mesg=mesg)
|
|
2685
2709
|
|
|
2710
|
+
elif (minversion := pkgdef.get('synapse_minversion')) is not None:
|
|
2711
|
+
# This is for older packages that might not have the
|
|
2712
|
+
# `synapse_version` field.
|
|
2713
|
+
# TODO: Remove this whole else block after Synapse 3.0.0.
|
|
2714
|
+
if tuple(minversion) > s_version.version:
|
|
2715
|
+
mesg = f'Storm package {pkgname} requires Synapse {minversion} but ' \
|
|
2716
|
+
f'Cortex is running {s_version.version}'
|
|
2717
|
+
raise s_exc.BadVersion(mesg=mesg)
|
|
2718
|
+
|
|
2686
2719
|
# Validate storm contents from modules and commands
|
|
2687
2720
|
mods = pkgdef.get('modules', ())
|
|
2688
2721
|
cmds = pkgdef.get('commands', ())
|
|
@@ -3460,14 +3493,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3460
3493
|
buid = s_common.uhex(iden)
|
|
3461
3494
|
async with await self.snap(user=user) as snap:
|
|
3462
3495
|
|
|
3463
|
-
|
|
3496
|
+
node = await snap.getNodeByBuid(buid)
|
|
3497
|
+
if node is None:
|
|
3498
|
+
raise s_exc.NoSuchIden(iden=iden)
|
|
3464
3499
|
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
raise s_exc.NoSuchIden(iden=iden)
|
|
3468
|
-
|
|
3469
|
-
await node.addTag(tag, valu=valu)
|
|
3470
|
-
return node.pack()
|
|
3500
|
+
await node.addTag(tag, valu=valu)
|
|
3501
|
+
return node.pack()
|
|
3471
3502
|
|
|
3472
3503
|
async def addNode(self, user, form, valu, props=None):
|
|
3473
3504
|
|
|
@@ -3487,14 +3518,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3487
3518
|
|
|
3488
3519
|
async with await self.snap(user=user) as snap:
|
|
3489
3520
|
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
if node is None:
|
|
3494
|
-
raise s_exc.NoSuchIden(iden=iden)
|
|
3521
|
+
node = await snap.getNodeByBuid(buid)
|
|
3522
|
+
if node is None:
|
|
3523
|
+
raise s_exc.NoSuchIden(iden=iden)
|
|
3495
3524
|
|
|
3496
|
-
|
|
3497
|
-
|
|
3525
|
+
await node.delTag(tag)
|
|
3526
|
+
return node.pack()
|
|
3498
3527
|
|
|
3499
3528
|
async def _onCoreFini(self):
|
|
3500
3529
|
'''
|
|
@@ -3942,6 +3971,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3942
3971
|
self.addStormCmd(s_storm.BackgroundCmd)
|
|
3943
3972
|
self.addStormCmd(s_stormlib_macro.MacroExecCmd)
|
|
3944
3973
|
self.addStormCmd(s_stormlib_stats.StatsCountByCmd)
|
|
3974
|
+
self.addStormCmd(s_stormlib_cortex.StormPoolDelCmd)
|
|
3975
|
+
self.addStormCmd(s_stormlib_cortex.StormPoolGetCmd)
|
|
3976
|
+
self.addStormCmd(s_stormlib_cortex.StormPoolSetCmd)
|
|
3945
3977
|
|
|
3946
3978
|
for cdef in s_stormsvc.stormcmds:
|
|
3947
3979
|
await self._trySetStormCmd(cdef.get('name'), cdef)
|
|
@@ -4109,7 +4141,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4109
4141
|
@s_nexus.Pusher.onPushAuto('http:api:mod')
|
|
4110
4142
|
async def modHttpExtApi(self, iden, name, valu):
|
|
4111
4143
|
# Created, Creator, Updated are not mutable
|
|
4112
|
-
if name in ('name', 'desc', 'runas', 'methods', 'authenticated', 'perms', 'readonly', 'vars'):
|
|
4144
|
+
if name in ('name', 'desc', 'runas', 'methods', 'authenticated', 'pool', 'perms', 'readonly', 'vars'):
|
|
4113
4145
|
# Schema takes care of these values
|
|
4114
4146
|
pass
|
|
4115
4147
|
elif name == 'owner':
|
|
@@ -4244,77 +4276,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4244
4276
|
counts[name] += valu
|
|
4245
4277
|
return dict(counts)
|
|
4246
4278
|
|
|
4247
|
-
def onTagAdd(self, name, func):
|
|
4248
|
-
'''
|
|
4249
|
-
Register a callback for tag addition.
|
|
4250
|
-
|
|
4251
|
-
Args:
|
|
4252
|
-
name (str): The name of the tag or tag glob.
|
|
4253
|
-
func (function): The callback func(node, tagname, tagval).
|
|
4254
|
-
|
|
4255
|
-
'''
|
|
4256
|
-
# TODO allow name wild cards
|
|
4257
|
-
if '*' in name:
|
|
4258
|
-
self.ontagaddglobs.add(name, func)
|
|
4259
|
-
else:
|
|
4260
|
-
self.ontagadds[name].append(func)
|
|
4261
|
-
|
|
4262
|
-
def offTagAdd(self, name, func):
|
|
4263
|
-
'''
|
|
4264
|
-
Unregister a callback for tag addition.
|
|
4265
|
-
|
|
4266
|
-
Args:
|
|
4267
|
-
name (str): The name of the tag or tag glob.
|
|
4268
|
-
func (function): The callback func(node, tagname, tagval).
|
|
4269
|
-
|
|
4270
|
-
'''
|
|
4271
|
-
if '*' in name:
|
|
4272
|
-
self.ontagaddglobs.rem(name, func)
|
|
4273
|
-
return
|
|
4274
|
-
|
|
4275
|
-
cblist = self.ontagadds.get(name)
|
|
4276
|
-
if cblist is None:
|
|
4277
|
-
return
|
|
4278
|
-
try:
|
|
4279
|
-
cblist.remove(func)
|
|
4280
|
-
except ValueError:
|
|
4281
|
-
pass
|
|
4282
|
-
|
|
4283
|
-
def onTagDel(self, name, func):
|
|
4284
|
-
'''
|
|
4285
|
-
Register a callback for tag deletion.
|
|
4286
|
-
|
|
4287
|
-
Args:
|
|
4288
|
-
name (str): The name of the tag or tag glob.
|
|
4289
|
-
func (function): The callback func(node, tagname, tagval).
|
|
4290
|
-
|
|
4291
|
-
'''
|
|
4292
|
-
if '*' in name:
|
|
4293
|
-
self.ontagdelglobs.add(name, func)
|
|
4294
|
-
else:
|
|
4295
|
-
self.ontagdels[name].append(func)
|
|
4296
|
-
|
|
4297
|
-
def offTagDel(self, name, func):
|
|
4298
|
-
'''
|
|
4299
|
-
Unregister a callback for tag deletion.
|
|
4300
|
-
|
|
4301
|
-
Args:
|
|
4302
|
-
name (str): The name of the tag or tag glob.
|
|
4303
|
-
func (function): The callback func(node, tagname, tagval).
|
|
4304
|
-
|
|
4305
|
-
'''
|
|
4306
|
-
if '*' in name:
|
|
4307
|
-
self.ontagdelglobs.rem(name, func)
|
|
4308
|
-
return
|
|
4309
|
-
|
|
4310
|
-
cblist = self.ontagdels.get(name)
|
|
4311
|
-
if cblist is None:
|
|
4312
|
-
return
|
|
4313
|
-
try:
|
|
4314
|
-
cblist.remove(func)
|
|
4315
|
-
except ValueError:
|
|
4316
|
-
pass
|
|
4317
|
-
|
|
4318
4279
|
def addRuntLift(self, prop, func):
|
|
4319
4280
|
'''
|
|
4320
4281
|
Register a runt lift helper for a given prop.
|
|
@@ -4376,8 +4337,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4376
4337
|
return ret
|
|
4377
4338
|
|
|
4378
4339
|
async def _checkLayerModels(self):
|
|
4379
|
-
|
|
4380
|
-
|
|
4340
|
+
with self.enterMigrationMode():
|
|
4341
|
+
mrev = s_modelrev.ModelRev(self)
|
|
4342
|
+
await mrev.revCoreLayers()
|
|
4381
4343
|
|
|
4382
4344
|
async def _loadView(self, node):
|
|
4383
4345
|
|
|
@@ -5325,23 +5287,31 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5325
5287
|
mirropts = s_msgpack.deepcopy(opts)
|
|
5326
5288
|
mirropts['mirror'] = False
|
|
5327
5289
|
mirropts['nexsoffs'] = (await self.getNexsIndx() - 1)
|
|
5328
|
-
mirropts['nexstimeout'] = self.stormpoolopts.get('
|
|
5290
|
+
mirropts['nexstimeout'] = self.stormpoolopts.get('timeout:sync')
|
|
5329
5291
|
return mirropts
|
|
5330
5292
|
|
|
5331
5293
|
async def _getMirrorProxy(self):
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
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.')
|
|
5335
5300
|
return None
|
|
5336
5301
|
|
|
5337
|
-
proxy = None
|
|
5338
5302
|
try:
|
|
5339
|
-
timeout = self.stormpoolopts.get('
|
|
5303
|
+
timeout = self.stormpoolopts.get('timeout:connection')
|
|
5340
5304
|
proxy = await self.stormpool.proxy(timeout=timeout)
|
|
5305
|
+
proxyname = proxy._ahainfo.get('name')
|
|
5306
|
+
if proxyname is not None and proxyname == self.ahasvcname:
|
|
5307
|
+
# we are part of the pool and were selected. Convert to local use.
|
|
5308
|
+
return None
|
|
5309
|
+
|
|
5310
|
+
return proxy
|
|
5311
|
+
|
|
5341
5312
|
except (TimeoutError, s_exc.IsFini):
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
return proxy
|
|
5313
|
+
logger.warning('Timeout waiting for pool mirror, running query locally.')
|
|
5314
|
+
return None
|
|
5345
5315
|
|
|
5346
5316
|
async def storm(self, text, opts=None):
|
|
5347
5317
|
|
|
@@ -5812,16 +5782,15 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5812
5782
|
|
|
5813
5783
|
async def _initCoreMods(self):
|
|
5814
5784
|
|
|
5815
|
-
|
|
5816
|
-
for ctor, modu in list(self.modules.items()):
|
|
5785
|
+
for ctor, modu in list(self.modules.items()):
|
|
5817
5786
|
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
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)
|
|
5825
5794
|
|
|
5826
5795
|
def _loadCoreModule(self, ctor, conf=None):
|
|
5827
5796
|
|
|
@@ -6078,6 +6047,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
6078
6047
|
elif name == 'doc':
|
|
6079
6048
|
appt.doc = str(valu)
|
|
6080
6049
|
|
|
6050
|
+
elif name == 'pool':
|
|
6051
|
+
appt.pool = bool(valu)
|
|
6052
|
+
|
|
6081
6053
|
else:
|
|
6082
6054
|
mesg = f'editCronJob name {name} is not supported for editing.'
|
|
6083
6055
|
raise s_exc.BadArg(mesg=mesg)
|
|
@@ -6096,30 +6068,11 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
6096
6068
|
appt = await self.agenda.get(iden)
|
|
6097
6069
|
await appt.edits(edits)
|
|
6098
6070
|
|
|
6099
|
-
@contextlib.
|
|
6100
|
-
|
|
6101
|
-
await self._enableMigrationMode()
|
|
6102
|
-
yield
|
|
6103
|
-
await self._disableMigrationMode()
|
|
6104
|
-
|
|
6105
|
-
async def _enableMigrationMode(self):
|
|
6106
|
-
'''
|
|
6107
|
-
Prevents cron jobs and triggers from running
|
|
6108
|
-
'''
|
|
6071
|
+
@contextlib.contextmanager
|
|
6072
|
+
def enterMigrationMode(self):
|
|
6109
6073
|
self.migration = True
|
|
6110
|
-
|
|
6111
|
-
self.trigson = False
|
|
6112
|
-
|
|
6113
|
-
async def _disableMigrationMode(self):
|
|
6114
|
-
'''
|
|
6115
|
-
Allows cron jobs and triggers to run
|
|
6116
|
-
'''
|
|
6074
|
+
yield
|
|
6117
6075
|
self.migration = False
|
|
6118
|
-
if self.conf.get('cron:enable'):
|
|
6119
|
-
self.agenda.enabled = True
|
|
6120
|
-
|
|
6121
|
-
if self.conf.get('trigger:enable'):
|
|
6122
|
-
self.trigson = True
|
|
6123
6076
|
|
|
6124
6077
|
async def iterFormRows(self, layriden, form, stortype=None, startvalu=None):
|
|
6125
6078
|
'''
|