synapse 2.185.0__tar.gz → 2.186.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.185.0/synapse.egg-info → synapse-2.186.0}/PKG-INFO +1 -1
- {synapse-2.185.0 → synapse-2.186.0}/pyproject.toml +1 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/cortex.py +3 -2
- {synapse-2.185.0 → synapse-2.186.0}/synapse/exc.py +2 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/ast.py +1 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cell.py +65 -2
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/drive.py +45 -10
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/snap.py +0 -6
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/types.py +6 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/version.py +2 -2
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/risk.py +3 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cortex.py +10 -5
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_base.py +2 -2
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_cell.py +15 -4
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_risk.py +2 -0
- synapse-2.186.0/synapse/tests/test_tools_snapshot.py +47 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/clone.py +3 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/easycert.py +1 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/enroll.py +3 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/provision/service.py +3 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/provision/user.py +3 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/livebackup.py +3 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/promote.py +9 -3
- synapse-2.186.0/synapse/tools/snapshot.py +69 -0
- {synapse-2.185.0 → synapse-2.186.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.185.0 → synapse-2.186.0}/synapse.egg-info/SOURCES.txt +2 -0
- {synapse-2.185.0 → synapse-2.186.0}/LICENSE +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/README.rst +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/setup.cfg +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/assets/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/assets/storm/migrations/model-0.2.28.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/axon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/cells.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/common.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/cryotank.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/daemon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.185.0 → synapse-2.186.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.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.185.0 → synapse-2.186.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.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.185.0 → synapse-2.186.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.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.185.0 → synapse-2.186.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.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/datamodel.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/glob.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/agenda.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/aha.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/auth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/base.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/boss.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cache.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/chop.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cli.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/config.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/const.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/coro.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/gis.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/health.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hive.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/hiveauth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/interval.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/layer.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/link.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/module.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/modules.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/node.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/output.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/parser.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/queue.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/schemas.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/scope.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/share.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/storm.lark +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/storm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormtypes.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/task.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/threads.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/time.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lib/view.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/mindmeld.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/auth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/base.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/belief.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/biz.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/crypto.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/dns.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/doc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/economic.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/entity.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/files.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/geopol.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/geospace.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/inet.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/infotech.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/language.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/material.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/math.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/media.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/orgs.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/person.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/planning.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/proj.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/science.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/syn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/telco.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/models/transport.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/aha.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/axon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/cell.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/telepath.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_assets.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormtypes.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_math.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_changelog.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_promote.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tests/utils.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/backup.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/changelog.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/feed.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/guid.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/reload.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/tools/storm.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.185.0 → synapse-2.186.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -2056,9 +2056,10 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
2056
2056
|
continue
|
|
2057
2057
|
|
|
2058
2058
|
if not regex.fullmatch(regx[i], parts[i]):
|
|
2059
|
-
|
|
2059
|
+
mesg = f'Tag part ({parts[i]}) of tag ({tagname}) does not match the tag model regex: [{regx[i]}]'
|
|
2060
|
+
return (False, mesg)
|
|
2060
2061
|
|
|
2061
|
-
return True
|
|
2062
|
+
return (True, None)
|
|
2062
2063
|
|
|
2063
2064
|
async def getTagPrune(self, tagname):
|
|
2064
2065
|
return self.tagprune.get(tagname)
|
|
@@ -4579,7 +4579,7 @@ class EditTagAdd(Edit):
|
|
|
4579
4579
|
else:
|
|
4580
4580
|
oper_offset = 0
|
|
4581
4581
|
|
|
4582
|
-
excignore = (s_exc.BadTypeValu,
|
|
4582
|
+
excignore = (s_exc.BadTypeValu,) if oper_offset == 1 else ()
|
|
4583
4583
|
|
|
4584
4584
|
hasval = len(self.kids) > 2 + oper_offset
|
|
4585
4585
|
|
|
@@ -35,6 +35,7 @@ import synapse.lib.boss as s_boss
|
|
|
35
35
|
import synapse.lib.coro as s_coro
|
|
36
36
|
import synapse.lib.hive as s_hive
|
|
37
37
|
import synapse.lib.link as s_link
|
|
38
|
+
import synapse.lib.task as s_task
|
|
38
39
|
import synapse.lib.cache as s_cache
|
|
39
40
|
import synapse.lib.const as s_const
|
|
40
41
|
import synapse.lib.drive as s_drive
|
|
@@ -206,6 +207,14 @@ class CellApi(s_base.Base):
|
|
|
206
207
|
async def initCellApi(self):
|
|
207
208
|
pass
|
|
208
209
|
|
|
210
|
+
@adminapi(log=True)
|
|
211
|
+
async def freeze(self, timeout=30):
|
|
212
|
+
return await self.cell.freeze(timeout=timeout)
|
|
213
|
+
|
|
214
|
+
@adminapi(log=True)
|
|
215
|
+
async def resume(self):
|
|
216
|
+
return await self.cell.resume()
|
|
217
|
+
|
|
209
218
|
async def allowed(self, perm, default=None):
|
|
210
219
|
'''
|
|
211
220
|
Check if the user has the requested permission.
|
|
@@ -1102,6 +1111,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
1102
1111
|
self.auth = None
|
|
1103
1112
|
self.cellparent = parent
|
|
1104
1113
|
self.sessions = {}
|
|
1114
|
+
self.paused = False
|
|
1105
1115
|
self.isactive = False
|
|
1106
1116
|
self.activebase = None
|
|
1107
1117
|
self.inaugural = False
|
|
@@ -1767,8 +1777,11 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
1767
1777
|
|
|
1768
1778
|
return await self.drive.addItemInfo(info, path=path, reldir=reldir)
|
|
1769
1779
|
|
|
1770
|
-
async def getDriveInfo(self, iden):
|
|
1771
|
-
return self.drive.getItemInfo(iden)
|
|
1780
|
+
async def getDriveInfo(self, iden, typename=None):
|
|
1781
|
+
return self.drive.getItemInfo(iden, typename=typename)
|
|
1782
|
+
|
|
1783
|
+
def reqDriveInfo(self, iden, typename=None):
|
|
1784
|
+
return self.drive.reqItemInfo(iden, typename=typename)
|
|
1772
1785
|
|
|
1773
1786
|
async def getDrivePath(self, path, reldir=s_drive.rootdir):
|
|
1774
1787
|
'''
|
|
@@ -4461,6 +4474,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
4461
4474
|
'run': await self.getCellRunId(),
|
|
4462
4475
|
'type': self.getCellType(),
|
|
4463
4476
|
'iden': self.getCellIden(),
|
|
4477
|
+
'paused': self.paused,
|
|
4464
4478
|
'active': self.isactive,
|
|
4465
4479
|
'started': self.startms,
|
|
4466
4480
|
'ready': self.nexsroot.ready.is_set(),
|
|
@@ -4932,3 +4946,52 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
4932
4946
|
|
|
4933
4947
|
key = tuple(sorted(opts.items()))
|
|
4934
4948
|
return self._sslctx_cache.get(key)
|
|
4949
|
+
|
|
4950
|
+
async def freeze(self, timeout=30):
|
|
4951
|
+
|
|
4952
|
+
if self.paused:
|
|
4953
|
+
mesg = 'The service is already frozen.'
|
|
4954
|
+
raise s_exc.BadState(mesg=mesg)
|
|
4955
|
+
|
|
4956
|
+
logger.warning(f'Freezing service for volume snapshot.')
|
|
4957
|
+
|
|
4958
|
+
logger.warning('...acquiring nexus lock to prevent edits.')
|
|
4959
|
+
|
|
4960
|
+
try:
|
|
4961
|
+
await asyncio.wait_for(self.nexslock.acquire(), timeout=timeout)
|
|
4962
|
+
|
|
4963
|
+
except asyncio.TimeoutError:
|
|
4964
|
+
logger.warning('...nexus lock acquire timed out!')
|
|
4965
|
+
logger.warning('Aborting freeze and resuming normal operation.')
|
|
4966
|
+
|
|
4967
|
+
mesg = 'Nexus lock acquire timed out.'
|
|
4968
|
+
raise s_exc.TimeOut(mesg=mesg)
|
|
4969
|
+
|
|
4970
|
+
self.paused = True
|
|
4971
|
+
|
|
4972
|
+
try:
|
|
4973
|
+
|
|
4974
|
+
logger.warning('...committing pending transactions.')
|
|
4975
|
+
await self.slab.syncLoopOnce()
|
|
4976
|
+
|
|
4977
|
+
logger.warning('...flushing dirty buffers to disk.')
|
|
4978
|
+
await s_task.executor(os.sync)
|
|
4979
|
+
|
|
4980
|
+
logger.warning('...done!')
|
|
4981
|
+
|
|
4982
|
+
except Exception:
|
|
4983
|
+
self.paused = False
|
|
4984
|
+
self.nexslock.release()
|
|
4985
|
+
logger.exception('Failed to freeze. Resuming normal operation.')
|
|
4986
|
+
raise
|
|
4987
|
+
|
|
4988
|
+
async def resume(self):
|
|
4989
|
+
|
|
4990
|
+
if not self.paused:
|
|
4991
|
+
mesg = 'The service is not frozen.'
|
|
4992
|
+
raise s_exc.BadState(mesg=mesg)
|
|
4993
|
+
|
|
4994
|
+
logger.warning('Resuming normal operations from a freeze.')
|
|
4995
|
+
|
|
4996
|
+
self.paused = False
|
|
4997
|
+
self.nexslock.release()
|
|
@@ -22,6 +22,7 @@ LKEY_INFO = b'\x02' # <bidn> = <info>
|
|
|
22
22
|
LKEY_DATA = b'\x03' # <bidn> <vers> = <data>
|
|
23
23
|
LKEY_VERS = b'\x04' # <bidn> <vers> = <versinfo>
|
|
24
24
|
LKEY_INFO_BYTYPE = b'\x05' # <type> 00 <bidn> = 01
|
|
25
|
+
LKEY_TYPE_VERS = b'\x06' # <type> = <uint64>
|
|
25
26
|
|
|
26
27
|
rootdir = '00000000000000000000000000000000'
|
|
27
28
|
|
|
@@ -60,24 +61,36 @@ class Drive(s_base.Base):
|
|
|
60
61
|
|
|
61
62
|
return [reqValidName(p.strip().lower()) for p in path]
|
|
62
63
|
|
|
63
|
-
def
|
|
64
|
-
|
|
64
|
+
def _reqInfoType(self, info, typename):
|
|
65
|
+
infotype = info.get('type')
|
|
66
|
+
if infotype != typename:
|
|
67
|
+
mesg = f'Drive item has the wrong type. Expected: {typename} got {infotype}.'
|
|
68
|
+
raise s_exc.TypeMismatch(mesg=mesg, expected=typename, got=infotype)
|
|
69
|
+
|
|
70
|
+
def getItemInfo(self, iden, typename=None):
|
|
71
|
+
info = self._getItemInfo(s_common.uhex(iden))
|
|
72
|
+
if typename is not None:
|
|
73
|
+
self._reqInfoType(info, typename)
|
|
74
|
+
return info
|
|
65
75
|
|
|
66
76
|
def _getItemInfo(self, bidn):
|
|
67
77
|
byts = self.slab.get(LKEY_INFO + bidn, db=self.dbname)
|
|
68
78
|
if byts is not None:
|
|
69
79
|
return s_msgpack.un(byts)
|
|
70
80
|
|
|
71
|
-
def reqItemInfo(self, iden):
|
|
72
|
-
return self._reqItemInfo(s_common.uhex(iden))
|
|
81
|
+
def reqItemInfo(self, iden, typename=None):
|
|
82
|
+
return self._reqItemInfo(s_common.uhex(iden), typename=typename)
|
|
73
83
|
|
|
74
|
-
def _reqItemInfo(self, bidn):
|
|
84
|
+
def _reqItemInfo(self, bidn, typename=None):
|
|
75
85
|
info = self._getItemInfo(bidn)
|
|
76
|
-
if info is
|
|
77
|
-
|
|
86
|
+
if info is None:
|
|
87
|
+
mesg = f'No drive item with ID {s_common.ehex(bidn)}.'
|
|
88
|
+
raise s_exc.NoSuchIden(mesg=mesg)
|
|
78
89
|
|
|
79
|
-
|
|
80
|
-
|
|
90
|
+
if typename is not None:
|
|
91
|
+
self._reqInfoType(info, typename)
|
|
92
|
+
|
|
93
|
+
return info
|
|
81
94
|
|
|
82
95
|
async def setItemPath(self, iden, path):
|
|
83
96
|
'''
|
|
@@ -494,10 +507,27 @@ class Drive(s_base.Base):
|
|
|
494
507
|
if byts is not None:
|
|
495
508
|
return s_msgpack.un(byts)
|
|
496
509
|
|
|
497
|
-
|
|
510
|
+
def getTypeSchemaVersion(self, typename):
|
|
511
|
+
verskey = LKEY_TYPE_VERS + typename.encode()
|
|
512
|
+
byts = self.slab.get(verskey, db=self.dbname)
|
|
513
|
+
if byts is not None:
|
|
514
|
+
return s_msgpack.un(byts)
|
|
515
|
+
|
|
516
|
+
async def setTypeSchema(self, typename, schema, callback=None, vers=None):
|
|
498
517
|
|
|
499
518
|
reqValidName(typename)
|
|
500
519
|
|
|
520
|
+
if vers is not None:
|
|
521
|
+
vers = int(vers)
|
|
522
|
+
curv = self.getTypeSchemaVersion(typename)
|
|
523
|
+
if curv is not None:
|
|
524
|
+
if vers == curv:
|
|
525
|
+
return False
|
|
526
|
+
|
|
527
|
+
if vers < curv:
|
|
528
|
+
mesg = f'Cannot downgrade drive schema version for type {typename}.'
|
|
529
|
+
raise s_exc.BadVersion(mesg=mesg)
|
|
530
|
+
|
|
501
531
|
vtor = s_config.getJsValidator(schema)
|
|
502
532
|
|
|
503
533
|
self.validators[typename] = vtor
|
|
@@ -506,6 +536,10 @@ class Drive(s_base.Base):
|
|
|
506
536
|
|
|
507
537
|
self.slab.put(lkey, s_msgpack.en(schema), db=self.dbname)
|
|
508
538
|
|
|
539
|
+
if vers is not None:
|
|
540
|
+
verskey = LKEY_TYPE_VERS + typename.encode()
|
|
541
|
+
self.slab.put(verskey, s_msgpack.en(vers), db=self.dbname)
|
|
542
|
+
|
|
509
543
|
if callback is not None:
|
|
510
544
|
async for info in self.getItemsByType(typename):
|
|
511
545
|
bidn = s_common.uhex(info.get('iden'))
|
|
@@ -516,6 +550,7 @@ class Drive(s_base.Base):
|
|
|
516
550
|
vtor(data)
|
|
517
551
|
self.slab.put(LKEY_DATA + bidn + versindx, s_msgpack.en(data), db=self.dbname)
|
|
518
552
|
await asyncio.sleep(0)
|
|
553
|
+
return True
|
|
519
554
|
|
|
520
555
|
async def getItemsByType(self, typename):
|
|
521
556
|
tkey = typename.encode() + b'\x00'
|
|
@@ -1559,12 +1559,6 @@ class Snap(s_base.Base):
|
|
|
1559
1559
|
return await self.tagnorms.aget(tagname)
|
|
1560
1560
|
|
|
1561
1561
|
async def _getTagNorm(self, tagname):
|
|
1562
|
-
|
|
1563
|
-
if not self.core.isTagValid(tagname):
|
|
1564
|
-
mesg = f'The tag ({tagname}) does not meet the regex for the tree.'
|
|
1565
|
-
await self._raiseOnStrict(s_exc.BadTag, mesg)
|
|
1566
|
-
return None
|
|
1567
|
-
|
|
1568
1562
|
try:
|
|
1569
1563
|
return self.core.model.type('syn:tag').norm(tagname)
|
|
1570
1564
|
except s_exc.BadTypeValu as e:
|
|
@@ -1903,6 +1903,12 @@ class Tag(Str):
|
|
|
1903
1903
|
mesg = f'Tag does not match tagre: [{s_grammar.tagre.pattern}]'
|
|
1904
1904
|
raise s_exc.BadTypeValu(valu=norm, name=self.name, mesg=mesg)
|
|
1905
1905
|
|
|
1906
|
+
core = self.modl.core
|
|
1907
|
+
if core is not None:
|
|
1908
|
+
(ok, mesg) = core.isTagValid(norm)
|
|
1909
|
+
if not ok:
|
|
1910
|
+
raise s_exc.BadTypeValu(valu=norm, name=self.name, mesg=mesg)
|
|
1911
|
+
|
|
1906
1912
|
return norm, {'subs': subs, 'toks': toks}
|
|
1907
1913
|
|
|
1908
1914
|
def _normPyStr(self, text):
|
|
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
|
|
|
223
223
|
##############################################################################
|
|
224
224
|
# The following are touched during the release process by bumpversion.
|
|
225
225
|
# Do not modify these directly.
|
|
226
|
-
version = (2,
|
|
226
|
+
version = (2, 186, 0)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = 'ffa4abc52513d4b8ac592496322227eed9e07dc5'
|
|
@@ -351,6 +351,9 @@ class RiskModule(s_module.CoreModule):
|
|
|
351
351
|
('mitre:attack:software', ('it:mitre:attack:software', {}), {
|
|
352
352
|
'doc': 'A mapping to a MITRE ATT&CK software if applicable.'}),
|
|
353
353
|
|
|
354
|
+
('id', ('str', {'strip': True}), {
|
|
355
|
+
'doc': 'An ID for the tool.'}),
|
|
356
|
+
|
|
354
357
|
)),
|
|
355
358
|
('risk:mitigation:type:taxonomy', {}, ()),
|
|
356
359
|
('risk:mitigation', {}, (
|
|
@@ -7202,16 +7202,16 @@ class CortexBasicTest(s_t_utils.SynTest):
|
|
|
7202
7202
|
|
|
7203
7203
|
nodes = await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.12345 ]')
|
|
7204
7204
|
|
|
7205
|
-
with self.raises(s_exc.
|
|
7205
|
+
with self.raises(s_exc.BadTypeValu):
|
|
7206
7206
|
await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.foo ]')
|
|
7207
7207
|
|
|
7208
|
-
with self.raises(s_exc.
|
|
7208
|
+
with self.raises(s_exc.BadTypeValu):
|
|
7209
7209
|
await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.hehe ]')
|
|
7210
7210
|
|
|
7211
|
-
with self.raises(s_exc.
|
|
7211
|
+
with self.raises(s_exc.BadTypeValu):
|
|
7212
7212
|
await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.123456 ]')
|
|
7213
7213
|
|
|
7214
|
-
with self.raises(s_exc.
|
|
7214
|
+
with self.raises(s_exc.BadTypeValu):
|
|
7215
7215
|
await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.12345 ]')
|
|
7216
7216
|
|
|
7217
7217
|
nodes = await core.nodes('[ test:str=beep +?#cno.cve.12345 ]')
|
|
@@ -7229,9 +7229,14 @@ class CortexBasicTest(s_t_utils.SynTest):
|
|
|
7229
7229
|
await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.hehe ]')
|
|
7230
7230
|
|
|
7231
7231
|
await core.setTagModel('cno.cve', 'regex', (None, None, '[0-9]{4}', '[0-9]{5}'))
|
|
7232
|
-
with self.raises(s_exc.
|
|
7232
|
+
with self.raises(s_exc.BadTypeValu):
|
|
7233
7233
|
await core.nodes('[ inet:ipv4=1.2.3.4 +#cno.cve.2021.haha ]')
|
|
7234
7234
|
|
|
7235
|
+
self.eq((False, None), await core.callStorm('return($lib.trycast(syn:tag, cno.cve.2021.haha))'))
|
|
7236
|
+
|
|
7237
|
+
with self.raises(s_exc.BadTypeValu):
|
|
7238
|
+
await core.callStorm('return($lib.cast(syn:tag, cno.cve.2021.haha))')
|
|
7239
|
+
|
|
7235
7240
|
self.none(await core.callStorm('$lib.model.tags.del(cno.cve)'))
|
|
7236
7241
|
self.none(await core.callStorm('return($lib.model.tags.get(cno.cve))'))
|
|
7237
7242
|
|
|
@@ -378,7 +378,7 @@ class BaseTest(s_t_utils.SynTest):
|
|
|
378
378
|
proc = ctx.Process(target=block_processing, args=(evt1,))
|
|
379
379
|
proc.start()
|
|
380
380
|
|
|
381
|
-
self.true(evt1.wait(timeout=
|
|
381
|
+
self.true(evt1.wait(timeout=30))
|
|
382
382
|
os.kill(proc.pid, signal.SIGTERM)
|
|
383
383
|
proc.join(timeout=10)
|
|
384
384
|
self.eq(proc.exitcode, 137)
|
|
@@ -396,7 +396,7 @@ class BaseTest(s_t_utils.SynTest):
|
|
|
396
396
|
proc = ctx.Process(target=block_processing, args=(evt1,))
|
|
397
397
|
proc.start()
|
|
398
398
|
|
|
399
|
-
self.true(evt1.wait(timeout=
|
|
399
|
+
self.true(evt1.wait(timeout=30))
|
|
400
400
|
os.kill(proc.pid, signal.SIGINT)
|
|
401
401
|
|
|
402
402
|
proc.join(timeout=10)
|
|
@@ -208,7 +208,12 @@ class CellTest(s_t_utils.SynTest):
|
|
|
208
208
|
|
|
209
209
|
# TODO how to handle iden match with additional property mismatch
|
|
210
210
|
|
|
211
|
-
await cell.drive.setTypeSchema('woot', testDataSchema_v0)
|
|
211
|
+
self.true(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=0))
|
|
212
|
+
self.true(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=1))
|
|
213
|
+
self.false(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=1))
|
|
214
|
+
|
|
215
|
+
with self.raises(s_exc.BadVersion):
|
|
216
|
+
await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=0)
|
|
212
217
|
|
|
213
218
|
info = {'name': 'win32k.sys', 'type': 'woot'}
|
|
214
219
|
info = await cell.addDriveItem(info, reldir=rootdir)
|
|
@@ -284,6 +289,12 @@ class CellTest(s_t_utils.SynTest):
|
|
|
284
289
|
versinfo, data = await cell.getDriveData(iden, vers=(1, 1, 0))
|
|
285
290
|
self.eq('woot', data.get('woot'))
|
|
286
291
|
|
|
292
|
+
with self.raises(s_exc.NoSuchIden):
|
|
293
|
+
await cell.reqDriveInfo('d7d6107b200e2c039540fc627bc5537d')
|
|
294
|
+
|
|
295
|
+
with self.raises(s_exc.TypeMismatch):
|
|
296
|
+
await cell.getDriveInfo(iden, typename='newp')
|
|
297
|
+
|
|
287
298
|
self.nn(await cell.getDriveInfo(iden))
|
|
288
299
|
self.len(2, [vers async for vers in cell.getDriveDataVersions(iden)])
|
|
289
300
|
|
|
@@ -1899,7 +1910,7 @@ class CellTest(s_t_utils.SynTest):
|
|
|
1899
1910
|
proc = ctx.Process(target=lock_target, args=(dirn, evt1,))
|
|
1900
1911
|
proc.start()
|
|
1901
1912
|
|
|
1902
|
-
self.true(evt1.wait(timeout=
|
|
1913
|
+
self.true(evt1.wait(timeout=30))
|
|
1903
1914
|
|
|
1904
1915
|
with self.raises(s_exc.FatalErr) as cm:
|
|
1905
1916
|
async with await s_cell.Cell.anit(dirn) as cell:
|
|
@@ -2600,7 +2611,7 @@ class CellTest(s_t_utils.SynTest):
|
|
|
2600
2611
|
proc = ctx.Process(target=reload_target, args=(dirn, evt1, evt2))
|
|
2601
2612
|
proc.start()
|
|
2602
2613
|
|
|
2603
|
-
self.true(evt1.wait(timeout=
|
|
2614
|
+
self.true(evt1.wait(timeout=30))
|
|
2604
2615
|
|
|
2605
2616
|
async with await s_telepath.openurl(f'cell://{dirn}') as prox:
|
|
2606
2617
|
cnfo = await prox.getCellInfo()
|
|
@@ -3016,7 +3027,7 @@ class CellTest(s_t_utils.SynTest):
|
|
|
3016
3027
|
self.eq(users, s_t_utils.deguidify(json.dumps(await core.callStorm('return($lib.auth.users.list())'))))
|
|
3017
3028
|
self.eq(gates, s_t_utils.deguidify(json.dumps(await core.callStorm('return($lib.auth.gates.list())'))))
|
|
3018
3029
|
|
|
3019
|
-
with self.raises(s_exc.
|
|
3030
|
+
with self.raises(s_exc.BadTypeValu):
|
|
3020
3031
|
await core.nodes('[ it:dev:str=foo +#test.newp ]')
|
|
3021
3032
|
|
|
3022
3033
|
stream.seek(0)
|
|
@@ -577,6 +577,7 @@ class RiskModelTest(s_t_utils.SynTest):
|
|
|
577
577
|
:techniques=(*,)
|
|
578
578
|
:tag=cno.mal.cobaltstrike
|
|
579
579
|
:mitre:attack:software=S0001
|
|
580
|
+
:id=" AAAbbb123 "
|
|
580
581
|
|
|
581
582
|
:sophistication=high
|
|
582
583
|
:availability=public
|
|
@@ -593,6 +594,7 @@ class RiskModelTest(s_t_utils.SynTest):
|
|
|
593
594
|
self.eq(1643673600000, nodes[0].get('reporter:discovered'))
|
|
594
595
|
self.eq(1675209600000, nodes[0].get('reporter:published'))
|
|
595
596
|
self.eq('S0001', nodes[0].get('mitre:attack:software'))
|
|
597
|
+
self.eq('AAAbbb123', nodes[0].get('id'))
|
|
596
598
|
|
|
597
599
|
self.eq('cobaltstrike', nodes[0].get('soft:name'))
|
|
598
600
|
self.eq(('beacon',), nodes[0].get('soft:names'))
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from unittest import mock
|
|
2
|
+
|
|
3
|
+
import synapse.lib.output as s_output
|
|
4
|
+
import synapse.tools.snapshot as s_tools_snapshot
|
|
5
|
+
|
|
6
|
+
import synapse.tests.utils as s_t_utils
|
|
7
|
+
|
|
8
|
+
class PromoteToolTest(s_t_utils.SynTest):
|
|
9
|
+
|
|
10
|
+
async def test_tool_snapshot(self):
|
|
11
|
+
|
|
12
|
+
async with self.getTestCore() as core:
|
|
13
|
+
|
|
14
|
+
lurl = core.getLocalUrl()
|
|
15
|
+
|
|
16
|
+
self.eq(0, await s_tools_snapshot.main(('freeze', '--svcurl', lurl)))
|
|
17
|
+
self.true(core.paused)
|
|
18
|
+
|
|
19
|
+
outp = s_output.OutPutStr()
|
|
20
|
+
self.eq(1, await s_tools_snapshot.main(('freeze', '--svcurl', lurl), outp=outp))
|
|
21
|
+
self.isin('ERROR BadState', str(outp))
|
|
22
|
+
|
|
23
|
+
self.eq(0, await s_tools_snapshot.main(('resume', '--svcurl', lurl)))
|
|
24
|
+
self.false(core.paused)
|
|
25
|
+
|
|
26
|
+
outp = s_output.OutPutStr()
|
|
27
|
+
self.eq(1, await s_tools_snapshot.main(('resume', '--svcurl', lurl), outp=outp))
|
|
28
|
+
self.isin('ERROR BadState', str(outp))
|
|
29
|
+
|
|
30
|
+
outp = s_output.OutPutStr()
|
|
31
|
+
async with core.nexslock:
|
|
32
|
+
argv = ('freeze', '--svcurl', lurl, '--timeout', '1')
|
|
33
|
+
self.eq(1, await s_tools_snapshot.main(argv, outp=outp))
|
|
34
|
+
self.isin('ERROR TimeOut', str(outp))
|
|
35
|
+
|
|
36
|
+
def boom():
|
|
37
|
+
raise Exception('boom')
|
|
38
|
+
|
|
39
|
+
outp = s_output.OutPutStr()
|
|
40
|
+
with mock.patch('os.sync', boom):
|
|
41
|
+
self.eq(1, await s_tools_snapshot.main(('freeze', '--svcurl', lurl), outp=outp))
|
|
42
|
+
self.false(core.paused)
|
|
43
|
+
self.isin('ERROR SynErr: boom', str(outp))
|
|
44
|
+
|
|
45
|
+
outp = s_output.OutPutStr()
|
|
46
|
+
self.eq(1, await s_tools_snapshot.main(('freeze', '--svcurl', 'newp://newp'), outp=outp))
|
|
47
|
+
self.isin('ERROR BadUrl', str(outp))
|
|
@@ -18,7 +18,9 @@ Examples:
|
|
|
18
18
|
|
|
19
19
|
async def main(argv, outp=s_output.stdout):
|
|
20
20
|
|
|
21
|
-
pars = argparse.ArgumentParser(prog='synapse.tools.aha.clone', description=descr
|
|
21
|
+
pars = argparse.ArgumentParser(prog='synapse.tools.aha.clone', description=descr,
|
|
22
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
23
|
+
|
|
22
24
|
pars.add_argument('dnsname', help='The DNS name of the new AHA server.')
|
|
23
25
|
pars.add_argument('--port', type=int, default=27492, help='The port that the new AHA server should listen on.')
|
|
24
26
|
pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
|
|
@@ -51,7 +51,7 @@ async def _main(argv, outp):
|
|
|
51
51
|
|
|
52
52
|
def getArgParser():
|
|
53
53
|
desc = 'CLI tool to generate simple x509 certificates from an Aha server.'
|
|
54
|
-
pars = argparse.ArgumentParser(prog='aha.easycert', description=desc)
|
|
54
|
+
pars = argparse.ArgumentParser(prog='synapse.tools.aha.easycert', description=desc)
|
|
55
55
|
|
|
56
56
|
pars.add_argument('-a', '--aha', required=True, # type=str,
|
|
57
57
|
help='Aha server to connect too.')
|
|
@@ -21,7 +21,9 @@ Examples:
|
|
|
21
21
|
|
|
22
22
|
async def main(argv, outp=s_output.stdout):
|
|
23
23
|
|
|
24
|
-
pars = argparse.ArgumentParser(prog='
|
|
24
|
+
pars = argparse.ArgumentParser(prog='synapse.tools.aha.enroll', description=descr,
|
|
25
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
26
|
+
|
|
25
27
|
pars.add_argument('onceurl', help='The one-time use AHA user enrollment URL.')
|
|
26
28
|
opts = pars.parse_args(argv)
|
|
27
29
|
|
|
@@ -23,7 +23,9 @@ Examples:
|
|
|
23
23
|
|
|
24
24
|
async def main(argv, outp=s_output.stdout):
|
|
25
25
|
|
|
26
|
-
pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.service', description=descr
|
|
26
|
+
pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.service', description=descr,
|
|
27
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
28
|
+
|
|
27
29
|
pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
|
|
28
30
|
pars.add_argument('--user', help='Provision the new service with the username.')
|
|
29
31
|
pars.add_argument('--cellyaml', help='Specify the path to a YAML file containing config options for the service.')
|
|
@@ -22,7 +22,9 @@ Examples:
|
|
|
22
22
|
|
|
23
23
|
async def main(argv, outp=s_output.stdout):
|
|
24
24
|
|
|
25
|
-
pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.user', description=descr
|
|
25
|
+
pars = argparse.ArgumentParser(prog='synapse.tools.aha.provision.user', description=descr,
|
|
26
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
27
|
+
|
|
26
28
|
pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL to connect to the AHA service.')
|
|
27
29
|
pars.add_argument('--again', default=False, action='store_true', help='Generate a new enroll URL for an existing user.')
|
|
28
30
|
pars.add_argument('--only-url', help='Only output the URL upon successful execution',
|
|
@@ -20,7 +20,9 @@ Examples:
|
|
|
20
20
|
|
|
21
21
|
async def main(argv, outp=s_output.stdout):
|
|
22
22
|
|
|
23
|
-
pars = argparse.ArgumentParser(prog='livebackup', description=descr
|
|
23
|
+
pars = argparse.ArgumentParser(prog='synapse.tools.livebackup', description=descr,
|
|
24
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
25
|
+
|
|
24
26
|
pars.add_argument('--url', default='cell:///vertex/storage', help='The telepath URL of the Synapse service.')
|
|
25
27
|
pars.add_argument('--name', default=None, help='Specify a name for the backup. Defaults to an automatically generated timestamp.')
|
|
26
28
|
|
|
@@ -18,9 +18,15 @@ Example (being run from a Cortex mirror docker container):
|
|
|
18
18
|
|
|
19
19
|
async def main(argv, outp=s_output.stdout):
|
|
20
20
|
|
|
21
|
-
pars = argparse.ArgumentParser(prog='
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
pars = argparse.ArgumentParser(prog='synapse.tools.promote', description=descr,
|
|
22
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
23
|
+
|
|
24
|
+
pars.add_argument('--svcurl', default='cell:///vertex/storage',
|
|
25
|
+
help='The telepath URL of the Synapse service.')
|
|
26
|
+
|
|
27
|
+
pars.add_argument('--failure', default=False, action='store_true',
|
|
28
|
+
help='Promotion is due to leader being offline. Graceful handoff is not possible.')
|
|
29
|
+
|
|
24
30
|
# TODO pars.add_argument('--timeout', type=float, default=30.0, help='The maximum timeout to wait for the mirror to catch up.')
|
|
25
31
|
|
|
26
32
|
opts = pars.parse_args(argv)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import asyncio
|
|
3
|
+
import logging
|
|
4
|
+
import argparse
|
|
5
|
+
|
|
6
|
+
import synapse.exc as s_exc
|
|
7
|
+
import synapse.telepath as s_telepath
|
|
8
|
+
|
|
9
|
+
import synapse.lib.output as s_output
|
|
10
|
+
|
|
11
|
+
logger = logging.getLogger(__name__)
|
|
12
|
+
|
|
13
|
+
desc = '''
|
|
14
|
+
Command line tool to freeze/resume service operations to allow
|
|
15
|
+
system admins to generate a transactionally consistent volume
|
|
16
|
+
snapshot using 3rd party tools.
|
|
17
|
+
|
|
18
|
+
The use pattern should be::
|
|
19
|
+
|
|
20
|
+
python -m synapse.tools.snapshot freeze
|
|
21
|
+
|
|
22
|
+
<generate volume snapshot using 3rd party tools>
|
|
23
|
+
|
|
24
|
+
python -m synapse.tools.snapshot resume
|
|
25
|
+
|
|
26
|
+
The tool will set the process exit code to 0 on success.
|
|
27
|
+
'''
|
|
28
|
+
|
|
29
|
+
async def main(argv, outp=s_output.stdout):
|
|
30
|
+
|
|
31
|
+
pars = argparse.ArgumentParser('synapse.tools.snapshot',
|
|
32
|
+
description=desc,
|
|
33
|
+
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
34
|
+
|
|
35
|
+
subs = pars.add_subparsers(required=True, title='commands', dest='cmd')
|
|
36
|
+
|
|
37
|
+
freeze = subs.add_parser('freeze', help='Suspend edits and sync changes to disk.')
|
|
38
|
+
freeze.add_argument('--timeout', type=int, default=120,
|
|
39
|
+
help='Maximum time to wait for the nexus lock.')
|
|
40
|
+
|
|
41
|
+
freeze.add_argument('--svcurl', default='cell:///vertex/storage',
|
|
42
|
+
help='The telepath URL of the Synapse service.')
|
|
43
|
+
|
|
44
|
+
resume = subs.add_parser('resume', help='Resume edits and continue normal operation.')
|
|
45
|
+
resume.add_argument('--svcurl', default='cell:///vertex/storage',
|
|
46
|
+
help='The telepath URL of the Synapse service.')
|
|
47
|
+
|
|
48
|
+
opts = pars.parse_args(argv)
|
|
49
|
+
|
|
50
|
+
try:
|
|
51
|
+
async with s_telepath.withTeleEnv():
|
|
52
|
+
|
|
53
|
+
async with await s_telepath.openurl(opts.svcurl) as proxy:
|
|
54
|
+
|
|
55
|
+
if opts.cmd == 'freeze':
|
|
56
|
+
await proxy.freeze(timeout=opts.timeout)
|
|
57
|
+
return 0
|
|
58
|
+
|
|
59
|
+
if opts.cmd == 'resume':
|
|
60
|
+
await proxy.resume()
|
|
61
|
+
return 0
|
|
62
|
+
|
|
63
|
+
except s_exc.SynErr as e:
|
|
64
|
+
mesg = e.errinfo.get('mesg')
|
|
65
|
+
outp.printf(f'ERROR {e.__class__.__name__}: {mesg}')
|
|
66
|
+
return 1
|
|
67
|
+
|
|
68
|
+
if __name__ == '__main__': # pragma: no cover
|
|
69
|
+
sys.exit(asyncio.run(main(sys.argv[1:])))
|