synapse 2.153.0__tar.gz → 2.154.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.153.0/synapse.egg-info → synapse-2.154.0}/PKG-INFO +1 -1
- {synapse-2.153.0 → synapse-2.154.0}/pyproject.toml +1 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cortex.py +4 -4
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/ast.py +10 -5
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/autodoc.py +2 -2
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/cache.py +16 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/layer.py +2 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/modelrev.py +36 -3
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/node.py +2 -5
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/snap.py +10 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/storm.py +80 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormhttp.py +3 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/backup.py +1 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/basex.py +2 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/cell.py +7 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/compression.py +3 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/ethereum.py +1 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/graph.py +2 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/hashes.py +5 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/hex.py +6 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/infosec.py +4 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/ipv6.py +1 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/iters.py +2 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/json.py +5 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/mime.py +1 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/model.py +19 -3
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/modelext.py +1 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/notifications.py +2 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/pack.py +2 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/random.py +1 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/smtp.py +0 -7
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/stats.py +4 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/stix.py +8 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/storm.py +1 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/version.py +3 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/xml.py +3 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/yaml.py +2 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormtypes.py +201 -29
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/trigger.py +180 -4
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/types.py +1 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/version.py +2 -2
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/view.py +55 -6
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/inet.py +16 -4
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/orgs.py +47 -2
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/risk.py +126 -2
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/syn.py +6 -0
- synapse-2.154.0/synapse/tests/files/stormpkg/badapidef.yaml +13 -0
- synapse-2.154.0/synapse/tests/files/stormpkg/storm/modules/apimod +10 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/testpkg.yaml +23 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_cortex.py +50 -34
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_ast.py +7 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_autodoc.py +1 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_modelrev.py +9 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_node.py +55 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_storm.py +13 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_storm.py +8 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormsvc.py +24 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormtypes.py +105 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_trigger.py +315 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_view.py +1 -2
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_inet.py +22 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_orgs.py +28 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_risk.py +73 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_autodoc.py +25 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_genpkg.py +9 -3
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/autodoc.py +42 -2
- {synapse-2.153.0 → synapse-2.154.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.153.0 → synapse-2.154.0}/synapse.egg-info/SOURCES.txt +2 -0
- {synapse-2.153.0 → synapse-2.154.0}/LICENSE +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/README.rst +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/setup.cfg +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/axon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cells.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cmds/cron.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cmds/trigger.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/common.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/cryotank.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/daemon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.153.0 → synapse-2.154.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.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.153.0 → synapse-2.154.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.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.153.0 → synapse-2.154.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.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.153.0 → synapse-2.154.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.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/datamodel.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/exc.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/glob.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/agenda.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/aha.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/base.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/boss.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/cell.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/chop.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/cli.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/config.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/const.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/coro.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/gis.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/health.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/hive.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/hiveauth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/interval.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/jupyter.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/link.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/module.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/modules.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/output.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/parser.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/provenance.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/queue.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/schemas.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/scope.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/share.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/storm.lark +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/task.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/threads.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/time.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/mindmeld.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/auth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/base.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/belief.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/biz.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/crypto.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/dns.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/economic.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/files.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/geopol.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/geospace.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/infotech.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/language.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/material.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/media.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/person.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/proj.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/telco.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/models/transport.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/aha.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/axon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/cell.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/telepath.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_cmds_cron.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_cmds_trigger.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_hiveauth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_jupyter.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_provenance.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tests/utils.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/backup.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/feed.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/guid.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/promote.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/reload.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/tools/storm.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.153.0 → synapse-2.154.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1271,10 +1271,14 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1271
1271
|
|
|
1272
1272
|
await self._initOAuthManager()
|
|
1273
1273
|
|
|
1274
|
+
stormdmonhive = await self.hive.open(('cortex', 'storm', 'dmons'))
|
|
1275
|
+
self.stormdmonhive = await stormdmonhive.dict()
|
|
1274
1276
|
self.stormdmons = await s_storm.DmonManager.anit(self)
|
|
1275
1277
|
self.onfini(self.stormdmons)
|
|
1278
|
+
|
|
1276
1279
|
self.agenda = await s_agenda.Agenda.anit(self)
|
|
1277
1280
|
self.onfini(self.agenda)
|
|
1281
|
+
|
|
1278
1282
|
await self._initStormGraphs()
|
|
1279
1283
|
|
|
1280
1284
|
self.trigson = self.conf.get('trigger:enable')
|
|
@@ -2233,10 +2237,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
2233
2237
|
|
|
2234
2238
|
async def _initStormDmons(self):
|
|
2235
2239
|
|
|
2236
|
-
node = await self.hive.open(('cortex', 'storm', 'dmons'))
|
|
2237
|
-
|
|
2238
|
-
self.stormdmonhive = await node.dict()
|
|
2239
|
-
|
|
2240
2240
|
for iden, ddef in self.stormdmonhive.items():
|
|
2241
2241
|
try:
|
|
2242
2242
|
await self.runStormDmon(iden, ddef)
|
|
@@ -593,10 +593,15 @@ class SubQuery(Oper):
|
|
|
593
593
|
async for item in self.kids[0].run(runt, genr):
|
|
594
594
|
yield item
|
|
595
595
|
|
|
596
|
-
async def _compute(self, runt, limit):
|
|
596
|
+
async def _compute(self, runt, path, limit):
|
|
597
|
+
|
|
597
598
|
retn = []
|
|
598
599
|
|
|
599
|
-
|
|
600
|
+
opts = {}
|
|
601
|
+
if path is not None:
|
|
602
|
+
opts['vars'] = path.vars.copy()
|
|
603
|
+
|
|
604
|
+
async with runt.getSubRuntime(self.kids[0], opts=opts) as runt:
|
|
600
605
|
async for valunode, valupath in runt.execute():
|
|
601
606
|
|
|
602
607
|
retn.append(valunode.ndef[1])
|
|
@@ -615,7 +620,7 @@ class SubQuery(Oper):
|
|
|
615
620
|
Its value is the primary property of the node yielded, or the returned value.
|
|
616
621
|
'''
|
|
617
622
|
try:
|
|
618
|
-
retn = await self._compute(runt, 1)
|
|
623
|
+
retn = await self._compute(runt, path, 1)
|
|
619
624
|
|
|
620
625
|
except s_stormctrl.StormReturn as e:
|
|
621
626
|
# a subquery assignment with a return; just use the returned value
|
|
@@ -631,7 +636,7 @@ class SubQuery(Oper):
|
|
|
631
636
|
Use subquery as an array.
|
|
632
637
|
'''
|
|
633
638
|
try:
|
|
634
|
-
return await self._compute(runt, 128)
|
|
639
|
+
return await self._compute(runt, path, 128)
|
|
635
640
|
except s_stormctrl.StormReturn as e:
|
|
636
641
|
# a subquery assignment with a return; just use the returned value
|
|
637
642
|
return e.item
|
|
@@ -3105,7 +3110,7 @@ async def expr_prefix(x, y):
|
|
|
3105
3110
|
return x.startswith(y)
|
|
3106
3111
|
|
|
3107
3112
|
async def expr_re(x, y):
|
|
3108
|
-
if regex.search(await tostr(y), await tostr(x)):
|
|
3113
|
+
if regex.search(await tostr(y), await tostr(x), flags=regex.I):
|
|
3109
3114
|
return True
|
|
3110
3115
|
return False
|
|
3111
3116
|
|
|
@@ -173,7 +173,7 @@ def getArgLines(rtype):
|
|
|
173
173
|
for obj in atyp:
|
|
174
174
|
assert isinstance(obj, str)
|
|
175
175
|
tdata = ', '.join([f'``{obj}``' for obj in atyp])
|
|
176
|
-
rline = f'The input type may
|
|
176
|
+
rline = f'The input type may be one of the following: {tdata}.'
|
|
177
177
|
line = f' {name}: {desc} {rline}'
|
|
178
178
|
elif isinstance(atyp, dict):
|
|
179
179
|
logger.warning('Fully declarative input types are not yet supported.')
|
|
@@ -287,7 +287,7 @@ def getReturnLines(rtype, known_types=None, types_prefix=None, suffix=None, isst
|
|
|
287
287
|
elif isinstance(rtype, dict):
|
|
288
288
|
returns = rtype.get('returns')
|
|
289
289
|
assert returns is not None, f'Invalid returns for {rtype}'
|
|
290
|
-
name = returns.get('name', 'Returns')
|
|
290
|
+
name = returns.get('name', 'Returns').title()
|
|
291
291
|
|
|
292
292
|
desc = returns.get('desc')
|
|
293
293
|
rettype = returns.get('type')
|
|
@@ -179,6 +179,14 @@ def getTagGlobRegx(name):
|
|
|
179
179
|
regq = regexizeTagGlob(name)
|
|
180
180
|
return regex.compile(regq)
|
|
181
181
|
|
|
182
|
+
def regexizeEdgeGlob(edge):
|
|
183
|
+
return ReRegex.sub(r'(.+)', regex.escape(edge))
|
|
184
|
+
|
|
185
|
+
@memoize()
|
|
186
|
+
def getEdgeGlobRegx(name):
|
|
187
|
+
regq = regexizeEdgeGlob(name)
|
|
188
|
+
return regex.compile(regq)
|
|
189
|
+
|
|
182
190
|
class TagGlobs:
|
|
183
191
|
'''
|
|
184
192
|
An object that manages multiple tag globs and values for caching.
|
|
@@ -191,7 +199,7 @@ class TagGlobs:
|
|
|
191
199
|
|
|
192
200
|
self.cache.clear()
|
|
193
201
|
|
|
194
|
-
regx =
|
|
202
|
+
regx = self._getGlobRegex(name)
|
|
195
203
|
|
|
196
204
|
glob = (regx, (name, valu))
|
|
197
205
|
|
|
@@ -213,5 +221,12 @@ class TagGlobs:
|
|
|
213
221
|
def get(self, name):
|
|
214
222
|
return self.cache.get(name)
|
|
215
223
|
|
|
224
|
+
def _getGlobRegex(self, name):
|
|
225
|
+
return getTagGlobRegx(name)
|
|
226
|
+
|
|
216
227
|
def _getGlobMatches(self, name):
|
|
217
228
|
return [g[1] for g in self.globs if g[0].fullmatch(name) is not None]
|
|
229
|
+
|
|
230
|
+
class EdgeGlobs(TagGlobs):
|
|
231
|
+
def _getGlobRegex(self, name):
|
|
232
|
+
return getEdgeGlobRegx(name)
|
|
@@ -125,6 +125,7 @@ class LayerApi(s_cell.CellApi):
|
|
|
125
125
|
await self._reqUserAllowed(self.liftperm)
|
|
126
126
|
async for item in self.layr.iterLayerNodeEdits():
|
|
127
127
|
yield item
|
|
128
|
+
await asyncio.sleep(0)
|
|
128
129
|
|
|
129
130
|
@s_cell.adminapi()
|
|
130
131
|
async def saveNodeEdits(self, edits, meta):
|
|
@@ -511,7 +512,7 @@ class StorType:
|
|
|
511
512
|
|
|
512
513
|
async def _liftRegx(self, liftby, valu, reverse=False):
|
|
513
514
|
|
|
514
|
-
regx = regex.compile(valu)
|
|
515
|
+
regx = regex.compile(valu, flags=regex.I)
|
|
515
516
|
|
|
516
517
|
abrvlen = liftby.abrvlen
|
|
517
518
|
isarray = isinstance(liftby, IndxByPropArray)
|
|
@@ -8,7 +8,7 @@ import synapse.lib.layer as s_layer
|
|
|
8
8
|
|
|
9
9
|
logger = logging.getLogger(__name__)
|
|
10
10
|
|
|
11
|
-
maxvers = (0, 2,
|
|
11
|
+
maxvers = (0, 2, 22)
|
|
12
12
|
|
|
13
13
|
class ModelRev:
|
|
14
14
|
|
|
@@ -35,6 +35,7 @@ class ModelRev:
|
|
|
35
35
|
((0, 2, 19), self.revModel_0_2_19),
|
|
36
36
|
((0, 2, 20), self.revModel_0_2_20),
|
|
37
37
|
((0, 2, 21), self.revModel_0_2_21),
|
|
38
|
+
((0, 2, 22), self.revModel_0_2_22),
|
|
38
39
|
)
|
|
39
40
|
|
|
40
41
|
async def _uniqSortArray(self, todoprops, layers):
|
|
@@ -725,6 +726,9 @@ class ModelRev:
|
|
|
725
726
|
await self._normPropValu(layers, 'risk:vuln:name')
|
|
726
727
|
await self._propToForm(layers, 'risk:vuln:name', 'risk:vulnname')
|
|
727
728
|
|
|
729
|
+
async def revModel_0_2_22(self, layers):
|
|
730
|
+
await self._normFormSubs(layers, 'inet:ipv4', cmprvalu='100.64.0.0/10')
|
|
731
|
+
|
|
728
732
|
async def runStorm(self, text, opts=None):
|
|
729
733
|
'''
|
|
730
734
|
Run storm code in a schedcoro and log the output messages.
|
|
@@ -880,7 +884,7 @@ class ModelRev:
|
|
|
880
884
|
if nodeedits:
|
|
881
885
|
await save()
|
|
882
886
|
|
|
883
|
-
async def _normFormSubs(self, layers, formname, liftprop=None):
|
|
887
|
+
async def _normFormSubs(self, layers, formname, liftprop=None, cmprvalu=s_common.novalu, cmpr='='):
|
|
884
888
|
|
|
885
889
|
# NOTE: this API may be used to re-normalize subs but *not* to change their storage types
|
|
886
890
|
# and will *not* auto-populate linked forms from subs which are form types.
|
|
@@ -898,7 +902,36 @@ class ModelRev:
|
|
|
898
902
|
await layr.storNodeEdits(nodeedits, meta)
|
|
899
903
|
nodeedits.clear()
|
|
900
904
|
|
|
901
|
-
|
|
905
|
+
if cmprvalu is s_common.novalu:
|
|
906
|
+
# This is for lifts such as:
|
|
907
|
+
# <formname>
|
|
908
|
+
# <formname>:<liftprop>
|
|
909
|
+
# E.g.:
|
|
910
|
+
# inet:ipv4
|
|
911
|
+
# inet:ipv4:type
|
|
912
|
+
genr = layr.liftByProp(form.name, liftprop)
|
|
913
|
+
|
|
914
|
+
elif liftprop is None:
|
|
915
|
+
# This is for lifts such as:
|
|
916
|
+
# <formname><cmpr><cmprvalu>
|
|
917
|
+
# E.g.:
|
|
918
|
+
# inet:ipv4=1.2.3.4
|
|
919
|
+
|
|
920
|
+
# Don't norm cmprvalu first because it may not be normable
|
|
921
|
+
cmprvals = form.type.getStorCmprs(cmpr, cmprvalu)
|
|
922
|
+
genr = layr.liftByFormValu(form.name, cmprvals)
|
|
923
|
+
|
|
924
|
+
else: # liftprop is not None # pragma: no cover
|
|
925
|
+
# This is for lifts such as:
|
|
926
|
+
# <formname>:<liftprop><cmpr><cmprvalu>
|
|
927
|
+
# E.g.:
|
|
928
|
+
# inet:ipv4:type=private
|
|
929
|
+
|
|
930
|
+
# Don't norm cmprvalu first because it may not be normable
|
|
931
|
+
cmprvals = form.type.getStorCmprs(cmpr, cmprvalu)
|
|
932
|
+
genr = layr.liftByPropValu(form.name, liftprop, cmprvals)
|
|
933
|
+
|
|
934
|
+
async for _, buid, sode in genr:
|
|
902
935
|
|
|
903
936
|
sodevalu = sode.get('valu')
|
|
904
937
|
if sodevalu is None: # pragma: no cover
|
|
@@ -485,10 +485,6 @@ class Node:
|
|
|
485
485
|
raise s_exc.IsRuntForm(mesg='Cannot delete tags from runt nodes.',
|
|
486
486
|
form=self.form.full, tag=tag)
|
|
487
487
|
|
|
488
|
-
curv = self.tags.get(name, s_common.novalu)
|
|
489
|
-
if curv is s_common.novalu:
|
|
490
|
-
return ()
|
|
491
|
-
|
|
492
488
|
pref = name + '.'
|
|
493
489
|
|
|
494
490
|
todel = [(len(t), t) for t in self.tags.keys() if t.startswith(pref)]
|
|
@@ -529,7 +525,8 @@ class Node:
|
|
|
529
525
|
edits.append((s_layer.EDIT_TAG_DEL, (subtag, None), ()))
|
|
530
526
|
|
|
531
527
|
edits.extend(self._getTagPropDel(name))
|
|
532
|
-
|
|
528
|
+
if self.getTag(name, defval=s_common.novalu) is not s_common.novalu:
|
|
529
|
+
edits.append((s_layer.EDIT_TAG_DEL, (name, None), ()))
|
|
533
530
|
|
|
534
531
|
return edits
|
|
535
532
|
|
|
@@ -1147,6 +1147,16 @@ class Snap(s_base.Base):
|
|
|
1147
1147
|
node.nodedata.pop(name, None)
|
|
1148
1148
|
continue
|
|
1149
1149
|
|
|
1150
|
+
if etyp == s_layer.EDIT_EDGE_ADD:
|
|
1151
|
+
verb, n2iden = parms
|
|
1152
|
+
n2 = await self.getNodeByBuid(s_common.uhex(n2iden))
|
|
1153
|
+
callbacks.append((self.view.runEdgeAdd, (node, verb, n2), {}))
|
|
1154
|
+
|
|
1155
|
+
if etyp == s_layer.EDIT_EDGE_DEL:
|
|
1156
|
+
verb, n2iden = parms
|
|
1157
|
+
n2 = await self.getNodeByBuid(s_common.uhex(n2iden))
|
|
1158
|
+
callbacks.append((self.view.runEdgeDel, (node, verb, n2), {}))
|
|
1159
|
+
|
|
1150
1160
|
[await func(*args, **kwargs) for (func, args, kwargs) in callbacks]
|
|
1151
1161
|
|
|
1152
1162
|
if actualedits:
|
|
@@ -45,6 +45,8 @@ Notes:
|
|
|
45
45
|
* node:add
|
|
46
46
|
* node:del
|
|
47
47
|
* prop:set
|
|
48
|
+
* edge:add
|
|
49
|
+
* edge:del
|
|
48
50
|
|
|
49
51
|
When condition is tag:add or tag:del, you may optionally provide a form name
|
|
50
52
|
to restrict the trigger to fire only on tags added or deleted from nodes of
|
|
@@ -56,6 +58,10 @@ Simple one level tag globbing is supported, only at the end after a period,
|
|
|
56
58
|
that is aka.* matches aka.foo and aka.bar but not aka.foo.bar. aka* is not
|
|
57
59
|
supported.
|
|
58
60
|
|
|
61
|
+
When the condition is edge:add or edge:del, you may optionally provide a
|
|
62
|
+
form name or a destination form name to only fire on edges added or deleted
|
|
63
|
+
from nodes of those forms.
|
|
64
|
+
|
|
59
65
|
Examples:
|
|
60
66
|
# Adds a tag to every inet:ipv4 added
|
|
61
67
|
trigger.add node:add --form inet:ipv4 --query {[ +#mytag ]}
|
|
@@ -65,6 +71,13 @@ Examples:
|
|
|
65
71
|
|
|
66
72
|
# Adds a tag #todo to every inet:ipv4 as it is tagged #aka
|
|
67
73
|
trigger.add tag:add --form inet:ipv4 --tag aka --query {[ +#todo ]}
|
|
74
|
+
|
|
75
|
+
# Adds a tag #todo to the N1 node of every refs edge add
|
|
76
|
+
trigger.add edge:add --verb refs --query {[ +#todo ]}
|
|
77
|
+
|
|
78
|
+
# Adds a tag #todo to the N1 node of every seen edge delete, provided that
|
|
79
|
+
# both nodes are of form file:bytes
|
|
80
|
+
trigger.add edge:del --verb seen --form file:bytes --n2form file:bytes --query {[ +#todo ]}
|
|
68
81
|
'''
|
|
69
82
|
|
|
70
83
|
addcrondescr = '''
|
|
@@ -307,6 +320,10 @@ reqValidPkgdef = s_config.getJsValidator({
|
|
|
307
320
|
'name': {'type': 'string'},
|
|
308
321
|
'storm': {'type': 'string'},
|
|
309
322
|
'modconf': {'type': 'object'},
|
|
323
|
+
'apidefs': {
|
|
324
|
+
'type': ['array', 'null'],
|
|
325
|
+
'items': {'$ref': '#/definitions/apidef'},
|
|
326
|
+
},
|
|
310
327
|
'asroot': {'type': 'boolean'},
|
|
311
328
|
'asroot:perms': {'type': 'array',
|
|
312
329
|
'items': {'type': 'array',
|
|
@@ -316,6 +333,67 @@ reqValidPkgdef = s_config.getJsValidator({
|
|
|
316
333
|
'additionalProperties': True,
|
|
317
334
|
'required': ['name', 'storm']
|
|
318
335
|
},
|
|
336
|
+
'apidef': {
|
|
337
|
+
'type': 'object',
|
|
338
|
+
'properties': {
|
|
339
|
+
'name': {'type': 'string'},
|
|
340
|
+
'desc': {'type': 'string'},
|
|
341
|
+
'type': {
|
|
342
|
+
'type': 'object',
|
|
343
|
+
'properties': {
|
|
344
|
+
'type': {
|
|
345
|
+
'type': 'string',
|
|
346
|
+
'enum': ['function']
|
|
347
|
+
},
|
|
348
|
+
'args': {
|
|
349
|
+
'type': 'array',
|
|
350
|
+
'items': {'$ref': '#/definitions/apiarg'},
|
|
351
|
+
},
|
|
352
|
+
'returns': {
|
|
353
|
+
'type': 'object',
|
|
354
|
+
'properties': {
|
|
355
|
+
'name': {
|
|
356
|
+
'type': 'string',
|
|
357
|
+
'enum': ['yields'],
|
|
358
|
+
},
|
|
359
|
+
'desc': {'type': 'string'},
|
|
360
|
+
'type': {
|
|
361
|
+
'oneOf': [
|
|
362
|
+
{'$ref': '#/definitions/apitype'},
|
|
363
|
+
{'type': 'array', 'items': {'$ref': '#/definitions/apitype'}},
|
|
364
|
+
],
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
'additionalProperties': False,
|
|
368
|
+
'required': ['type', 'desc']
|
|
369
|
+
},
|
|
370
|
+
},
|
|
371
|
+
'additionalProperties': False,
|
|
372
|
+
'required': ['type', 'returns'],
|
|
373
|
+
},
|
|
374
|
+
},
|
|
375
|
+
'additionalProperties': False,
|
|
376
|
+
'required': ['name', 'desc', 'type']
|
|
377
|
+
},
|
|
378
|
+
'apiarg': {
|
|
379
|
+
'type': 'object',
|
|
380
|
+
'properties': {
|
|
381
|
+
'name': {'type': 'string'},
|
|
382
|
+
'desc': {'type': 'string'},
|
|
383
|
+
'type': {
|
|
384
|
+
'oneOf': [
|
|
385
|
+
{'$ref': '#/definitions/apitype'},
|
|
386
|
+
{'type': 'array', 'items': {'$ref': '#/definitions/apitype'}},
|
|
387
|
+
],
|
|
388
|
+
},
|
|
389
|
+
'default': {'type': ['boolean', 'integer', 'string', 'null']},
|
|
390
|
+
},
|
|
391
|
+
'additionalProperties': False,
|
|
392
|
+
'required': ['name', 'desc', 'type']
|
|
393
|
+
},
|
|
394
|
+
'apitype': {
|
|
395
|
+
'type': 'string',
|
|
396
|
+
},
|
|
319
397
|
'command': {
|
|
320
398
|
'type': 'object',
|
|
321
399
|
'properties': {
|
|
@@ -999,6 +1077,8 @@ stormcmds = (
|
|
|
999
1077
|
('--form', {'help': 'Form to fire on.'}),
|
|
1000
1078
|
('--tag', {'help': 'Tag to fire on.'}),
|
|
1001
1079
|
('--prop', {'help': 'Property to fire on.'}),
|
|
1080
|
+
('--verb', {'help': 'Edge verb to fire on.'}),
|
|
1081
|
+
('--n2form', {'help': 'The form of the n2 node to fire on.'}),
|
|
1002
1082
|
('--query', {'help': 'Query for the trigger to execute.', 'required': True,
|
|
1003
1083
|
'dest': 'storm', }),
|
|
1004
1084
|
('--async', {'default': False, 'action': 'store_true',
|
|
@@ -274,14 +274,17 @@ class LibHttp(s_stormtypes.Lib):
|
|
|
274
274
|
return {str(k): str(v) for k, v in item.items()}
|
|
275
275
|
return item
|
|
276
276
|
|
|
277
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
277
278
|
async def urlencode(self, text):
|
|
278
279
|
text = await s_stormtypes.tostr(text)
|
|
279
280
|
return urllib.parse.quote_plus(text)
|
|
280
281
|
|
|
282
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
281
283
|
async def urldecode(self, text):
|
|
282
284
|
text = await s_stormtypes.tostr(text)
|
|
283
285
|
return urllib.parse.unquote_plus(text)
|
|
284
286
|
|
|
287
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
285
288
|
async def codereason(self, code):
|
|
286
289
|
code = await s_stormtypes.toint(code)
|
|
287
290
|
return s_common.httpcodereason(code)
|
|
@@ -50,6 +50,7 @@ class BackupLib(s_stormtypes.Lib):
|
|
|
50
50
|
gatekeys = ((self.runt.user.iden, ('backup', 'run'), None),)
|
|
51
51
|
return await self.dyncall('cortex', todo, gatekeys=gatekeys)
|
|
52
52
|
|
|
53
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
53
54
|
async def _listBackups(self):
|
|
54
55
|
todo = s_common.todo('getBackups')
|
|
55
56
|
gatekeys = ((self.runt.user.iden, ('backup', 'list'), None),)
|
|
@@ -35,6 +35,7 @@ class BaseXLib(s_stormtypes.Lib):
|
|
|
35
35
|
'decode': self.decode,
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
38
39
|
async def encode(self, byts, charset):
|
|
39
40
|
if not isinstance(byts, bytes):
|
|
40
41
|
raise s_exc.BadArg(mesg='$lib.basex.encode() requires a bytes argument.')
|
|
@@ -54,6 +55,7 @@ class BaseXLib(s_stormtypes.Lib):
|
|
|
54
55
|
|
|
55
56
|
return ''.join(retn[::-1])
|
|
56
57
|
|
|
58
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
57
59
|
async def decode(self, text, charset):
|
|
58
60
|
text = await s_stormtypes.tostr(text)
|
|
59
61
|
charset = await s_stormtypes.tostr(charset)
|
|
@@ -192,6 +192,7 @@ class CellLib(s_stormtypes.Lib):
|
|
|
192
192
|
|
|
193
193
|
return curv
|
|
194
194
|
|
|
195
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
195
196
|
async def _hotFixesCheck(self):
|
|
196
197
|
if not self.runt.isAdmin():
|
|
197
198
|
mesg = '$lib.cell.stormFixesCheck() requires admin privs.'
|
|
@@ -210,30 +211,35 @@ class CellLib(s_stormtypes.Lib):
|
|
|
210
211
|
|
|
211
212
|
return dowork
|
|
212
213
|
|
|
214
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
213
215
|
async def _getCellInfo(self):
|
|
214
216
|
if not self.runt.isAdmin():
|
|
215
217
|
mesg = '$lib.cell.getCellInfo() requires admin privs.'
|
|
216
218
|
raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
|
|
217
219
|
return await self.runt.snap.core.getCellInfo()
|
|
218
220
|
|
|
221
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
219
222
|
async def _getSystemInfo(self):
|
|
220
223
|
if not self.runt.isAdmin():
|
|
221
224
|
mesg = '$lib.cell.getSystemInfo() requires admin privs.'
|
|
222
225
|
raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
|
|
223
226
|
return await self.runt.snap.core.getSystemInfo()
|
|
224
227
|
|
|
228
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
225
229
|
async def _getBackupInfo(self):
|
|
226
230
|
if not self.runt.isAdmin():
|
|
227
231
|
mesg = '$lib.cell.getBackupInfo() requires admin privs.'
|
|
228
232
|
raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
|
|
229
233
|
return await self.runt.snap.core.getBackupInfo()
|
|
230
234
|
|
|
235
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
231
236
|
async def _getHealthCheck(self):
|
|
232
237
|
if not self.runt.isAdmin():
|
|
233
238
|
mesg = '$lib.cell.getHealthCheck() requires admin privs.'
|
|
234
239
|
raise s_exc.AuthDeny(mesg=mesg, user=self.runt.user.iden, username=self.runt.user.name)
|
|
235
240
|
return await self.runt.snap.core.getHealthCheck()
|
|
236
241
|
|
|
242
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
237
243
|
async def _getMirrorUrls(self, name=None):
|
|
238
244
|
|
|
239
245
|
if not self.runt.isAdmin():
|
|
@@ -265,6 +271,7 @@ class CellLib(s_stormtypes.Lib):
|
|
|
265
271
|
|
|
266
272
|
return await self.runt.snap.core.trimNexsLog(consumers=consumers, timeout=timeout)
|
|
267
273
|
|
|
274
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
268
275
|
async def _uptime(self, name=None):
|
|
269
276
|
|
|
270
277
|
name = await s_stormtypes.tostr(name, noneok=True)
|
|
@@ -47,6 +47,7 @@ class Bzip2Lib(s_stormtypes.Lib):
|
|
|
47
47
|
'un': self.un,
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
50
51
|
async def en(self, valu):
|
|
51
52
|
valu = await s_stormtypes.toprim(valu)
|
|
52
53
|
try:
|
|
@@ -103,6 +104,7 @@ class GzipLib(s_stormtypes.Lib):
|
|
|
103
104
|
'un': self.un,
|
|
104
105
|
}
|
|
105
106
|
|
|
107
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
106
108
|
async def en(self, valu):
|
|
107
109
|
valu = await s_stormtypes.toprim(valu)
|
|
108
110
|
try:
|
|
@@ -159,6 +161,7 @@ class ZlibLib(s_stormtypes.Lib):
|
|
|
159
161
|
'un': self.un,
|
|
160
162
|
}
|
|
161
163
|
|
|
164
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
162
165
|
async def en(self, valu):
|
|
163
166
|
valu = await s_stormtypes.toprim(valu)
|
|
164
167
|
try:
|
|
@@ -180,6 +180,7 @@ class GraphLib(s_stormtypes.Lib):
|
|
|
180
180
|
gdef = await s_stormtypes.toprim(gdef)
|
|
181
181
|
return await self.runt.snap.core.addStormGraph(gdef, user=self.runt.user)
|
|
182
182
|
|
|
183
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
183
184
|
async def _methGraphGet(self, iden=None):
|
|
184
185
|
iden = await s_stormtypes.tostr(iden, noneok=True)
|
|
185
186
|
if iden is None:
|
|
@@ -201,6 +202,7 @@ class GraphLib(s_stormtypes.Lib):
|
|
|
201
202
|
|
|
202
203
|
await self.runt.snap.core.modStormGraph(iden, info, user=self.runt.user)
|
|
203
204
|
|
|
205
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
204
206
|
async def _methGraphList(self):
|
|
205
207
|
projs = []
|
|
206
208
|
async for proj in self.runt.snap.core.getStormGraphs(user=self.runt.user):
|
|
@@ -46,15 +46,19 @@ class LibHashes(s_stormtypes.Lib):
|
|
|
46
46
|
'sha512': self._sha512,
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
49
50
|
async def _md5(self, byts):
|
|
50
51
|
return hashlib.md5(byts, usedforsecurity=False).hexdigest()
|
|
51
52
|
|
|
53
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
52
54
|
async def _sha1(self, byts):
|
|
53
55
|
return hashlib.sha1(byts, usedforsecurity=False).hexdigest()
|
|
54
56
|
|
|
57
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
55
58
|
async def _sha256(self, byts):
|
|
56
59
|
return hashlib.sha256(byts).hexdigest()
|
|
57
60
|
|
|
61
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
58
62
|
async def _sha512(self, byts):
|
|
59
63
|
return hashlib.sha512(byts).hexdigest()
|
|
60
64
|
|
|
@@ -88,6 +92,7 @@ class LibHmac(s_stormtypes.Lib):
|
|
|
88
92
|
'digest': self._digest,
|
|
89
93
|
}
|
|
90
94
|
|
|
95
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
91
96
|
async def _digest(self, key, mesg, alg='sha256') -> bytes:
|
|
92
97
|
key = await s_stormtypes.toprim(key)
|
|
93
98
|
if not isinstance(key, bytes):
|
|
@@ -74,11 +74,13 @@ class HexLib(s_stormtypes.Lib):
|
|
|
74
74
|
'signext': self.signext,
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
77
78
|
async def encode(self, valu):
|
|
78
79
|
if not isinstance(valu, bytes):
|
|
79
80
|
raise s_exc.BadArg(mesg='$lib.hex.encode() requires a bytes argument.')
|
|
80
81
|
return s_common.ehex(valu)
|
|
81
82
|
|
|
83
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
82
84
|
async def decode(self, valu):
|
|
83
85
|
valu = await s_stormtypes.tostr(valu)
|
|
84
86
|
try:
|
|
@@ -86,6 +88,7 @@ class HexLib(s_stormtypes.Lib):
|
|
|
86
88
|
except binascii.Error as e:
|
|
87
89
|
raise s_exc.BadArg(mesg=f'$lib.hex.decode(): {e}')
|
|
88
90
|
|
|
91
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
89
92
|
async def toint(self, valu, signed=False):
|
|
90
93
|
valu = await s_stormtypes.tostr(valu)
|
|
91
94
|
signed = await s_stormtypes.tobool(signed)
|
|
@@ -97,6 +100,7 @@ class HexLib(s_stormtypes.Lib):
|
|
|
97
100
|
|
|
98
101
|
return int.from_bytes(byts, 'big', signed=signed)
|
|
99
102
|
|
|
103
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
100
104
|
async def fromint(self, valu, length, signed=False):
|
|
101
105
|
valu = await s_stormtypes.toint(valu)
|
|
102
106
|
length = await s_stormtypes.toint(length)
|
|
@@ -108,6 +112,7 @@ class HexLib(s_stormtypes.Lib):
|
|
|
108
112
|
except OverflowError as e:
|
|
109
113
|
raise s_exc.BadArg(mesg=f'$lib.hex.fromint(): {e}')
|
|
110
114
|
|
|
115
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
111
116
|
async def trimext(self, valu):
|
|
112
117
|
valu = await s_stormtypes.tostr(valu)
|
|
113
118
|
|
|
@@ -124,6 +129,7 @@ class HexLib(s_stormtypes.Lib):
|
|
|
124
129
|
break
|
|
125
130
|
return valu
|
|
126
131
|
|
|
132
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
127
133
|
async def signext(self, valu, length):
|
|
128
134
|
valu = await s_stormtypes.tostr(valu)
|
|
129
135
|
length = await s_stormtypes.toint(length)
|
|
@@ -494,6 +494,7 @@ class MitreAttackFlowLib(s_stormtypes.Lib):
|
|
|
494
494
|
'norm': self._norm,
|
|
495
495
|
}
|
|
496
496
|
|
|
497
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
497
498
|
async def _norm(self, flow):
|
|
498
499
|
flow = await s_stormtypes.toprim(flow)
|
|
499
500
|
|
|
@@ -619,6 +620,7 @@ class CvssLib(s_stormtypes.Lib):
|
|
|
619
620
|
'calculateFromProps': self.calculateFromProps,
|
|
620
621
|
}
|
|
621
622
|
|
|
623
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
622
624
|
async def vectToProps(self, text):
|
|
623
625
|
s_common.deprecated('$lib.infosec.cvss.vectToProps()', '2.137.0', '3.0.0')
|
|
624
626
|
await self.runt.snap.warnonce('$lib.infosec.cvss.vectToProps() is deprecated.')
|
|
@@ -690,6 +692,7 @@ class CvssLib(s_stormtypes.Lib):
|
|
|
690
692
|
|
|
691
693
|
return rval
|
|
692
694
|
|
|
695
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
693
696
|
async def calculateFromProps(self, props, vers='3.1'):
|
|
694
697
|
|
|
695
698
|
vers = await s_stormtypes.tostr(vers)
|
|
@@ -815,6 +818,7 @@ class CvssLib(s_stormtypes.Lib):
|
|
|
815
818
|
|
|
816
819
|
return rval
|
|
817
820
|
|
|
821
|
+
@s_stormtypes.stormfunc(readonly=True)
|
|
818
822
|
async def vectToScore(self, vect, vers=None):
|
|
819
823
|
vers = await s_stormtypes.tostr(vers, noneok=True)
|
|
820
824
|
|