synapse 2.170.0__tar.gz → 2.173.1__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.170.0/synapse.egg-info → synapse-2.173.1}/PKG-INFO +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/pyproject.toml +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/common.py +20 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/cortex.py +98 -6
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/agenda.py +13 -7
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/ast.py +9 -8
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/cache.py +2 -2
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/cell.py +7 -3
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/coro.py +12 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/hiveauth.py +81 -4
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/layer.py +124 -84
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/lmdbslab.py +34 -10
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/node.py +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/slabseqn.py +11 -5
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/storm.py +7 -71
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormhttp.py +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/auth.py +19 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/cell.py +42 -4
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/compression.py +6 -6
- synapse-2.173.1/synapse/lib/stormlib/env.py +50 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/gen.py +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/model.py +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormtypes.py +35 -11
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/types.py +7 -7
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/version.py +2 -2
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/view.py +13 -13
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/base.py +13 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/biz.py +14 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/economic.py +3 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/inet.py +474 -4
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/infotech.py +163 -22
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/orgs.py +22 -2
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/person.py +5 -2
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/planning.py +5 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/risk.py +15 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/transport.py +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_common.py +15 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_cortex.py +9 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_ast.py +2 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_cell.py +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_hiveauth.py +139 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_layer.py +207 -44
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_lmdbslab.py +49 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_auth.py +22 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_cell.py +47 -0
- synapse-2.173.1/synapse/tests/test_lib_stormlib_env.py +25 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormtypes.py +12 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_types.py +1 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_view.py +9 -9
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_base.py +5 -3
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_economic.py +4 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_files.py +1 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_inet.py +405 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_infotech.py +135 -3
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_orgs.py +14 -2
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_person.py +2 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_risk.py +8 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_storm.py +46 -8
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/utils.py +30 -9
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/storm.py +14 -6
- {synapse-2.170.0 → synapse-2.173.1/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.170.0 → synapse-2.173.1}/synapse.egg-info/SOURCES.txt +2 -0
- {synapse-2.170.0 → synapse-2.173.1}/LICENSE +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/README.rst +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/setup.cfg +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/axon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/cells.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/cmds/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/cmds/boss.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/cmds/cortex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/cmds/hive.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/cryotank.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/daemon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/datamodel.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/exc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/glob.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/aha.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/autodoc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/base.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/boss.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/certdir.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/chop.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/cli.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/cmd.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/cmdr.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/config.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/const.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/datfile.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/encoding.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/gis.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/grammar.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/hashitem.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/hashset.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/health.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/hive.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/httpapi.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/ingest.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/interval.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/jupyter.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/link.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/modelrev.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/module.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/modules.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/msgpack.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/nexus.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/oauth.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/output.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/parser.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/queue.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/reflect.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/rstorm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/schemas.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/scope.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/scrape.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/share.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/snap.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/spooled.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/storm.lark +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/storm_format.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/structlog.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/task.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/thishost.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/thisplat.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/threads.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/time.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/trigger.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/cvss.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/iana.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/macho.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/pe.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/lookup/timezones.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/mindmeld.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/auth.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/belief.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/crypto.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/dns.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/files.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/geopol.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/geospace.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/gov/cn.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/gov/intl.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/gov/us.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/language.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/material.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/media.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/proj.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/science.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/syn.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/models/telco.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/aha.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/axon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/cell.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/cortex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/cryotank.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/servers/stemcell.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/telepath.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/test.dat +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/nopmod.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_axon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_data.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_exc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_glob.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_init.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_jupyter.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_utils.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/aha/list.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/autodoc.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/backup.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/cellauth.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/cmdr.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/csvtool.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/easycert.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/feed.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/genpkg.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/guid.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/hive/load.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/hive/save.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/livebackup.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/modrole.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/moduser.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/promote.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/pullfile.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/pushfile.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/reload.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/tools/rstorm.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/utils/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/utils/getrefs.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/utils.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.170.0 → synapse-2.173.1}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1183,6 +1183,26 @@ def httpcodereason(code):
|
|
|
1183
1183
|
except ValueError:
|
|
1184
1184
|
return f'Unknown HTTP status code {code}'
|
|
1185
1185
|
|
|
1186
|
+
def trimText(text: str, n: int = 256, placeholder: str = '...') -> str:
|
|
1187
|
+
'''
|
|
1188
|
+
Trim a text string larger than n characters and add a placeholder at the end.
|
|
1189
|
+
|
|
1190
|
+
Args:
|
|
1191
|
+
text: String to trim.
|
|
1192
|
+
n: Number of characters to allow.
|
|
1193
|
+
placeholder: Placeholder text.
|
|
1194
|
+
|
|
1195
|
+
Returns:
|
|
1196
|
+
The original string or the trimmed string.
|
|
1197
|
+
'''
|
|
1198
|
+
if len(text) <= n:
|
|
1199
|
+
return text
|
|
1200
|
+
plen = len(placeholder)
|
|
1201
|
+
mlen = n - plen
|
|
1202
|
+
assert plen > 0
|
|
1203
|
+
assert n > plen
|
|
1204
|
+
return f'{text[:mlen]}{placeholder}'
|
|
1205
|
+
|
|
1186
1206
|
# TODO: Switch back to using asyncio.wait_for when we are using py 3.12+
|
|
1187
1207
|
# This is a workaround for a race where asyncio.wait_for can end up
|
|
1188
1208
|
# ignoring cancellation https://github.com/python/cpython/issues/86296
|
|
@@ -56,6 +56,7 @@ import synapse.lib.stormwhois as s_stormwhois # NOQA
|
|
|
56
56
|
import synapse.lib.stormtypes as s_stormtypes
|
|
57
57
|
|
|
58
58
|
import synapse.lib.stormlib.aha as s_stormlib_aha # NOQA
|
|
59
|
+
import synapse.lib.stormlib.env as s_stormlib_env # NOQA
|
|
59
60
|
import synapse.lib.stormlib.gen as s_stormlib_gen # NOQA
|
|
60
61
|
import synapse.lib.stormlib.gis as s_stormlib_gis # NOQA
|
|
61
62
|
import synapse.lib.stormlib.hex as s_stormlib_hex # NOQA
|
|
@@ -4548,7 +4549,11 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4548
4549
|
continue
|
|
4549
4550
|
|
|
4550
4551
|
view.layers = [lyr for lyr in view.layers if lyr.iden != layriden]
|
|
4551
|
-
|
|
4552
|
+
layridens = [lyr.iden for lyr in view.layers]
|
|
4553
|
+
await view.info.set('layers', layridens)
|
|
4554
|
+
|
|
4555
|
+
mesg = {'iden': view.iden, 'layers': layridens}
|
|
4556
|
+
await self.feedBeholder('view:setlayers', mesg, gates=[view.iden, layridens[0]])
|
|
4552
4557
|
|
|
4553
4558
|
if view.parent.iden == viewiden:
|
|
4554
4559
|
if newparent is None:
|
|
@@ -4558,6 +4563,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4558
4563
|
view.parent = newview
|
|
4559
4564
|
await view.info.set('parent', newparent)
|
|
4560
4565
|
|
|
4566
|
+
mesg = {'iden': view.iden, 'name': 'parent', 'valu': newparent}
|
|
4567
|
+
await self.feedBeholder('view:set', mesg, gates=[view.iden, layridens[0]])
|
|
4568
|
+
|
|
4561
4569
|
if not layrinuse and (layr := self.layers.get(layriden)) is not None:
|
|
4562
4570
|
del self.layers[layriden]
|
|
4563
4571
|
|
|
@@ -4682,6 +4690,13 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4682
4690
|
|
|
4683
4691
|
return self.layers.get(iden)
|
|
4684
4692
|
|
|
4693
|
+
def reqLayer(self, iden=None):
|
|
4694
|
+
layr = self.getLayer(iden=iden)
|
|
4695
|
+
if layr is None:
|
|
4696
|
+
mesg = f'No layer found with iden: {iden}'
|
|
4697
|
+
raise s_exc.NoSuchLayer(mesg=mesg, iden=iden)
|
|
4698
|
+
return layr
|
|
4699
|
+
|
|
4685
4700
|
def listLayers(self):
|
|
4686
4701
|
return self.layers.values()
|
|
4687
4702
|
|
|
@@ -5038,10 +5053,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5038
5053
|
await self.setNexsIndx(maxindx)
|
|
5039
5054
|
|
|
5040
5055
|
async def saveLayerNodeEdits(self, layriden, edits, meta):
|
|
5041
|
-
layr = self.
|
|
5042
|
-
if layr is None:
|
|
5043
|
-
mesg = f'No layer found with iden: {layriden}'
|
|
5044
|
-
raise s_exc.NoSuchLayer(mesg=mesg, iden=layriden)
|
|
5056
|
+
layr = self.reqLayer(layriden)
|
|
5045
5057
|
return await layr.saveNodeEdits(edits, meta)
|
|
5046
5058
|
|
|
5047
5059
|
async def cloneLayer(self, iden, ldef=None):
|
|
@@ -6905,6 +6917,83 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
6905
6917
|
self.slab.delete(name.encode(), db=self.vaultsbynamedb)
|
|
6906
6918
|
self.slab.delete(bidn, db=self.vaultsdb)
|
|
6907
6919
|
|
|
6920
|
+
def _propAllowedReason(self, user, perms, gateiden=None, default=None):
|
|
6921
|
+
'''
|
|
6922
|
+
Similar to allowed, but always prefer the default value specified by the caller.
|
|
6923
|
+
Default values are still pulled from permdefs if there is a match there; but still prefer caller default.
|
|
6924
|
+
This results in a ternary response that can be used to know if a rule had a positive/negative or no match.
|
|
6925
|
+
The matching reason metadata is also returned.
|
|
6926
|
+
'''
|
|
6927
|
+
if default is None:
|
|
6928
|
+
permdef = self.getPermDef(perms)
|
|
6929
|
+
if permdef:
|
|
6930
|
+
default = permdef.get('default', default)
|
|
6931
|
+
|
|
6932
|
+
return user.getAllowedReason(perms, gateiden=gateiden, default=default)
|
|
6933
|
+
|
|
6934
|
+
def confirmPropSet(self, user, prop, layriden):
|
|
6935
|
+
meta0 = self._propAllowedReason(user, prop.setperms[0], gateiden=layriden)
|
|
6936
|
+
|
|
6937
|
+
if meta0.isadmin:
|
|
6938
|
+
return
|
|
6939
|
+
|
|
6940
|
+
allowed0 = meta0.value
|
|
6941
|
+
|
|
6942
|
+
meta1 = self._propAllowedReason(user, prop.setperms[1], gateiden=layriden)
|
|
6943
|
+
allowed1 = meta1.value
|
|
6944
|
+
|
|
6945
|
+
if allowed0:
|
|
6946
|
+
if allowed1:
|
|
6947
|
+
return
|
|
6948
|
+
elif allowed1 is False:
|
|
6949
|
+
# This is a allow-with-precedence case.
|
|
6950
|
+
# Inspect meta to determine if the rule a0 is more specific than rule a1
|
|
6951
|
+
if len(meta0.rule) >= len(meta1.rule):
|
|
6952
|
+
return
|
|
6953
|
+
user.raisePermDeny(prop.setperms[0], gateiden=layriden)
|
|
6954
|
+
return
|
|
6955
|
+
|
|
6956
|
+
if allowed1:
|
|
6957
|
+
if allowed0 is None:
|
|
6958
|
+
return
|
|
6959
|
+
# allowed0 here is False. This is a deny-with-precedence case.
|
|
6960
|
+
# Inspect meta to determine if the rule a1 is more specific than rule a0
|
|
6961
|
+
if len(meta1.rule) > len(meta0.rule):
|
|
6962
|
+
return
|
|
6963
|
+
|
|
6964
|
+
user.raisePermDeny(prop.setperms[0], gateiden=layriden)
|
|
6965
|
+
|
|
6966
|
+
def confirmPropDel(self, user, prop, layriden):
|
|
6967
|
+
meta0 = self._propAllowedReason(user, prop.delperms[0], gateiden=layriden)
|
|
6968
|
+
|
|
6969
|
+
if meta0.isadmin:
|
|
6970
|
+
return
|
|
6971
|
+
|
|
6972
|
+
allowed0 = meta0.value
|
|
6973
|
+
meta1 = self._propAllowedReason(user, prop.delperms[1], gateiden=layriden)
|
|
6974
|
+
allowed1 = meta1.value
|
|
6975
|
+
|
|
6976
|
+
if allowed0:
|
|
6977
|
+
if allowed1:
|
|
6978
|
+
return
|
|
6979
|
+
elif allowed1 is False:
|
|
6980
|
+
# This is a allow-with-precedence case.
|
|
6981
|
+
# Inspect meta to determine if the rule a0 is more specific than rule a1
|
|
6982
|
+
if len(meta0.rule) >= len(meta1.rule):
|
|
6983
|
+
return
|
|
6984
|
+
user.raisePermDeny(prop.delperms[0], gateiden=layriden)
|
|
6985
|
+
return
|
|
6986
|
+
|
|
6987
|
+
if allowed1:
|
|
6988
|
+
if allowed0 is None:
|
|
6989
|
+
return
|
|
6990
|
+
# allowed0 here is False. This is a deny-with-precedence case.
|
|
6991
|
+
# Inspect meta to determine if the rule a1 is more specific than rule a0
|
|
6992
|
+
if len(meta1.rule) > len(meta0.rule):
|
|
6993
|
+
return
|
|
6994
|
+
|
|
6995
|
+
user.raisePermDeny(prop.delperms[0], gateiden=layriden)
|
|
6996
|
+
|
|
6908
6997
|
@contextlib.asynccontextmanager
|
|
6909
6998
|
async def getTempCortex(mods=None):
|
|
6910
6999
|
'''
|
|
@@ -6922,7 +7011,10 @@ async def getTempCortex(mods=None):
|
|
|
6922
7011
|
'''
|
|
6923
7012
|
with s_common.getTempDir() as dirn:
|
|
6924
7013
|
logger.debug(f'Creating temporary cortex as {dirn}')
|
|
6925
|
-
|
|
7014
|
+
conf = {
|
|
7015
|
+
'health:sysctl:checks': False,
|
|
7016
|
+
}
|
|
7017
|
+
async with await Cortex.anit(dirn, conf=conf) as core:
|
|
6926
7018
|
if mods:
|
|
6927
7019
|
for mod in mods:
|
|
6928
7020
|
await core.loadCoreModule(mod)
|
|
@@ -572,7 +572,8 @@ class Agenda(s_base.Base):
|
|
|
572
572
|
self._next_indx += 1
|
|
573
573
|
|
|
574
574
|
if iden in self.appts:
|
|
575
|
-
|
|
575
|
+
mesg = f'Cron job already exists with iden: {iden}'
|
|
576
|
+
raise s_exc.DupIden(iden=iden, mesg=mesg)
|
|
576
577
|
|
|
577
578
|
if not query:
|
|
578
579
|
raise ValueError('"query" key of cdef parameter is not present or empty')
|
|
@@ -622,20 +623,22 @@ class Agenda(s_base.Base):
|
|
|
622
623
|
if appt is not None:
|
|
623
624
|
return appt
|
|
624
625
|
|
|
625
|
-
mesg = f'No cron job with
|
|
626
|
+
mesg = f'No cron job with iden {iden}'
|
|
626
627
|
raise s_exc.NoSuchIden(iden=iden, mesg=mesg)
|
|
627
628
|
|
|
628
629
|
async def enable(self, iden):
|
|
629
630
|
appt = self.appts.get(iden)
|
|
630
631
|
if appt is None:
|
|
631
|
-
|
|
632
|
+
mesg = f'No cron job with iden: {iden}'
|
|
633
|
+
raise s_exc.NoSuchIden(iden=iden, mesg=mesg)
|
|
632
634
|
|
|
633
635
|
await self.mod(iden, appt.query)
|
|
634
636
|
|
|
635
637
|
async def disable(self, iden):
|
|
636
638
|
appt = self.appts.get(iden)
|
|
637
639
|
if appt is None:
|
|
638
|
-
|
|
640
|
+
mesg = f'No cron job with iden: {iden}'
|
|
641
|
+
raise s_exc.NoSuchIden(iden=iden, mesg=mesg)
|
|
639
642
|
|
|
640
643
|
appt.enabled = False
|
|
641
644
|
await appt.save()
|
|
@@ -646,7 +649,8 @@ class Agenda(s_base.Base):
|
|
|
646
649
|
'''
|
|
647
650
|
appt = self.appts.get(iden)
|
|
648
651
|
if appt is None:
|
|
649
|
-
|
|
652
|
+
mesg = f'No cron job with iden: {iden}'
|
|
653
|
+
raise s_exc.NoSuchIden(iden=iden, mesg=mesg)
|
|
650
654
|
|
|
651
655
|
if not query:
|
|
652
656
|
raise ValueError('empty query')
|
|
@@ -664,7 +668,8 @@ class Agenda(s_base.Base):
|
|
|
664
668
|
'''
|
|
665
669
|
appt = self.appts.get(croniden)
|
|
666
670
|
if appt is None:
|
|
667
|
-
|
|
671
|
+
mesg = f'No cron job with iden: {croniden}'
|
|
672
|
+
raise s_exc.NoSuchIden(iden=croniden, mesg=mesg)
|
|
668
673
|
|
|
669
674
|
appt.view = viewiden
|
|
670
675
|
|
|
@@ -676,7 +681,8 @@ class Agenda(s_base.Base):
|
|
|
676
681
|
'''
|
|
677
682
|
appt = self.appts.get(iden)
|
|
678
683
|
if appt is None:
|
|
679
|
-
|
|
684
|
+
mesg = f'No cron job with iden: {iden}'
|
|
685
|
+
raise s_exc.NoSuchIden(iden=iden, mesg=mesg)
|
|
680
686
|
|
|
681
687
|
try:
|
|
682
688
|
heappos = self.apptheap.index(appt)
|
|
@@ -733,8 +733,9 @@ class SubQuery(Oper):
|
|
|
733
733
|
retn.append(valunode.ndef[1])
|
|
734
734
|
|
|
735
735
|
if len(retn) > limit:
|
|
736
|
-
|
|
737
|
-
|
|
736
|
+
query = self.kids[0].text
|
|
737
|
+
mesg = f'Subquery used as a value yielded too many (>{limit}) nodes. {s_common.trimText(query)}'
|
|
738
|
+
raise self.addExcInfo(s_exc.BadTypeValu(mesg=mesg, text=query))
|
|
738
739
|
|
|
739
740
|
return retn
|
|
740
741
|
|
|
@@ -987,12 +988,12 @@ class ForLoop(Oper):
|
|
|
987
988
|
try:
|
|
988
989
|
numitems = len(item)
|
|
989
990
|
except TypeError:
|
|
990
|
-
mesg = f'Number of items to unpack does not match the number of variables: {repr(item)
|
|
991
|
+
mesg = f'Number of items to unpack does not match the number of variables: {s_common.trimText(repr(item))}'
|
|
991
992
|
exc = s_exc.StormVarListError(mesg=mesg, names=name)
|
|
992
993
|
raise self.kids[1].addExcInfo(exc)
|
|
993
994
|
|
|
994
995
|
if len(name) != numitems:
|
|
995
|
-
mesg = f'Number of items to unpack does not match the number of variables: {repr(item)
|
|
996
|
+
mesg = f'Number of items to unpack does not match the number of variables: {s_common.trimText(repr(item))}'
|
|
996
997
|
exc = s_exc.StormVarListError(mesg=mesg, names=name, numitems=numitems)
|
|
997
998
|
raise self.kids[1].addExcInfo(exc)
|
|
998
999
|
|
|
@@ -1053,12 +1054,12 @@ class ForLoop(Oper):
|
|
|
1053
1054
|
try:
|
|
1054
1055
|
numitems = len(item)
|
|
1055
1056
|
except TypeError:
|
|
1056
|
-
mesg = f'Number of items to unpack does not match the number of variables: {repr(item)
|
|
1057
|
+
mesg = f'Number of items to unpack does not match the number of variables: {s_common.trimText(repr(item))}'
|
|
1057
1058
|
exc = s_exc.StormVarListError(mesg=mesg, names=name)
|
|
1058
1059
|
raise self.kids[1].addExcInfo(exc)
|
|
1059
1060
|
|
|
1060
1061
|
if len(name) != numitems:
|
|
1061
|
-
mesg = f'Number of items to unpack does not match the number of variables: {repr(item)
|
|
1062
|
+
mesg = f'Number of items to unpack does not match the number of variables: {s_common.trimText(repr(item))}'
|
|
1062
1063
|
exc = s_exc.StormVarListError(mesg=mesg, names=name, numitems=numitems)
|
|
1063
1064
|
raise self.kids[1].addExcInfo(exc)
|
|
1064
1065
|
|
|
@@ -1306,7 +1307,7 @@ class VarListSetOper(Oper):
|
|
|
1306
1307
|
item = [i async for i in s_stormtypes.toiter(item)]
|
|
1307
1308
|
|
|
1308
1309
|
if len(item) < len(names):
|
|
1309
|
-
mesg = f'Attempting to assign more items than we have variables to assign to: {repr(item)
|
|
1310
|
+
mesg = f'Attempting to assign more items than we have variables to assign to: {s_common.trimText(repr(item))}'
|
|
1310
1311
|
exc = s_exc.StormVarListError(mesg=mesg, names=names, numitems=len(item))
|
|
1311
1312
|
raise self.kids[0].addExcInfo(exc)
|
|
1312
1313
|
|
|
@@ -1322,7 +1323,7 @@ class VarListSetOper(Oper):
|
|
|
1322
1323
|
item = [i async for i in s_stormtypes.toiter(item)]
|
|
1323
1324
|
|
|
1324
1325
|
if len(item) < len(names):
|
|
1325
|
-
mesg = f'Attempting to assign more items than we have variables to assign to: {repr(item)
|
|
1326
|
+
mesg = f'Attempting to assign more items than we have variables to assign to: {s_common.trimText(repr(item))}'
|
|
1326
1327
|
exc = s_exc.StormVarListError(mesg=mesg, names=names, numitems=len(item))
|
|
1327
1328
|
raise self.kids[0].addExcInfo(exc)
|
|
1328
1329
|
|
|
@@ -66,7 +66,7 @@ class FixedCache:
|
|
|
66
66
|
|
|
67
67
|
def get(self, key):
|
|
68
68
|
if self.iscorocall:
|
|
69
|
-
raise s_exc.BadArg('cache was initialized with coroutine. Must use aget')
|
|
69
|
+
raise s_exc.BadArg(mesg='cache was initialized with coroutine. Must use aget')
|
|
70
70
|
|
|
71
71
|
valu = self.cache.get(key, s_common.novalu)
|
|
72
72
|
if valu is not s_common.novalu:
|
|
@@ -81,7 +81,7 @@ class FixedCache:
|
|
|
81
81
|
|
|
82
82
|
async def aget(self, key):
|
|
83
83
|
if not self.iscorocall:
|
|
84
|
-
raise s_exc.BadOperArg('cache was initialized with non coroutine. Must use get')
|
|
84
|
+
raise s_exc.BadOperArg(mesg='cache was initialized with non coroutine. Must use get')
|
|
85
85
|
|
|
86
86
|
valu = self.cache.get(key, s_common.novalu)
|
|
87
87
|
if valu is not s_common.novalu:
|
|
@@ -55,7 +55,6 @@ import synapse.lib.lmdbslab as s_lmdbslab
|
|
|
55
55
|
import synapse.lib.thisplat as s_thisplat
|
|
56
56
|
|
|
57
57
|
import synapse.lib.crypto.passwd as s_passwd
|
|
58
|
-
import synapse.lib.platforms.linux as s_linux
|
|
59
58
|
|
|
60
59
|
import synapse.tools.backup as s_t_backup
|
|
61
60
|
|
|
@@ -1465,7 +1464,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
1465
1464
|
async def _runSysctlLoop(self):
|
|
1466
1465
|
while not self.isfini:
|
|
1467
1466
|
fixvals = []
|
|
1468
|
-
sysctls =
|
|
1467
|
+
sysctls = s_thisplat.getSysctls()
|
|
1469
1468
|
|
|
1470
1469
|
for name, valu in self.SYSCTL_VALS.items():
|
|
1471
1470
|
if (sysval := sysctls.get(name)) != valu:
|
|
@@ -1484,7 +1483,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
1484
1483
|
extra = await self.getLogExtra(sysctls=fixvals)
|
|
1485
1484
|
logger.warning(mesg, extra=extra)
|
|
1486
1485
|
|
|
1487
|
-
await
|
|
1486
|
+
await self.waitfini(self.SYSCTL_CHECK_FREQ)
|
|
1488
1487
|
|
|
1489
1488
|
def _getAhaAdmin(self):
|
|
1490
1489
|
name = self.conf.get('aha:admin')
|
|
@@ -4143,6 +4142,11 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
4143
4142
|
async with await s_spooled.Set.anit(dirn=self.dirn, cell=self) as sset:
|
|
4144
4143
|
yield sset
|
|
4145
4144
|
|
|
4145
|
+
@contextlib.asynccontextmanager
|
|
4146
|
+
async def getSpooledDict(self):
|
|
4147
|
+
async with await s_spooled.Dict.anit(dirn=self.dirn, cell=self) as sdict:
|
|
4148
|
+
yield sdict
|
|
4149
|
+
|
|
4146
4150
|
async def addSignalHandlers(self):
|
|
4147
4151
|
await s_base.Base.addSignalHandlers(self)
|
|
4148
4152
|
|
|
@@ -39,6 +39,18 @@ async def agen(item):
|
|
|
39
39
|
for x in item:
|
|
40
40
|
yield x
|
|
41
41
|
|
|
42
|
+
async def pause(genr, iterations=10):
|
|
43
|
+
idx = 0
|
|
44
|
+
|
|
45
|
+
async for out in agen(genr):
|
|
46
|
+
yield out
|
|
47
|
+
idx += 1
|
|
48
|
+
|
|
49
|
+
if idx % iterations == 0:
|
|
50
|
+
await asyncio.sleep(0)
|
|
51
|
+
|
|
52
|
+
return
|
|
53
|
+
|
|
42
54
|
def executor(func, *args, **kwargs):
|
|
43
55
|
'''
|
|
44
56
|
Execute a non-coroutine function in the ioloop executor pool.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import dataclasses
|
|
3
3
|
|
|
4
|
-
from typing import Union
|
|
4
|
+
from typing import Optional, Union
|
|
5
5
|
|
|
6
6
|
import synapse.exc as s_exc
|
|
7
7
|
import synapse.common as s_common
|
|
@@ -941,16 +941,38 @@ class HiveUser(HiveRuler):
|
|
|
941
941
|
if not self.allowed(perm):
|
|
942
942
|
await self.addRule((True, perm), indx=0)
|
|
943
943
|
|
|
944
|
-
def allowed(self,
|
|
944
|
+
def allowed(self,
|
|
945
|
+
perm: tuple[str, ...],
|
|
946
|
+
default: Optional[str] = None,
|
|
947
|
+
gateiden: Optional[str] = None,
|
|
948
|
+
deepdeny: bool = False) -> Union[bool, None]:
|
|
949
|
+
'''
|
|
950
|
+
Check if a user is allowed a given permission.
|
|
951
|
+
|
|
952
|
+
Args:
|
|
953
|
+
perm: The permission tuple to check.
|
|
954
|
+
default: The default rule value if there is no match.
|
|
955
|
+
gateiden: The gate iden to check against.
|
|
956
|
+
deepdeny: If True, give precedence for checking deny rules which are more specific than the requested
|
|
957
|
+
permission.
|
|
958
|
+
|
|
959
|
+
Notes:
|
|
960
|
+
The use of the deepdeny argument is intended for checking a less-specific part of a permissions tree, in
|
|
961
|
+
order to know about possible short circuit options. Using it to check a more specific part may have
|
|
962
|
+
unintended results.
|
|
963
|
+
|
|
964
|
+
Returns:
|
|
965
|
+
The allowed value of the permission.
|
|
966
|
+
'''
|
|
945
967
|
perm = tuple(perm)
|
|
946
|
-
return self.permcache.get((perm, default, gateiden))
|
|
968
|
+
return self.permcache.get((perm, default, gateiden, deepdeny))
|
|
947
969
|
|
|
948
970
|
def _allowed(self, pkey):
|
|
949
971
|
'''
|
|
950
972
|
NOTE: This must remain in sync with any changes to _getAllowedReason()!
|
|
951
973
|
'''
|
|
952
974
|
|
|
953
|
-
perm, default, gateiden = pkey
|
|
975
|
+
perm, default, gateiden, deepdeny = pkey
|
|
954
976
|
|
|
955
977
|
if self.info.get('locked'):
|
|
956
978
|
return False
|
|
@@ -958,6 +980,9 @@ class HiveUser(HiveRuler):
|
|
|
958
980
|
if self.info.get('admin'):
|
|
959
981
|
return True
|
|
960
982
|
|
|
983
|
+
if deepdeny and self._hasDeepDeny(perm, gateiden):
|
|
984
|
+
return False
|
|
985
|
+
|
|
961
986
|
# 1. check authgate user rules
|
|
962
987
|
if gateiden is not None:
|
|
963
988
|
|
|
@@ -1055,6 +1080,58 @@ class HiveUser(HiveRuler):
|
|
|
1055
1080
|
|
|
1056
1081
|
return _allowedReason(default, default=True)
|
|
1057
1082
|
|
|
1083
|
+
def _hasDeepDeny(self, perm, gateiden):
|
|
1084
|
+
|
|
1085
|
+
permlen = len(perm)
|
|
1086
|
+
|
|
1087
|
+
# 1. check authgate user rules
|
|
1088
|
+
if gateiden is not None:
|
|
1089
|
+
|
|
1090
|
+
info = self.authgates.get(gateiden)
|
|
1091
|
+
if info is not None:
|
|
1092
|
+
|
|
1093
|
+
if info.get('admin'):
|
|
1094
|
+
return False
|
|
1095
|
+
|
|
1096
|
+
for allow, path in info.get('rules', ()):
|
|
1097
|
+
if allow:
|
|
1098
|
+
continue
|
|
1099
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1100
|
+
return True
|
|
1101
|
+
|
|
1102
|
+
# 2. check user rules
|
|
1103
|
+
for allow, path in self.info.get('rules', ()):
|
|
1104
|
+
if allow:
|
|
1105
|
+
continue
|
|
1106
|
+
|
|
1107
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1108
|
+
return True
|
|
1109
|
+
|
|
1110
|
+
# 3. check authgate role rules
|
|
1111
|
+
if gateiden is not None:
|
|
1112
|
+
|
|
1113
|
+
for role in self.getRoles():
|
|
1114
|
+
|
|
1115
|
+
info = role.authgates.get(gateiden)
|
|
1116
|
+
if info is None:
|
|
1117
|
+
continue
|
|
1118
|
+
|
|
1119
|
+
for allow, path in info.get('rules', ()):
|
|
1120
|
+
if allow:
|
|
1121
|
+
continue
|
|
1122
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1123
|
+
return True
|
|
1124
|
+
|
|
1125
|
+
# 4. check role rules
|
|
1126
|
+
for role in self.getRoles():
|
|
1127
|
+
for allow, path in role.info.get('rules', ()):
|
|
1128
|
+
if allow:
|
|
1129
|
+
continue
|
|
1130
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1131
|
+
return True
|
|
1132
|
+
|
|
1133
|
+
return False
|
|
1134
|
+
|
|
1058
1135
|
def clearAuthCache(self):
|
|
1059
1136
|
self.permcache.clear()
|
|
1060
1137
|
self.allowedcache.clear()
|