synapse 2.178.0__tar.gz → 2.180.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.178.0/synapse.egg-info → synapse-2.180.0}/PKG-INFO +1 -1
- {synapse-2.178.0 → synapse-2.180.0}/pyproject.toml +1 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/cortex.py +166 -31
- {synapse-2.178.0 → synapse-2.180.0}/synapse/datamodel.py +47 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/exc.py +1 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/aha.py +2 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/ast.py +110 -76
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/base.py +12 -3
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/cell.py +150 -11
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/coro.py +14 -0
- synapse-2.180.0/synapse/lib/drive.py +551 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/layer.py +1 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/lmdbslab.py +2 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/modelrev.py +5 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/node.py +14 -4
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/schemas.py +97 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/snap.py +36 -11
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/storm.py +9 -5
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormhttp.py +1 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/modelext.py +29 -3
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/stix.py +44 -17
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/vault.py +2 -2
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormtypes.py +1 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/types.py +9 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/version.py +2 -2
- synapse-2.180.0/synapse/lookup/pe.py +530 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/auth.py +2 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/dns.py +24 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/geopol.py +3 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/geospace.py +4 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/inet.py +1 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/infotech.py +135 -92
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/person.py +5 -2
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/telco.py +3 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_cortex.py +45 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_aha.py +17 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_ast.py +231 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_cell.py +225 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_coro.py +12 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_layer.py +22 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_modelrev.py +7 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_node.py +12 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_storm.py +32 -7
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormhttp.py +40 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_modelext.py +55 -3
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_stix.py +15 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_vault.py +11 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormtypes.py +5 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_types.py +9 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_dns.py +8 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_geopol.py +2 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_geospace.py +3 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_inet.py +10 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_infotech.py +47 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_person.py +2 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_syn.py +11 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_telco.py +2 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_utils_stormcov.py +1 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/changelog.py +28 -0
- {synapse-2.178.0 → synapse-2.180.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.178.0 → synapse-2.180.0}/synapse.egg-info/SOURCES.txt +1 -0
- synapse-2.178.0/synapse/lookup/pe.py +0 -265
- {synapse-2.178.0 → synapse-2.180.0}/LICENSE +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/README.rst +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/setup.cfg +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/axon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/cells.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/common.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/cryotank.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/daemon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.178.0 → synapse-2.180.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.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.178.0 → synapse-2.180.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.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.178.0 → synapse-2.180.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.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.178.0 → synapse-2.180.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.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/glob.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/agenda.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/auth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/boss.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/cache.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/chop.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/cli.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/config.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/const.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/gis.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/health.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/hive.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/hiveauth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/interval.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/jupyter.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/link.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/module.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/modules.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/output.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/parser.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/queue.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/scope.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/share.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/storm.lark +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/task.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/threads.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/time.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lib/view.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/mindmeld.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/base.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/belief.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/biz.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/crypto.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/economic.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/entity.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/files.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/language.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/material.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/media.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/orgs.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/planning.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/proj.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/risk.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/science.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/syn.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/models/transport.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/aha.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/axon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/cell.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/telepath.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_jupyter.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_changelog.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tests/utils.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/backup.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/feed.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/guid.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/promote.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/reload.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/tools/storm.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.178.0 → synapse-2.180.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1354,20 +1354,20 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1354
1354
|
'desc': 'Controls access to adding specific extended model properties.',
|
|
1355
1355
|
'ex': 'model.prop.add._foo:bar'},
|
|
1356
1356
|
{'perm': ('model', 'prop', 'del'), 'gate': 'cortex',
|
|
1357
|
-
'desc': 'Controls access to deleting extended model properties.'},
|
|
1357
|
+
'desc': 'Controls access to deleting extended model properties and values.'},
|
|
1358
1358
|
{'perm': ('model', 'prop', 'del', '<form>'), 'gate': 'cortex',
|
|
1359
|
-
'desc': 'Controls access to deleting specific extended model properties.',
|
|
1359
|
+
'desc': 'Controls access to deleting specific extended model properties and values.',
|
|
1360
1360
|
'ex': 'model.prop.del._foo:bar'},
|
|
1361
1361
|
|
|
1362
1362
|
{'perm': ('model', 'tagprop', 'add'), 'gate': 'cortex',
|
|
1363
|
-
'desc': 'Controls access to adding extended model tag properties.'},
|
|
1363
|
+
'desc': 'Controls access to adding extended model tag properties and values.'},
|
|
1364
1364
|
{'perm': ('model', 'tagprop', 'del'), 'gate': 'cortex',
|
|
1365
|
-
'desc': 'Controls access to deleting extended model tag properties.'},
|
|
1365
|
+
'desc': 'Controls access to deleting extended model tag properties and values.'},
|
|
1366
1366
|
|
|
1367
1367
|
{'perm': ('model', 'univ', 'add'), 'gate': 'cortex',
|
|
1368
1368
|
'desc': 'Controls access to adding extended model universal properties.'},
|
|
1369
1369
|
{'perm': ('model', 'univ', 'del'), 'gate': 'cortex',
|
|
1370
|
-
'desc': 'Controls access to deleting extended model universal properties.'},
|
|
1370
|
+
'desc': 'Controls access to deleting extended model universal properties and values.'},
|
|
1371
1371
|
|
|
1372
1372
|
{'perm': ('node',), 'gate': 'layer',
|
|
1373
1373
|
'desc': 'Controls all node edits in a layer.'},
|
|
@@ -1626,6 +1626,25 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
1626
1626
|
if self.isactive:
|
|
1627
1627
|
await self.finiStormPool()
|
|
1628
1628
|
|
|
1629
|
+
@s_nexus.Pusher.onPushAuto('model:lock:prop')
|
|
1630
|
+
async def setPropLocked(self, name, locked):
|
|
1631
|
+
prop = self.model.reqProp(name)
|
|
1632
|
+
self.modellocks.set(f'prop/{name}', locked)
|
|
1633
|
+
prop.locked = locked
|
|
1634
|
+
|
|
1635
|
+
@s_nexus.Pusher.onPushAuto('model:lock:univ')
|
|
1636
|
+
async def setUnivLocked(self, name, locked):
|
|
1637
|
+
prop = self.model.reqUniv(name)
|
|
1638
|
+
self.modellocks.set(f'univ/{name}', locked)
|
|
1639
|
+
for prop in self.model.getAllUnivs(name):
|
|
1640
|
+
prop.locked = locked
|
|
1641
|
+
|
|
1642
|
+
@s_nexus.Pusher.onPushAuto('model:lock:tagprop')
|
|
1643
|
+
async def setTagPropLocked(self, name, locked):
|
|
1644
|
+
prop = self.model.reqTagProp(name)
|
|
1645
|
+
self.modellocks.set(f'tagprop/{name}', locked)
|
|
1646
|
+
prop.locked = locked
|
|
1647
|
+
|
|
1629
1648
|
@s_nexus.Pusher.onPushAuto('model:depr:lock')
|
|
1630
1649
|
async def setDeprLock(self, name, locked):
|
|
1631
1650
|
|
|
@@ -2093,17 +2112,15 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
2093
2112
|
async def onSetTrigDoc(node, prop, valu):
|
|
2094
2113
|
valu = str(valu)
|
|
2095
2114
|
iden = node.ndef[1]
|
|
2096
|
-
trig = node.snap.view.triggers.get(iden)
|
|
2097
2115
|
node.snap.user.confirm(('trigger', 'set', 'doc'), gateiden=iden)
|
|
2098
|
-
await
|
|
2116
|
+
await node.snap.view.setTriggerInfo(iden, 'doc', valu)
|
|
2099
2117
|
node.props[prop.name] = valu
|
|
2100
2118
|
|
|
2101
2119
|
async def onSetTrigName(node, prop, valu):
|
|
2102
2120
|
valu = str(valu)
|
|
2103
2121
|
iden = node.ndef[1]
|
|
2104
|
-
trig = node.snap.view.triggers.get(iden)
|
|
2105
2122
|
node.snap.user.confirm(('trigger', 'set', 'name'), gateiden=iden)
|
|
2106
|
-
await
|
|
2123
|
+
await node.snap.view.setTriggerInfo(iden, 'name', valu)
|
|
2107
2124
|
node.props[prop.name] = valu
|
|
2108
2125
|
|
|
2109
2126
|
async def onSetCronDoc(node, prop, valu):
|
|
@@ -3437,7 +3454,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3437
3454
|
|
|
3438
3455
|
for layr in self.layers.values():
|
|
3439
3456
|
async for item in layr.iterFormRows(formname):
|
|
3440
|
-
mesg = f'Nodes still exist with form: {formname}'
|
|
3457
|
+
mesg = f'Nodes still exist with form: {formname} in layer {layr.iden}'
|
|
3441
3458
|
raise s_exc.CantDelForm(mesg=mesg)
|
|
3442
3459
|
|
|
3443
3460
|
self.model.delForm(formname)
|
|
@@ -3486,14 +3503,116 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3486
3503
|
await self.feedBeholder('model:prop:add', {'form': form, 'prop': prop.pack()})
|
|
3487
3504
|
|
|
3488
3505
|
async def delFormProp(self, form, prop):
|
|
3506
|
+
self.reqExtProp(form, prop)
|
|
3507
|
+
return await self._push('model:prop:del', form, prop)
|
|
3508
|
+
|
|
3509
|
+
async def _delAllFormProp(self, formname, propname, meta):
|
|
3510
|
+
'''
|
|
3511
|
+
Delete all instances of a property from all layers.
|
|
3512
|
+
|
|
3513
|
+
NOTE: This does not fire triggers.
|
|
3514
|
+
'''
|
|
3515
|
+
self.reqExtProp(formname, propname)
|
|
3516
|
+
|
|
3517
|
+
fullname = f'{formname}:{propname}'
|
|
3518
|
+
prop = self.model.prop(fullname)
|
|
3519
|
+
|
|
3520
|
+
await self.setPropLocked(fullname, True)
|
|
3521
|
+
|
|
3522
|
+
for layr in list(self.layers.values()):
|
|
3523
|
+
|
|
3524
|
+
genr = layr.iterPropRows(formname, propname)
|
|
3525
|
+
|
|
3526
|
+
async for rows in s_coro.chunks(genr):
|
|
3527
|
+
nodeedits = []
|
|
3528
|
+
for buid, valu in rows:
|
|
3529
|
+
nodeedits.append((buid, prop.form.name, (
|
|
3530
|
+
(s_layer.EDIT_PROP_DEL, (prop.name, None, prop.type.stortype), ()),
|
|
3531
|
+
)))
|
|
3532
|
+
|
|
3533
|
+
await layr.saveNodeEdits(nodeedits, meta)
|
|
3534
|
+
await asyncio.sleep(0)
|
|
3535
|
+
|
|
3536
|
+
async def _delAllUnivProp(self, propname, meta):
|
|
3537
|
+
'''
|
|
3538
|
+
Delete all instances of a universal property from all layers.
|
|
3539
|
+
|
|
3540
|
+
NOTE: This does not fire triggers.
|
|
3541
|
+
'''
|
|
3542
|
+
self.reqExtUniv(propname)
|
|
3543
|
+
|
|
3544
|
+
full = f'.{propname}'
|
|
3545
|
+
prop = self.model.univ(full)
|
|
3546
|
+
|
|
3547
|
+
await self.setUnivLocked(full, True)
|
|
3548
|
+
|
|
3549
|
+
for layr in list(self.layers.values()):
|
|
3550
|
+
|
|
3551
|
+
genr = layr.iterUnivRows(full)
|
|
3552
|
+
|
|
3553
|
+
async for rows in s_coro.chunks(genr):
|
|
3554
|
+
nodeedits = []
|
|
3555
|
+
for buid, valu in rows:
|
|
3556
|
+
sode = await layr.getStorNode(buid)
|
|
3557
|
+
nodeedits.append((buid, sode.get('form'), (
|
|
3558
|
+
(s_layer.EDIT_PROP_DEL, (prop.name, None, prop.type.stortype), ()),
|
|
3559
|
+
)))
|
|
3560
|
+
|
|
3561
|
+
await layr.saveNodeEdits(nodeedits, meta)
|
|
3562
|
+
await asyncio.sleep(0)
|
|
3563
|
+
|
|
3564
|
+
async def _delAllTagProp(self, propname, meta):
|
|
3565
|
+
'''
|
|
3566
|
+
Delete all instances of a tag property from all layers.
|
|
3567
|
+
|
|
3568
|
+
NOTE: This does not fire triggers.
|
|
3569
|
+
'''
|
|
3570
|
+
self.reqExtTagProp(propname)
|
|
3571
|
+
prop = self.model.getTagProp(propname)
|
|
3572
|
+
|
|
3573
|
+
await self.setTagPropLocked(propname, True)
|
|
3574
|
+
|
|
3575
|
+
for layr in list(self.layers.values()):
|
|
3576
|
+
|
|
3577
|
+
for form, tag, tagprop in layr.getTagProps():
|
|
3578
|
+
|
|
3579
|
+
if tagprop != propname: # pragma: no cover
|
|
3580
|
+
await asyncio.sleep(0)
|
|
3581
|
+
continue
|
|
3582
|
+
|
|
3583
|
+
genr = layr.iterTagPropRows(tag, tagprop, form)
|
|
3584
|
+
|
|
3585
|
+
async for rows in s_coro.chunks(genr):
|
|
3586
|
+
nodeedits = []
|
|
3587
|
+
for buid, valu in rows:
|
|
3588
|
+
nodeedits.append((buid, form, (
|
|
3589
|
+
(s_layer.EDIT_TAGPROP_DEL, (tag, prop.name, None, prop.type.stortype), ()),
|
|
3590
|
+
)))
|
|
3591
|
+
|
|
3592
|
+
await layr.saveNodeEdits(nodeedits, meta)
|
|
3593
|
+
await asyncio.sleep(0)
|
|
3594
|
+
|
|
3595
|
+
def reqExtProp(self, form, prop):
|
|
3489
3596
|
full = f'{form}:{prop}'
|
|
3490
3597
|
pdef = self.extprops.get(full)
|
|
3491
|
-
|
|
3492
3598
|
if pdef is None:
|
|
3493
3599
|
mesg = f'No ext prop named {full}'
|
|
3494
3600
|
raise s_exc.NoSuchProp(form=form, prop=prop, mesg=mesg)
|
|
3601
|
+
return pdef
|
|
3495
3602
|
|
|
3496
|
-
|
|
3603
|
+
def reqExtUniv(self, prop):
|
|
3604
|
+
udef = self.extunivs.get(prop)
|
|
3605
|
+
if udef is None:
|
|
3606
|
+
mesg = f'No ext univ named {prop}'
|
|
3607
|
+
raise s_exc.NoSuchUniv(name=prop, mesg=mesg)
|
|
3608
|
+
return udef
|
|
3609
|
+
|
|
3610
|
+
def reqExtTagProp(self, name):
|
|
3611
|
+
pdef = self.exttagprops.get(name)
|
|
3612
|
+
if pdef is None:
|
|
3613
|
+
mesg = f'No tag prop named {name}'
|
|
3614
|
+
raise s_exc.NoSuchTagProp(mesg=mesg, name=name)
|
|
3615
|
+
return pdef
|
|
3497
3616
|
|
|
3498
3617
|
@s_nexus.Pusher.onPush('model:prop:del')
|
|
3499
3618
|
async def _delFormProp(self, form, prop):
|
|
@@ -3508,22 +3627,19 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3508
3627
|
|
|
3509
3628
|
for layr in self.layers.values():
|
|
3510
3629
|
async for item in layr.iterPropRows(form, prop):
|
|
3511
|
-
mesg = f'Nodes still exist with prop: {form}:{prop}'
|
|
3630
|
+
mesg = f'Nodes still exist with prop: {form}:{prop} in layer {layr.iden}'
|
|
3512
3631
|
raise s_exc.CantDelProp(mesg=mesg)
|
|
3513
3632
|
|
|
3514
3633
|
self.model.delFormProp(form, prop)
|
|
3515
3634
|
self.extprops.pop(full, None)
|
|
3635
|
+
self.modellocks.pop(f'prop/{full}', None)
|
|
3516
3636
|
await self.fire('core:extmodel:change',
|
|
3517
3637
|
form=form, prop=prop, act='del', type='formprop')
|
|
3518
3638
|
|
|
3519
3639
|
await self.feedBeholder('model:prop:del', {'form': form, 'prop': prop})
|
|
3520
3640
|
|
|
3521
3641
|
async def delUnivProp(self, prop):
|
|
3522
|
-
|
|
3523
|
-
if udef is None:
|
|
3524
|
-
mesg = f'No ext univ named {prop}'
|
|
3525
|
-
raise s_exc.NoSuchUniv(name=prop, mesg=mesg)
|
|
3526
|
-
|
|
3642
|
+
self.reqExtUniv(prop)
|
|
3527
3643
|
return await self._push('model:univ:del', prop)
|
|
3528
3644
|
|
|
3529
3645
|
@s_nexus.Pusher.onPush('model:univ:del')
|
|
@@ -3538,11 +3654,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3538
3654
|
univname = '.' + prop
|
|
3539
3655
|
for layr in self.layers.values():
|
|
3540
3656
|
async for item in layr.iterUnivRows(univname):
|
|
3541
|
-
mesg = f'Nodes still exist with universal prop: {prop}'
|
|
3657
|
+
mesg = f'Nodes still exist with universal prop: {prop} in layer {layr.iden}'
|
|
3542
3658
|
raise s_exc.CantDelUniv(mesg=mesg)
|
|
3543
3659
|
|
|
3544
3660
|
self.model.delUnivProp(prop)
|
|
3545
3661
|
self.extunivs.pop(prop, None)
|
|
3662
|
+
self.modellocks.pop(f'univ/{prop}', None)
|
|
3546
3663
|
await self.fire('core:extmodel:change', name=prop, act='del', type='univ')
|
|
3547
3664
|
await self.feedBeholder('model:univ:del', {'prop': univname})
|
|
3548
3665
|
|
|
@@ -3574,11 +3691,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3574
3691
|
await self.feedBeholder('model:tagprop:add', tagp.pack())
|
|
3575
3692
|
|
|
3576
3693
|
async def delTagProp(self, name):
|
|
3577
|
-
|
|
3578
|
-
if pdef is None:
|
|
3579
|
-
mesg = f'No tag prop named {name}'
|
|
3580
|
-
raise s_exc.NoSuchProp(mesg=mesg, name=name)
|
|
3581
|
-
|
|
3694
|
+
self.reqExtTagProp(name)
|
|
3582
3695
|
return await self._push('model:tagprop:del', name)
|
|
3583
3696
|
|
|
3584
3697
|
@s_nexus.Pusher.onPush('model:tagprop:del')
|
|
@@ -3589,12 +3702,13 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3589
3702
|
|
|
3590
3703
|
for layr in self.layers.values():
|
|
3591
3704
|
if await layr.hasTagProp(name):
|
|
3592
|
-
mesg = f'Nodes still exist with tagprop: {name}'
|
|
3705
|
+
mesg = f'Nodes still exist with tagprop: {name} in layer {layr.iden}'
|
|
3593
3706
|
raise s_exc.CantDelProp(mesg=mesg)
|
|
3594
3707
|
|
|
3595
3708
|
self.model.delTagProp(name)
|
|
3596
3709
|
|
|
3597
3710
|
self.exttagprops.pop(name, None)
|
|
3711
|
+
self.modellocks.pop(f'tagprop/{name}', None)
|
|
3598
3712
|
await self.fire('core:tagprop:change', name=name, act='del')
|
|
3599
3713
|
await self.feedBeholder('model:tagprop:del', {'tagprop': name})
|
|
3600
3714
|
|
|
@@ -3941,7 +4055,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3941
4055
|
self.stormvars.set(s_stormlib_cell.runtime_fixes_key, s_stormlib_cell.getMaxHotFixes())
|
|
3942
4056
|
|
|
3943
4057
|
async def _initDeprLocks(self):
|
|
4058
|
+
|
|
3944
4059
|
self.deprlocks = self.cortexdata.getSubKeyVal('model:deprlocks:')
|
|
4060
|
+
self.modellocks = self.cortexdata.getSubKeyVal('model:locks:')
|
|
4061
|
+
|
|
3945
4062
|
# TODO: 3.0.0 conversion will truncate this hive key
|
|
3946
4063
|
|
|
3947
4064
|
if self.inaugural:
|
|
@@ -3967,6 +4084,24 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
3967
4084
|
if _type is not None:
|
|
3968
4085
|
_type.locked = locked
|
|
3969
4086
|
|
|
4087
|
+
for name, locked in self.modellocks.items():
|
|
4088
|
+
|
|
4089
|
+
prop = None
|
|
4090
|
+
elemtype, elemname = name.split('/', 1)
|
|
4091
|
+
|
|
4092
|
+
if elemtype == 'prop':
|
|
4093
|
+
prop = self.model.prop(elemname)
|
|
4094
|
+
elif elemtype == 'univ':
|
|
4095
|
+
prop = self.model.univ(elemname)
|
|
4096
|
+
if prop is not None:
|
|
4097
|
+
for univ in self.model.getAllUnivs(elemname):
|
|
4098
|
+
univ.locked = locked
|
|
4099
|
+
elif elemtype == 'tagprop':
|
|
4100
|
+
prop = self.model.getTagProp(elemname)
|
|
4101
|
+
|
|
4102
|
+
if prop is not None:
|
|
4103
|
+
prop.locked = locked
|
|
4104
|
+
|
|
3970
4105
|
async def _initJsonStor(self):
|
|
3971
4106
|
|
|
3972
4107
|
self.jsonurl = self.conf.get('jsonstor')
|
|
@@ -5595,7 +5730,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5595
5730
|
|
|
5596
5731
|
if (nexsoffs := opts.get('nexsoffs')) is not None:
|
|
5597
5732
|
if not await self.waitNexsOffs(nexsoffs, timeout=opts.get('nexstimeout')):
|
|
5598
|
-
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs}
|
|
5733
|
+
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs} in count()')
|
|
5599
5734
|
|
|
5600
5735
|
view = self._viewFromOpts(opts)
|
|
5601
5736
|
|
|
@@ -5659,7 +5794,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5659
5794
|
|
|
5660
5795
|
if (nexsoffs := opts.get('nexsoffs')) is not None:
|
|
5661
5796
|
if not await self.waitNexsOffs(nexsoffs, timeout=opts.get('nexstimeout')):
|
|
5662
|
-
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs}.')
|
|
5797
|
+
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs} in storm().')
|
|
5663
5798
|
|
|
5664
5799
|
view = self._viewFromOpts(opts)
|
|
5665
5800
|
async for mesg in view.storm(text, opts=opts):
|
|
@@ -5686,7 +5821,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5686
5821
|
|
|
5687
5822
|
if (nexsoffs := opts.get('nexsoffs')) is not None:
|
|
5688
5823
|
if not await self.waitNexsOffs(nexsoffs, timeout=opts.get('nexstimeout')):
|
|
5689
|
-
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs}.')
|
|
5824
|
+
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs} in callStorm().')
|
|
5690
5825
|
|
|
5691
5826
|
view = self._viewFromOpts(opts)
|
|
5692
5827
|
return await view.callStorm(text, opts=opts)
|
|
@@ -5714,7 +5849,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
5714
5849
|
|
|
5715
5850
|
if (nexsoffs := opts.get('nexsoffs')) is not None:
|
|
5716
5851
|
if not await self.waitNexsOffs(nexsoffs, timeout=opts.get('nexstimeout')):
|
|
5717
|
-
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs}.')
|
|
5852
|
+
raise s_exc.TimeOut(mesg=f'Timeout waiting for nexus offset {nexsoffs} in exportStorm().')
|
|
5718
5853
|
|
|
5719
5854
|
user = self._userFromOpts(opts)
|
|
5720
5855
|
view = self._viewFromOpts(opts)
|
|
@@ -7072,6 +7207,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
7072
7207
|
raise s_exc.BadArg('Only vault names and permissions can be changed.')
|
|
7073
7208
|
|
|
7074
7209
|
vault = self.reqVault(iden)
|
|
7210
|
+
oldv = vault.get(key)
|
|
7075
7211
|
vault[key] = valu
|
|
7076
7212
|
|
|
7077
7213
|
s_schemas.reqValidVault(vault)
|
|
@@ -7079,8 +7215,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
7079
7215
|
bidn = s_common.uhex(iden)
|
|
7080
7216
|
|
|
7081
7217
|
if key == 'name':
|
|
7082
|
-
|
|
7083
|
-
self.slab.delete(name.encode(), db=self.vaultsbynamedb)
|
|
7218
|
+
self.slab.delete(oldv.encode(), db=self.vaultsbynamedb)
|
|
7084
7219
|
self.slab.put(valu.encode(), bidn, db=self.vaultsbynamedb)
|
|
7085
7220
|
|
|
7086
7221
|
self.slab.put(bidn, s_msgpack.en(vault), db=self.vaultsdb)
|
|
@@ -30,6 +30,7 @@ class TagProp:
|
|
|
30
30
|
self.info = info
|
|
31
31
|
self.tdef = tdef
|
|
32
32
|
self.model = model
|
|
33
|
+
self.locked = False
|
|
33
34
|
|
|
34
35
|
self.utf8 = name.encode()
|
|
35
36
|
self.nenc = name.encode() + b'\x00'
|
|
@@ -127,6 +128,10 @@ class Prop:
|
|
|
127
128
|
self.deprecated = self.info.get('deprecated', False)
|
|
128
129
|
|
|
129
130
|
self.type = self.modl.getTypeClone(typedef)
|
|
131
|
+
self.typehash = self.type.typehash
|
|
132
|
+
|
|
133
|
+
if self.type.isarray:
|
|
134
|
+
self.arraytypehash = self.type.arraytype.typehash
|
|
130
135
|
|
|
131
136
|
if form is not None:
|
|
132
137
|
form.setProp(name, self)
|
|
@@ -269,6 +274,11 @@ class Form:
|
|
|
269
274
|
if self.type is None:
|
|
270
275
|
raise s_exc.NoSuchType(name=name)
|
|
271
276
|
|
|
277
|
+
self.typehash = self.type.typehash
|
|
278
|
+
|
|
279
|
+
if self.type.isarray:
|
|
280
|
+
self.arraytypehash = self.type.arraytype.typehash
|
|
281
|
+
|
|
272
282
|
self.form = self
|
|
273
283
|
|
|
274
284
|
self.props = {} # name: Prop()
|
|
@@ -462,6 +472,7 @@ class Model:
|
|
|
462
472
|
self.modeldefs = []
|
|
463
473
|
|
|
464
474
|
self.univs = {}
|
|
475
|
+
self.allunivs = collections.defaultdict(list)
|
|
465
476
|
|
|
466
477
|
self.propsbytype = collections.defaultdict(dict) # name: Prop()
|
|
467
478
|
self.arraysbytype = collections.defaultdict(dict)
|
|
@@ -620,6 +631,30 @@ class Model:
|
|
|
620
631
|
self.formprefixcache[prefix] = forms
|
|
621
632
|
return forms
|
|
622
633
|
|
|
634
|
+
def reqProp(self, name):
|
|
635
|
+
prop = self.prop(name)
|
|
636
|
+
if prop is not None:
|
|
637
|
+
return prop
|
|
638
|
+
|
|
639
|
+
mesg = f'No property named {name}.'
|
|
640
|
+
raise s_exc.NoSuchProp(mesg=mesg, name=name)
|
|
641
|
+
|
|
642
|
+
def reqUniv(self, name):
|
|
643
|
+
prop = self.univ(name)
|
|
644
|
+
if prop is not None:
|
|
645
|
+
return prop
|
|
646
|
+
|
|
647
|
+
mesg = f'No universal property named {name}.'
|
|
648
|
+
raise s_exc.NoSuchUniv(mesg=mesg, name=name)
|
|
649
|
+
|
|
650
|
+
def reqTagProp(self, name):
|
|
651
|
+
prop = self.getTagProp(name)
|
|
652
|
+
if prop is not None:
|
|
653
|
+
return prop
|
|
654
|
+
|
|
655
|
+
mesg = f'No tag property named {name}.'
|
|
656
|
+
raise s_exc.NoSuchTagProp(mesg=mesg, name=name)
|
|
657
|
+
|
|
623
658
|
def reqFormsByPrefix(self, prefix, extra=None):
|
|
624
659
|
forms = self.getFormsByPrefix(prefix)
|
|
625
660
|
if not forms:
|
|
@@ -965,13 +1000,18 @@ class Model:
|
|
|
965
1000
|
|
|
966
1001
|
def _addFormUniv(self, form, name, tdef, info):
|
|
967
1002
|
|
|
1003
|
+
univ = self.reqUniv(name)
|
|
1004
|
+
|
|
968
1005
|
prop = Prop(self, form, name, tdef, info)
|
|
1006
|
+
prop.locked = univ.locked
|
|
969
1007
|
|
|
970
1008
|
full = f'{form.name}{name}'
|
|
971
1009
|
|
|
972
1010
|
self.props[full] = prop
|
|
973
1011
|
self.props[(form.name, name)] = prop
|
|
974
1012
|
|
|
1013
|
+
self.allunivs[name].append(prop)
|
|
1014
|
+
|
|
975
1015
|
def addUnivProp(self, name, tdef, info):
|
|
976
1016
|
|
|
977
1017
|
base = '.' + name
|
|
@@ -985,8 +1025,13 @@ class Model:
|
|
|
985
1025
|
self.props[base] = univ
|
|
986
1026
|
self.univs[base] = univ
|
|
987
1027
|
|
|
1028
|
+
self.allunivs[base].append(univ)
|
|
1029
|
+
|
|
988
1030
|
for form in self.forms.values():
|
|
989
|
-
self._addFormUniv(form, base, tdef, info)
|
|
1031
|
+
prop = self._addFormUniv(form, base, tdef, info)
|
|
1032
|
+
|
|
1033
|
+
def getAllUnivs(self, name):
|
|
1034
|
+
return list(self.allunivs.get(name, ()))
|
|
990
1035
|
|
|
991
1036
|
def addFormProp(self, formname, propname, tdef, info):
|
|
992
1037
|
form = self.forms.get(formname)
|
|
@@ -1090,6 +1135,7 @@ class Model:
|
|
|
1090
1135
|
raise s_exc.NoSuchUniv(name=propname)
|
|
1091
1136
|
|
|
1092
1137
|
self.univs.pop(univname, None)
|
|
1138
|
+
self.allunivs.pop(univname, None)
|
|
1093
1139
|
|
|
1094
1140
|
for form in self.forms.values():
|
|
1095
1141
|
self.delFormProp(form.name, univname)
|
|
@@ -733,7 +733,7 @@ class AhaCell(s_cell.Cell):
|
|
|
733
733
|
# that do not intend to listen for provisioning.
|
|
734
734
|
hostname = self.conf.get('dns:name')
|
|
735
735
|
if hostname is not None:
|
|
736
|
-
return f'ssl://{hostname}
|
|
736
|
+
return f'ssl://0.0.0.0:27272?hostname={hostname}'
|
|
737
737
|
|
|
738
738
|
def _getDmonListen(self):
|
|
739
739
|
|
|
@@ -776,6 +776,7 @@ class AhaCell(s_cell.Cell):
|
|
|
776
776
|
if provurl is not None:
|
|
777
777
|
self.provdmon = await ProvDmon.anit(self)
|
|
778
778
|
self.onfini(self.provdmon)
|
|
779
|
+
logger.info(f'provision listening: {provurl}')
|
|
779
780
|
self.provaddr = await self.provdmon.listen(provurl)
|
|
780
781
|
|
|
781
782
|
async def _clearInactiveSessions(self):
|