synapse 3.2.0__tar.gz → 3.3.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.
- {synapse-3.2.0/synapse.egg-info → synapse-3.3.0}/PKG-INFO +1 -1
- {synapse-3.2.0 → synapse-3.3.0}/pyproject.toml +1 -1
- {synapse-3.2.0 → synapse-3.3.0}/synapse/cortex.py +8 -3
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/skills/storm/SKILL.md +6 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/datamodel.py +30 -0
- {synapse-3.2.0/synapse/tools/storm → synapse-3.3.0/synapse/lib}/_http.py +64 -2
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/ast.py +42 -12
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/auth.py +29 -10
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/passwd.py +17 -2
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/mddocs.py +193 -10
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/node.py +8 -1
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/process.py +8 -1
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/aha.py +168 -29
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/oauth.py +1 -1
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/stats.py +15 -11
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/storm.py +11 -13
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormtypes.py +3 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/types.py +7 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/version.py +2 -2
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/view.py +34 -10
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/entity.py +2 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/geospace.py +4 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/infotech.py +107 -11
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/proj.py +3 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/testpkg.yaml +2 -2
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_cortex.py +81 -1
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_datamodel.py +15 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_ast.py +104 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_auth.py +29 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_passwd.py +49 -0
- synapse-3.3.0/synapse/tests/test_lib_http.py +383 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_layer.py +76 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_mddocs.py +267 -6
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_process.py +16 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_aha.py +109 -2
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_stats.py +62 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_storm.py +70 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_entity.py +13 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_geospace.py +12 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_infotech.py +69 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_proj.py +2 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_aha.py +126 -10
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_cli.py +14 -278
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_pkg_gen.py +148 -0
- synapse-3.3.0/synapse/tests/test_tools_utils_docmanifest.py +83 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/utils.py +19 -0
- synapse-3.3.0/synapse/tools/aha/mirror.py +341 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/_cli.py +3 -24
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/gen.py +33 -5
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/publish.py +1 -2
- synapse-3.3.0/synapse/tools/utils/docmanifest.py +36 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/utils/stormcov.py +11 -0
- {synapse-3.2.0 → synapse-3.3.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-3.2.0 → synapse-3.3.0}/synapse.egg-info/SOURCES.txt +4 -1
- synapse-3.2.0/synapse/tools/aha/mirror.py +0 -171
- {synapse-3.2.0 → synapse-3.3.0}/LICENSE +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/README.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/setup.cfg +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/assets/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/axon.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/cells.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/common.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/daemon.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA (2026).crt +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/cas/The Vertex Project ROOT CA (2026).crt +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA (2026).crl +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/certs/crls/The Vertex Project ROOT CA (2026).crl +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/iana.uris.mpk +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/lark/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/lark/imap.lark +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/lark/storm.lark +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/data/v2modelmap.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/exc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/glob.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/agenda.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/aha.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/autodoc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/base.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/boss.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cache.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cell.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/certdir.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/chop.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cli.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cluster.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/cmd.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/config.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/const.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/coro.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/jwk.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/crypto/utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/datfile.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/drive.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/editor.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/gis.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/grammar.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/hashitem.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/hashset.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/health.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/httpapi.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/httpclient.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/json.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/jsrpc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/layer.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/link.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/logging.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/mcp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/mdstorm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/modelrev.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/msgpack.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/nexus.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/nodefuse.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/oauth.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/output.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/parser.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/processpool.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/provision.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/queue.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/reflect.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/schemas.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/scope.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/scrape.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/share.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/spawner.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/spooled.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/storm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/storm_format.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/bytes.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/cryptoutils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/ecc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/file.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/jwt.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/pkg.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/quorum.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/rsa.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/task.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/vertex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/task.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/thishost.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/thisplat.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/threads.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/time.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/trigger.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/cvss.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/iana.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/macho.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/pe.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/lookup/timezones.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/auth.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/base.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/belief.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/biz.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/crypto.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/dns.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/doc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/economic.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/files.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/geopol.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/gov.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/ind.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/inet.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/language.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/material.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/orgs.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/person.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/planning.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/risk.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/science.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/syn.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/telco.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/models/transport.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/aha.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/axon.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/cell.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/cortex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/telepath.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/cas/synapse.crt.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/cas/synapse.key.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/users/root@synapse.crt.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/aha/certs/users/root@synapse.key.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/cas/ca.crt.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/cas/ca.key.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/hosts/localhost.crt.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/hosts/localhost.key.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/root.crt.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/root.key.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/user.crt.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/certdir/users/user.key.tinfoil +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/mdstorm/httprespmulti.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/mdstorm/testsvc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stix_import/scos.json +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery2.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery3.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery4.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/argvquery5.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/badstorm.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/continueloop.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/dupewarn.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/dupfunc.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery2.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery3.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery4.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/embedquery5.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/emptybody.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/exprdict.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/forloop.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/ifelif.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/ifelse.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/runtsafety.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/stopreturn.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/switch.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/switchnodefault.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/trycatch.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whilebackedge.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whilecontinue.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whileloop.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormcov/whilewithnode.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/declaredfiles.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/docs/index.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/files/data.dat +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/files/sub/nested.dat +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/modules/apimod.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/storm/modules/testmod.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/test.dat +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/index.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/mocks/cassette.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/stormpackage.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/sub/image.svg +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/sub/nested.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/docs/userguide.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/index.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/noh1.md +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/files/testpkg_build_docs_no_h1/testpkg.yaml +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/nopmod.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_assets.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_axon.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_common.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_data.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_docs_stormref.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_exc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_glob.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_cluster.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_jwk.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_rsa.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_drive.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_httpclient.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_json.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_jsrpc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_logging.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_mcp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_mdstorm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_processpool.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_provision.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_spawner.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_ecc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_file.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_jwt.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_pkg.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_rsa.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_vertex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_stormtypes.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_copy.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_get.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_axon_put.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_csv.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_docmodel.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_apikey.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_backup.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_demote.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_healthcheck.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_modrole.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_moduser.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_promote.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_reload.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_shutdown.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_pkg_publish.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_printer.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_tester.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_storm_validate.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_doc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_guid.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_tools_utils_mdstorm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/del.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/list.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/copy.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/dump.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/get.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/load.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/axon/put.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/csv.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/docmodel.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/feed.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/layer/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/layer/dump.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/cortex/layer/load.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/apikey.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/backup.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/demote.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/healthcheck.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/modrole.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/moduser.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/promote.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/reload.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/shutdown.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/service/snapshot.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/__main__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/_printer.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/pkg/doc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/tester.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/storm/validate.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/doc.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/easycert.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/guid.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/json2mpk.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/tools/utils/mdstorm.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/utils/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/utils/getrefs.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/json.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/test_parseaddr.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-3.2.0 → synapse-3.3.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -6075,7 +6075,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
6075
6075
|
except Exception as e:
|
|
6076
6076
|
return s_common.retnexc(e)
|
|
6077
6077
|
|
|
6078
|
-
def _logStormQuery(self, text, user, info=None, meta=None):
|
|
6078
|
+
def _logStormQuery(self, text, user, info=None, meta=None, via=None):
|
|
6079
6079
|
'''
|
|
6080
6080
|
Log a storm query.
|
|
6081
6081
|
|
|
@@ -6084,6 +6084,7 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
6084
6084
|
user: The User who ran the query.
|
|
6085
6085
|
info (dict): Fields to record alongside the query.
|
|
6086
6086
|
meta (dict): The caller supplied meta opt, if any.
|
|
6087
|
+
via (str): The name of the Storm command or library which dispatched the query.
|
|
6087
6088
|
'''
|
|
6088
6089
|
if self.stormlog:
|
|
6089
6090
|
if info is None:
|
|
@@ -6097,8 +6098,12 @@ class Cortex(s_oauth.OAuthMixin, s_axon.HasAxon, s_jsonstor.HasJsonStor, s_cell.
|
|
|
6097
6098
|
if meta is not None:
|
|
6098
6099
|
info['meta'] = meta
|
|
6099
6100
|
|
|
6100
|
-
|
|
6101
|
-
|
|
6101
|
+
if via is None:
|
|
6102
|
+
stormlogger.log(self.stormloglvl, 'Executing storm query {%s} as [%s]', text, user.name,
|
|
6103
|
+
extra=self.getLogExtra(**info))
|
|
6104
|
+
else:
|
|
6105
|
+
stormlogger.log(self.stormloglvl, 'Executing storm query via %s {%s} as [%s]', via, text, user.name,
|
|
6106
|
+
extra=self.getLogExtra(**info))
|
|
6102
6107
|
|
|
6103
6108
|
async def getCoreInfoV2(self):
|
|
6104
6109
|
return {
|
|
@@ -754,6 +754,12 @@ $x = (true)
|
|
|
754
754
|
$y = (999)
|
|
755
755
|
$dict = ({})
|
|
756
756
|
$list = ([])
|
|
757
|
+
|
|
758
|
+
// WRONG - redundant parens inside a JSON expression
|
|
759
|
+
$props = ({"ids": ([$iden]), "opts": ({"asof": $asof})})
|
|
760
|
+
|
|
761
|
+
// CORRECT
|
|
762
|
+
$props = ({"ids": [$iden], "opts": {"asof": $asof}})
|
|
757
763
|
```
|
|
758
764
|
|
|
759
765
|
### 3. Forgetting `|` After Inline Commands
|
|
@@ -677,6 +677,7 @@ class Model:
|
|
|
677
677
|
self.formprefixcache = s_cache.LruDict(PREFIX_CACHE_SIZE)
|
|
678
678
|
|
|
679
679
|
self._lookup_hints = None
|
|
680
|
+
self._virts_by_type = None
|
|
680
681
|
|
|
681
682
|
self._type_pends = collections.defaultdict(list)
|
|
682
683
|
self._modeldef = {
|
|
@@ -748,6 +749,33 @@ class Model:
|
|
|
748
749
|
return ()
|
|
749
750
|
return list(props.values())
|
|
750
751
|
|
|
752
|
+
def getVirtsByType(self, name):
|
|
753
|
+
'''
|
|
754
|
+
Return the (formname, virtname) tuples for the indexed virtual properties
|
|
755
|
+
of a form primary property which reference the given form name. A virt on
|
|
756
|
+
a secondary property is not a ref because the node for the property value
|
|
757
|
+
carries the ref, the same as Form.getRefsOut().
|
|
758
|
+
'''
|
|
759
|
+
if self._virts_by_type is None:
|
|
760
|
+
|
|
761
|
+
virtsbytype = collections.defaultdict(list)
|
|
762
|
+
|
|
763
|
+
for formname, form in self.forms.items():
|
|
764
|
+
for virtname, virtinfo in form.type.virts.items():
|
|
765
|
+
|
|
766
|
+
typename = virtinfo[0].name
|
|
767
|
+
if self.forms.get(typename) is None:
|
|
768
|
+
continue
|
|
769
|
+
|
|
770
|
+
if form.type.virtindx.get(virtname) is None:
|
|
771
|
+
continue
|
|
772
|
+
|
|
773
|
+
virtsbytype[typename].append((formname, virtname))
|
|
774
|
+
|
|
775
|
+
self._virts_by_type = virtsbytype
|
|
776
|
+
|
|
777
|
+
return self._virts_by_type.get(name, ())
|
|
778
|
+
|
|
751
779
|
def getProps(self):
|
|
752
780
|
return [pobj for pname, pobj in self.props.items()
|
|
753
781
|
if not (isinstance(pname, tuple))]
|
|
@@ -1790,6 +1818,7 @@ class Model:
|
|
|
1790
1818
|
self.formprefixcache.clear()
|
|
1791
1819
|
self.pivchaincache.clear()
|
|
1792
1820
|
self._lookup_hints = None
|
|
1821
|
+
self._virts_by_type = None
|
|
1793
1822
|
|
|
1794
1823
|
return form
|
|
1795
1824
|
|
|
@@ -1904,6 +1933,7 @@ class Model:
|
|
|
1904
1933
|
self.formprefixcache.clear()
|
|
1905
1934
|
self.pivchaincache.clear()
|
|
1906
1935
|
self._lookup_hints = None
|
|
1936
|
+
self._virts_by_type = None
|
|
1907
1937
|
|
|
1908
1938
|
if parentform:
|
|
1909
1939
|
self.childforms[parentform.name].remove(formname)
|
|
@@ -15,6 +15,8 @@ import synapse.lib.const as s_const
|
|
|
15
15
|
import synapse.lib.httpapi as s_httpapi
|
|
16
16
|
import synapse.lib.msgpack as s_msgpack
|
|
17
17
|
import synapse.lib.urlhelp as s_urlhelp
|
|
18
|
+
import synapse.lib.version as s_version
|
|
19
|
+
import synapse.lib.httpclient as s_httpclient
|
|
18
20
|
import synapse.lib.crypto.passwd as s_passwd
|
|
19
21
|
|
|
20
22
|
logger = logging.getLogger(__name__)
|
|
@@ -34,6 +36,11 @@ EXPORT_TIMEOUT = 3600
|
|
|
34
36
|
# The number of chunks buffered while streaming bytes into an Axon HTTP upload.
|
|
35
37
|
UPLOAD_QSIZE = 4
|
|
36
38
|
|
|
39
|
+
# The product token in the default outbound User-Agent. A Cell derives its own token
|
|
40
|
+
# from its cell type ( see Cell._getUserAgentProd ); this client is not a Cell, and it
|
|
41
|
+
# ships with Synapse, so its version is the Synapse version.
|
|
42
|
+
USER_AGENT_PROD = 'Synapse-Client'
|
|
43
|
+
|
|
37
44
|
apikeymesg = 'A user API key is required to connect to a Cortex over HTTP. ' \
|
|
38
45
|
'Provide it in the URL as https://<apikey>@host:port/.'
|
|
39
46
|
|
|
@@ -49,6 +56,43 @@ def isHttpsUrl(url):
|
|
|
49
56
|
'''
|
|
50
57
|
return url.lower().startswith('https://')
|
|
51
58
|
|
|
59
|
+
def addHttpsArgs(pars):
|
|
60
|
+
'''
|
|
61
|
+
Add the options which configure the Cortex HTTP API client to an argument parser.
|
|
62
|
+
|
|
63
|
+
Note:
|
|
64
|
+
Shared by every CLI tool which accepts an https:// Cortex URL, so the options
|
|
65
|
+
and their help text cannot drift apart between them.
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
pars (s_cmd.Parser): The argument parser.
|
|
69
|
+
'''
|
|
70
|
+
pars.add_argument('--https-proxy', default=None,
|
|
71
|
+
help='An aiohttp-socks compatible proxy URL to use for https:// URLs.')
|
|
72
|
+
pars.add_argument('--https-ca-dir', default=None,
|
|
73
|
+
help='A directory of CAs which are added to the TLS CA chain for https:// URLs.')
|
|
74
|
+
pars.add_argument('--https-noverify', default=False, action='store_true',
|
|
75
|
+
help='Ignore SSL certificate validation errors for https:// URLs.')
|
|
76
|
+
|
|
77
|
+
def reqTeleOpts(opts):
|
|
78
|
+
'''
|
|
79
|
+
Require that the https only options are not used with a telepath URL.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
opts (argparse.Namespace): The parsed arguments.
|
|
83
|
+
'''
|
|
84
|
+
httponly = (
|
|
85
|
+
('--https-proxy', opts.https_proxy),
|
|
86
|
+
('--https-ca-dir', opts.https_ca_dir),
|
|
87
|
+
('--https-noverify', opts.https_noverify or None),
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
for name, valu in httponly:
|
|
91
|
+
|
|
92
|
+
if valu is not None:
|
|
93
|
+
mesg = f'The {name} option may only be used with an https:// Cortex URL.'
|
|
94
|
+
raise s_exc.BadArg(mesg=mesg, arg=name)
|
|
95
|
+
|
|
52
96
|
async def openurl(url, cadir=None, proxy=None, verify=True):
|
|
53
97
|
'''
|
|
54
98
|
Open a Cortex HTTP API client which duck types the Telepath CoreApi.
|
|
@@ -190,7 +234,8 @@ class HttpCortex(s_base.Base):
|
|
|
190
234
|
'''
|
|
191
235
|
A Cortex client which uses the HTTP API rather than Telepath.
|
|
192
236
|
|
|
193
|
-
This implements the subset of the Telepath CoreApi
|
|
237
|
+
This implements the subset of the Telepath CoreApi used by the CLI tools which
|
|
238
|
+
accept an https:// Cortex URL.
|
|
194
239
|
|
|
195
240
|
Note:
|
|
196
241
|
Messages are deserialized from JSON, so nested sequences are lists where the
|
|
@@ -237,9 +282,14 @@ class HttpCortex(s_base.Base):
|
|
|
237
282
|
# running Storm queries.
|
|
238
283
|
timeout = aiohttp.ClientTimeout(total=None)
|
|
239
284
|
|
|
285
|
+
headers = {
|
|
286
|
+
'X-API-KEY': apikey,
|
|
287
|
+
'User-Agent': s_httpclient.getUserAgent(USER_AGENT_PROD, s_version.version),
|
|
288
|
+
}
|
|
289
|
+
|
|
240
290
|
sess = aiohttp.ClientSession(connector=connector,
|
|
241
291
|
timeout=timeout,
|
|
242
|
-
headers=
|
|
292
|
+
headers=headers,
|
|
243
293
|
max_line_size=s_const.MAX_LINE_SIZE,
|
|
244
294
|
max_field_size=s_const.MAX_FIELD_SIZE)
|
|
245
295
|
|
|
@@ -378,6 +428,18 @@ class HttpCortex(s_base.Base):
|
|
|
378
428
|
mesg = 'The Cortex HTTP API export stream ended with a partial node.'
|
|
379
429
|
raise s_exc.BadDataValu(mesg=mesg)
|
|
380
430
|
|
|
431
|
+
async def addStormPkg(self, pkgdef, *, verify=False):
|
|
432
|
+
'''
|
|
433
|
+
Add a Storm package to the Cortex.
|
|
434
|
+
|
|
435
|
+
Note:
|
|
436
|
+
The HTTP API has no package endpoint, so this runs $lib.pkg.add() which
|
|
437
|
+
confirms the same pkg.add permission and calls the same Cortex API the
|
|
438
|
+
Telepath CoreApi method does.
|
|
439
|
+
'''
|
|
440
|
+
opts = {'vars': {'pkgdef': pkgdef, 'verify': verify}}
|
|
441
|
+
return await self.callStorm('return($lib.pkg.add($pkgdef, verify=$verify))', opts=opts)
|
|
442
|
+
|
|
381
443
|
async def getCoreInfoV2(self):
|
|
382
444
|
|
|
383
445
|
async with self.sess.get(self._getUrl('/api/v3/core/info'), **self.reqinfo) as resp:
|
|
@@ -312,9 +312,10 @@ class Lookup(Query):
|
|
|
312
312
|
return
|
|
313
313
|
|
|
314
314
|
hints = runt.model.getLookupHints()
|
|
315
|
-
if not hints:
|
|
316
|
-
return
|
|
317
315
|
|
|
316
|
+
# the remainder tokens are resolved by the data model lookup hints and
|
|
317
|
+
# then by the search interface. Nodes from those two steps are
|
|
318
|
+
# deduplicated against each other.
|
|
318
319
|
async with await s_spooled.Set.anit(dirn=view.core.dirn, cell=view.core) as nidset:
|
|
319
320
|
|
|
320
321
|
for tokn in remtokns:
|
|
@@ -331,6 +332,22 @@ class Lookup(Query):
|
|
|
331
332
|
except (s_exc.BadTypeValu, s_exc.BadCmprValu, s_exc.NoSuchCmpr):
|
|
332
333
|
continue
|
|
333
334
|
|
|
335
|
+
todo = s_common.todo('search', remtokns)
|
|
336
|
+
async for _, nid in view.mergeStormIface('search', todo):
|
|
337
|
+
|
|
338
|
+
nid = s_common.int64en(nid)
|
|
339
|
+
if nid in nidset:
|
|
340
|
+
await asyncio.sleep(0)
|
|
341
|
+
continue
|
|
342
|
+
|
|
343
|
+
await nidset.add(nid)
|
|
344
|
+
|
|
345
|
+
node = await view.getNodeByNid(nid)
|
|
346
|
+
if node is None:
|
|
347
|
+
continue
|
|
348
|
+
|
|
349
|
+
yield node, runt.initPath(node)
|
|
350
|
+
|
|
334
351
|
realgenr = lookgenr()
|
|
335
352
|
if len(self.kids) > 1:
|
|
336
353
|
realgenr = self.kids[1].run(runt, realgenr)
|
|
@@ -2714,6 +2731,13 @@ class PivotIn(PivotOper):
|
|
|
2714
2731
|
|
|
2715
2732
|
name, valu = node.ndef
|
|
2716
2733
|
|
|
2734
|
+
for formtype in node.form.formtypes:
|
|
2735
|
+
for formname, virtname in runt.model.getVirtsByType(formtype):
|
|
2736
|
+
link = {'type': 'prop', 'prop': f'.{virtname}', 'reverse': True}
|
|
2737
|
+
|
|
2738
|
+
async for pivo in runt.view.nodesByPropValu(formname, '=', valu, norm=False, virt=virtname):
|
|
2739
|
+
yield pivo, path.fork(pivo, link)
|
|
2740
|
+
|
|
2717
2741
|
for formtype in node.form.formtypes:
|
|
2718
2742
|
for prop in runt.model.getPropsByType(formtype):
|
|
2719
2743
|
link = {'type': 'prop', 'prop': prop.name, 'reverse': True}
|
|
@@ -4044,12 +4068,13 @@ class TagVirtCond(Cond):
|
|
|
4044
4068
|
valu = await rval.compute(runt, path)
|
|
4045
4069
|
virt = await vkid.compute(runt, path)
|
|
4046
4070
|
|
|
4047
|
-
(ptyp, getr) = ival.
|
|
4071
|
+
(ptyp, getr) = ival.getTagVirtInfo(virt)
|
|
4048
4072
|
|
|
4049
4073
|
if (cmprctor := ptyp.getCmprCtor(cmpr)) is None:
|
|
4050
4074
|
raise self.kids[2].addExcInfo(s_exc.NoSuchCmpr(cmpr=cmpr, name=ptyp.name))
|
|
4051
4075
|
|
|
4052
|
-
tval
|
|
4076
|
+
if (tval := node.getTag(name, getr=getr)) is None:
|
|
4077
|
+
return False
|
|
4053
4078
|
|
|
4054
4079
|
return await (await cmprctor(valu))(tval)
|
|
4055
4080
|
|
|
@@ -4061,7 +4086,7 @@ class TagVirtCond(Cond):
|
|
|
4061
4086
|
valu = await rval.compute(runt, None)
|
|
4062
4087
|
virt = await vkid.compute(runt, None)
|
|
4063
4088
|
|
|
4064
|
-
(ptyp, getr) = ival.
|
|
4089
|
+
(ptyp, getr) = ival.getTagVirtInfo(virt)
|
|
4065
4090
|
|
|
4066
4091
|
if (cmprctor := ptyp.getCmprCtor(cmpr)) is None:
|
|
4067
4092
|
raise self.kids[2].addExcInfo(s_exc.NoSuchCmpr(cmpr=cmpr, name=ptyp.name))
|
|
@@ -4069,7 +4094,9 @@ class TagVirtCond(Cond):
|
|
|
4069
4094
|
cmpr = await cmprctor(valu)
|
|
4070
4095
|
|
|
4071
4096
|
async def cond(node, path):
|
|
4072
|
-
tval
|
|
4097
|
+
if (tval := node.getTag(name, getr=getr)) is None:
|
|
4098
|
+
return False
|
|
4099
|
+
|
|
4073
4100
|
return await cmpr(tval)
|
|
4074
4101
|
|
|
4075
4102
|
return cond
|
|
@@ -4079,12 +4106,13 @@ class TagVirtCond(Cond):
|
|
|
4079
4106
|
valu = await rval.compute(runt, path)
|
|
4080
4107
|
virt = await vkid.compute(runt, path)
|
|
4081
4108
|
|
|
4082
|
-
(ptyp, getr) = ival.
|
|
4109
|
+
(ptyp, getr) = ival.getTagVirtInfo(virt)
|
|
4083
4110
|
|
|
4084
4111
|
if (cmprctor := ptyp.getCmprCtor(cmpr)) is None:
|
|
4085
4112
|
raise self.kids[2].addExcInfo(s_exc.NoSuchCmpr(cmpr=cmpr, name=ptyp.name))
|
|
4086
4113
|
|
|
4087
|
-
tval
|
|
4114
|
+
if (tval := node.getTag(name, getr=getr)) is None:
|
|
4115
|
+
return False
|
|
4088
4116
|
|
|
4089
4117
|
return await (await cmprctor(valu))(tval)
|
|
4090
4118
|
|
|
@@ -4433,8 +4461,8 @@ class TagVirtValue(Value):
|
|
|
4433
4461
|
name = await self.kids[0].compute(runt, path)
|
|
4434
4462
|
virt = await self.kids[1].compute(runt, path)
|
|
4435
4463
|
|
|
4436
|
-
getr = runt.model.type('ival').
|
|
4437
|
-
return
|
|
4464
|
+
(_, getr) = runt.model.type('ival').getTagVirtInfo(virt)
|
|
4465
|
+
return path.node.getTag(name, getr=getr)
|
|
4438
4466
|
|
|
4439
4467
|
class TagProp(Value):
|
|
4440
4468
|
|
|
@@ -5862,10 +5890,12 @@ class N1Walk(Oper):
|
|
|
5862
5890
|
for destform in destforms:
|
|
5863
5891
|
prop = runt.model.prop(destform)
|
|
5864
5892
|
if prop is not None:
|
|
5893
|
+
# a form or prop name also matches the forms which inherit from it
|
|
5865
5894
|
if prop.isform:
|
|
5866
|
-
forms.
|
|
5895
|
+
forms.update(runt.model.getChildForms(destform))
|
|
5867
5896
|
else:
|
|
5868
|
-
|
|
5897
|
+
for cprop in runt.model.getChildProps(prop):
|
|
5898
|
+
formprops[cprop.form.name][cprop.name] = cprop
|
|
5869
5899
|
continue
|
|
5870
5900
|
|
|
5871
5901
|
formlist = runt.model.reqFormsByLook(destform, extra=self.kids[0].addExcInfo)
|
|
@@ -44,14 +44,7 @@ async def _getEmailType():
|
|
|
44
44
|
|
|
45
45
|
return _emailtype
|
|
46
46
|
|
|
47
|
-
async def
|
|
48
|
-
'''
|
|
49
|
-
Normalize an email address for use as a unique key via the inet:email type.
|
|
50
|
-
|
|
51
|
-
Returns the normalized form or None if the input is None or normalizes
|
|
52
|
-
to an empty string. Raises BadArg if the value is not a string or does
|
|
53
|
-
not parse as an email address.
|
|
54
|
-
'''
|
|
47
|
+
async def _normEmail(email):
|
|
55
48
|
if email is None:
|
|
56
49
|
return None
|
|
57
50
|
|
|
@@ -64,11 +57,37 @@ async def normEmail(email):
|
|
|
64
57
|
|
|
65
58
|
try:
|
|
66
59
|
etype = await _getEmailType()
|
|
67
|
-
|
|
60
|
+
return await etype.norm(valu)
|
|
68
61
|
except s_exc.BadTypeValu as e:
|
|
69
62
|
raise s_exc.BadArg(mesg=e.get('mesg'), name='email') from None
|
|
70
63
|
|
|
71
|
-
|
|
64
|
+
async def normEmail(email):
|
|
65
|
+
'''
|
|
66
|
+
Normalize an email address for use as a unique key via the inet:email type.
|
|
67
|
+
|
|
68
|
+
Returns the normalized form or None if the input is None or normalizes
|
|
69
|
+
to an empty string. Raises BadArg if the value is not a string or does
|
|
70
|
+
not parse as an email address.
|
|
71
|
+
'''
|
|
72
|
+
retn = await _normEmail(email)
|
|
73
|
+
if retn is None:
|
|
74
|
+
return None
|
|
75
|
+
|
|
76
|
+
return retn[0]
|
|
77
|
+
|
|
78
|
+
async def normEmailFqdn(email):
|
|
79
|
+
'''
|
|
80
|
+
Extract the normalized FQDN from an email address via the inet:email type.
|
|
81
|
+
|
|
82
|
+
Returns the normalized FQDN or None if the input is None or normalizes
|
|
83
|
+
to an empty string. Raises BadArg if the value is not a string or does
|
|
84
|
+
not parse as an email address.
|
|
85
|
+
'''
|
|
86
|
+
retn = await _normEmail(email)
|
|
87
|
+
if retn is None:
|
|
88
|
+
return None
|
|
89
|
+
|
|
90
|
+
return retn[1]['subs']['fqdn'][1]
|
|
72
91
|
|
|
73
92
|
@dataclasses.dataclass(slots=True)
|
|
74
93
|
class _allowedReason:
|
|
@@ -21,6 +21,9 @@ PBKDF2_ITERATIONS = 310_000 # OWASP recommended value 20221004
|
|
|
21
21
|
|
|
22
22
|
DEFAULT_PTYP = PBKDF2
|
|
23
23
|
|
|
24
|
+
APIKEY_PREFIX = 'syn-'
|
|
25
|
+
APIKEY_PREFIX_SIZE = len(APIKEY_PREFIX)
|
|
26
|
+
|
|
24
27
|
def _getPbkdf2(passwd):
|
|
25
28
|
salt = os.urandom(32)
|
|
26
29
|
func_params = {'salt': salt,
|
|
@@ -130,11 +133,11 @@ async def generateApiKey(iden=None):
|
|
|
130
133
|
if not s_common.isguid(iden):
|
|
131
134
|
raise s_exc.CryptoErr(mesg=f'Invalid iden provided: {iden}, must be a guid.')
|
|
132
135
|
secv = s_common.guid()
|
|
133
|
-
key = base64.b64encode(s_common.uhex(iden) + s_common.uhex(secv), altchars=b'-_').decode('utf-8')
|
|
136
|
+
key = APIKEY_PREFIX + base64.b64encode(s_common.uhex(iden) + s_common.uhex(secv), altchars=b'-_').decode('utf-8')
|
|
134
137
|
shadow = await getShadowV2(secv)
|
|
135
138
|
return iden, key, shadow
|
|
136
139
|
|
|
137
|
-
def
|
|
140
|
+
def _parseApiKey(valu):
|
|
138
141
|
if '+' in valu or '/' in valu:
|
|
139
142
|
return False, 'Invalid character in API key.'
|
|
140
143
|
try:
|
|
@@ -144,3 +147,15 @@ def parseApiKey(valu):
|
|
|
144
147
|
if len(buf) != 32:
|
|
145
148
|
return False, f'Incorrect length, got {len(valu)}'
|
|
146
149
|
return True, (s_common.ehex(buf[:16]), s_common.ehex(buf[16:]))
|
|
150
|
+
|
|
151
|
+
def parseApiKey(valu):
|
|
152
|
+
# keys issued before APIKEY_PREFIX was added carry no prefix and must still parse.
|
|
153
|
+
# '-_' is the altchars alphabet, so a legacy key can itself begin with the prefix
|
|
154
|
+
# ('s', 'y', 'n', '-' are all valid altchars); fall back to the unprefixed parse
|
|
155
|
+
# rather than stripping unconditionally.
|
|
156
|
+
if valu.startswith(APIKEY_PREFIX):
|
|
157
|
+
isok, retn = _parseApiKey(valu[APIKEY_PREFIX_SIZE:])
|
|
158
|
+
if isok:
|
|
159
|
+
return True, retn
|
|
160
|
+
|
|
161
|
+
return _parseApiKey(valu)
|