synapse 2.224.0__py311-none-any.whl → 2.225.0__py311-none-any.whl

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.

Files changed (121) hide show
  1. synapse/axon.py +10 -5
  2. synapse/lib/cell.py +1 -1
  3. synapse/lib/const.py +4 -0
  4. synapse/lib/multislabseqn.py +36 -1
  5. synapse/lib/nexus.py +67 -8
  6. synapse/lib/queue.py +4 -1
  7. synapse/lib/rstorm.py +2 -2
  8. synapse/lib/schemas.py +11 -1
  9. synapse/lib/slabseqn.py +28 -0
  10. synapse/lib/storm.py +5 -1
  11. synapse/lib/stormhttp.py +7 -1
  12. synapse/lib/version.py +2 -2
  13. synapse/models/inet.py +4 -0
  14. synapse/models/media.py +4 -0
  15. synapse/models/risk.py +3 -0
  16. synapse/tests/test_cortex.py +2 -2
  17. synapse/tests/test_lib_agenda.py +1 -1
  18. synapse/tests/test_lib_cell.py +1 -1
  19. synapse/tests/test_lib_certdir.py +1 -1
  20. synapse/tests/test_lib_httpapi.py +1 -1
  21. synapse/tests/test_lib_layer.py +1 -1
  22. synapse/tests/test_lib_multislabseqn.py +22 -0
  23. synapse/tests/test_lib_nexus.py +42 -1
  24. synapse/tests/test_lib_slabseqn.py +30 -1
  25. synapse/tests/test_lib_storm.py +59 -1
  26. synapse/tests/test_lib_stormhttp.py +16 -0
  27. synapse/tests/test_lib_stormlib_oauth.py +1 -1
  28. synapse/tests/test_lib_stormsvc.py +1 -1
  29. synapse/tests/test_lib_trigger.py +1 -1
  30. synapse/tests/test_model_inet.py +6 -0
  31. synapse/tests/test_model_media.py +4 -1
  32. synapse/tests/test_model_risk.py +2 -0
  33. synapse/tests/{test_tools_axon2axon.py → test_tools_axon_copy.py} +4 -4
  34. synapse/tests/{test_tools_pullfile.py → test_tools_axon_get.py} +4 -4
  35. synapse/tests/{test_tools_pushfile.py → test_tools_axon_put.py} +7 -7
  36. synapse/tests/{test_tools_csvtool.py → test_tools_cortex_csv.py} +12 -3
  37. synapse/tests/{test_tools_feed.py → test_tools_cortex_feed.py} +2 -2
  38. synapse/tests/{test_tools_apikey.py → test_tools_service_apikey.py} +1 -4
  39. synapse/tests/{test_tools_backup.py → test_tools_service_backup.py} +5 -5
  40. synapse/tests/{test_tools_demote.py → test_tools_service_demote.py} +1 -1
  41. synapse/tests/{test_tools_healthcheck.py → test_tools_service_healthcheck.py} +1 -1
  42. synapse/tests/{test_tools_livebackup.py → test_tools_service_livebackup.py} +1 -1
  43. synapse/tests/{test_tools_modrole.py → test_tools_service_modrole.py} +1 -1
  44. synapse/tests/{test_tools_moduser.py → test_tools_service_moduser.py} +1 -1
  45. synapse/tests/{test_tools_promote.py → test_tools_service_promote.py} +1 -1
  46. synapse/tests/{test_tools_reload.py → test_tools_service_reload.py} +1 -1
  47. synapse/tests/{test_tools_shutdown.py → test_tools_service_shutdown.py} +1 -1
  48. synapse/tests/{test_tools_snapshot.py → test_tools_service_snapshot.py} +1 -1
  49. synapse/tests/{test_tools_storm.py → test_tools_storm_cli.py} +1 -1
  50. synapse/tests/{test_tools_pkgs_gendocs.py → test_tools_storm_pkg_doc.py} +12 -3
  51. synapse/tests/{test_tools_genpkg.py → test_tools_storm_pkg_gen.py} +1 -1
  52. synapse/tests/{test_tools_autodoc.py → test_tools_utils_autodoc.py} +1 -1
  53. synapse/tests/test_tools_utils_changelog.py +454 -0
  54. synapse/tests/{test_tools_easycert.py → test_tools_utils_easycert.py} +48 -46
  55. synapse/tests/{test_tools_guid.py → test_tools_utils_guid.py} +3 -3
  56. synapse/tests/{test_tools_json2mpk.py → test_tools_utils_json2mpk.py} +3 -3
  57. synapse/tests/{test_tools_rstorm.py → test_tools_utils_rstorm.py} +6 -1
  58. synapse/tests/utils.py +3 -1
  59. synapse/tools/apikey.py +4 -83
  60. synapse/tools/autodoc.py +3 -1031
  61. synapse/tools/axon/copy.py +44 -0
  62. synapse/tools/axon/get.py +64 -0
  63. synapse/tools/axon/put.py +122 -0
  64. synapse/tools/axon2axon.py +3 -36
  65. synapse/tools/backup.py +6 -176
  66. synapse/tools/changelog.py +3 -1098
  67. synapse/tools/cortex/csv.py +236 -0
  68. synapse/tools/cortex/feed.py +151 -0
  69. synapse/tools/csvtool.py +3 -227
  70. synapse/tools/demote.py +4 -40
  71. synapse/tools/docker/validate.py +3 -3
  72. synapse/tools/easycert.py +4 -129
  73. synapse/tools/feed.py +3 -140
  74. synapse/tools/genpkg.py +3 -307
  75. synapse/tools/guid.py +7 -6
  76. synapse/tools/healthcheck.py +3 -101
  77. synapse/tools/json2mpk.py +6 -38
  78. synapse/tools/livebackup.py +4 -27
  79. synapse/tools/modrole.py +3 -108
  80. synapse/tools/moduser.py +3 -179
  81. synapse/tools/pkgs/gendocs.py +3 -164
  82. synapse/tools/promote.py +4 -41
  83. synapse/tools/pullfile.py +3 -56
  84. synapse/tools/pushfile.py +3 -114
  85. synapse/tools/reload.py +4 -61
  86. synapse/tools/rstorm.py +3 -26
  87. synapse/tools/service/__init__.py +0 -0
  88. synapse/tools/service/apikey.py +90 -0
  89. synapse/tools/service/backup.py +181 -0
  90. synapse/tools/service/demote.py +47 -0
  91. synapse/tools/service/healthcheck.py +109 -0
  92. synapse/tools/service/livebackup.py +34 -0
  93. synapse/tools/service/modrole.py +116 -0
  94. synapse/tools/service/moduser.py +184 -0
  95. synapse/tools/service/promote.py +48 -0
  96. synapse/tools/service/reload.py +68 -0
  97. synapse/tools/service/shutdown.py +51 -0
  98. synapse/tools/service/snapshot.py +64 -0
  99. synapse/tools/shutdown.py +5 -45
  100. synapse/tools/snapshot.py +4 -57
  101. synapse/tools/storm/__init__.py +0 -0
  102. synapse/tools/storm/__main__.py +5 -0
  103. synapse/tools/{storm.py → storm/_cli.py} +0 -3
  104. synapse/tools/storm/pkg/__init__.py +0 -0
  105. synapse/tools/{pkgs/pandoc_filter.py → storm/pkg/_pandoc_filter.py} +1 -1
  106. synapse/tools/storm/pkg/doc.py +176 -0
  107. synapse/tools/storm/pkg/gen.py +315 -0
  108. synapse/tools/utils/__init__.py +0 -0
  109. synapse/tools/utils/autodoc.py +1040 -0
  110. synapse/tools/utils/changelog.py +1124 -0
  111. synapse/tools/utils/easycert.py +136 -0
  112. synapse/tools/utils/guid.py +11 -0
  113. synapse/tools/utils/json2mpk.py +46 -0
  114. synapse/tools/utils/rstorm.py +35 -0
  115. {synapse-2.224.0.dist-info → synapse-2.225.0.dist-info}/METADATA +1 -1
  116. {synapse-2.224.0.dist-info → synapse-2.225.0.dist-info}/RECORD +120 -91
  117. synapse/tests/test_tools_changelog.py +0 -196
  118. /synapse/tests/{test_tools_axon.py → test_tools_axon_dump_load.py} +0 -0
  119. {synapse-2.224.0.dist-info → synapse-2.225.0.dist-info}/WHEEL +0 -0
  120. {synapse-2.224.0.dist-info → synapse-2.225.0.dist-info}/licenses/LICENSE +0 -0
  121. {synapse-2.224.0.dist-info → synapse-2.225.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,136 @@
1
+ import argparse
2
+
3
+ import synapse.exc as s_exc
4
+ import synapse.lib.cmd as s_cmd
5
+ import synapse.lib.output as s_output
6
+ import synapse.lib.certdir as s_certdir
7
+
8
+ descr = '''
9
+ Command line tool to generate simple x509 certs
10
+ '''
11
+
12
+ async def main(argv, outp=s_output.stdout):
13
+
14
+ pars = argparse.ArgumentParser(prog='synapse.tools.utils.easycert', description=descr)
15
+ pars.add_argument('--certdir', default='~/.syn/certs', help='Directory for certs/keys')
16
+ pars.add_argument('--importfile', choices=('cas', 'hosts', 'users'), help='import certs and/or keys into local certdir')
17
+
18
+ pars.add_argument('--ca', default=False, action='store_true', help='mark the certificate as a CA/CRL signer')
19
+ pars.add_argument('--crl', default=False, action='store_true', help='Generate a new CRL for the given CA name.')
20
+ pars.add_argument('--p12', default=False, action='store_true', help='mark the certificate as a p12 archive')
21
+ pars.add_argument('--code', default=False, action='store_true', help='mark the certificate for use in code signing.')
22
+ pars.add_argument('--server', default=False, action='store_true', help='mark the certificate as a server')
23
+ pars.add_argument('--server-sans', help='server cert subject alternate names')
24
+
25
+ pars.add_argument('--csr', default=False, action='store_true', help='generate a cert signing request')
26
+ pars.add_argument('--sign-csr', default=False, action='store_true', help='sign a cert signing request')
27
+ pars.add_argument('--signas', help='sign the new cert with the given cert name')
28
+ pars.add_argument('--revokeas', help='Revoke a cert as the given CA and add it to the CSR.')
29
+
30
+ pars.add_argument('name', help='common name for the certificate (or filename for CSR signing)')
31
+
32
+ opts = pars.parse_args(argv)
33
+
34
+ cdir = s_certdir.CertDir(path=opts.certdir)
35
+
36
+ try:
37
+
38
+ if opts.crl:
39
+
40
+ crl = cdir.genCaCrl(opts.name)
41
+ crl._save()
42
+
43
+ outp.printf(f'CRL saved: {crl.path}')
44
+
45
+ return 0
46
+
47
+ if opts.revokeas:
48
+
49
+ if opts.code:
50
+ cert = cdir.getCodeCert(opts.name)
51
+
52
+ elif opts.server:
53
+ cert = cdir.getHostCert(opts.name)
54
+
55
+ elif opts.ca:
56
+ cert = cdir.getCaCert(opts.name)
57
+
58
+ else:
59
+ cert = cdir.getUserCert(opts.name)
60
+
61
+ if cert is None:
62
+ outp.printf(f'Certificate not found: {opts.name}')
63
+ return 1
64
+
65
+ crl = cdir.genCaCrl(opts.revokeas)
66
+ try:
67
+ crl.revoke(cert)
68
+ except s_exc.SynErr as e:
69
+ outp.printf(f'Failed to revoke certificate: {e.get("mesg")}')
70
+ return 1
71
+
72
+ outp.printf(f'Certificate revoked: {opts.name}')
73
+ outp.printf(f'CRL updated: {opts.revokeas}')
74
+
75
+ return 0
76
+
77
+ if opts.importfile:
78
+ cdir.importFile(opts.name, opts.importfile, outp=outp)
79
+ return 0
80
+
81
+ if opts.p12:
82
+
83
+ cdir.genClientCert(opts.name, outp=outp)
84
+ return 0
85
+
86
+ if opts.sign_csr:
87
+
88
+ if opts.signas is None:
89
+ outp.printf('--sign-csr requires --signas')
90
+ return 1
91
+
92
+ xcsr = cdir._loadCsrPath(opts.name)
93
+ if xcsr is None:
94
+ outp.printf('csr not found: %s' % (opts.name,))
95
+ return 1
96
+
97
+ if opts.server:
98
+ cdir.signHostCsr(xcsr, opts.signas, outp=outp)
99
+ return 0
100
+
101
+ cdir.signUserCsr(xcsr, opts.signas, outp=outp)
102
+ return 0
103
+
104
+ if opts.csr:
105
+
106
+ if opts.ca:
107
+ raise NotImplementedError('CSR for CA cert not supported (yet)')
108
+
109
+ if opts.server:
110
+ cdir.genHostCsr(opts.name, outp=outp)
111
+ return 0
112
+
113
+ cdir.genUserCsr(opts.name, outp=outp)
114
+ return 0
115
+
116
+ if opts.ca:
117
+ cdir.genCaCert(opts.name, signas=opts.signas, outp=outp)
118
+ return 0
119
+
120
+ if opts.server:
121
+ cdir.genHostCert(opts.name, signas=opts.signas, outp=outp, sans=opts.server_sans)
122
+ return 0
123
+
124
+ if opts.code:
125
+ cdir.genCodeCert(opts.name, signas=opts.signas, outp=outp)
126
+ return 0
127
+
128
+ cdir.genUserCert(opts.name, signas=opts.signas, outp=outp)
129
+ return 0
130
+
131
+ except s_exc.DupFileName as e:
132
+ outp.printf('file exists: %s' % (e.errinfo.get('path'),))
133
+ return 1
134
+
135
+ if __name__ == '__main__': # pragma: no cover
136
+ s_cmd.exitmain(main)
@@ -0,0 +1,11 @@
1
+ import synapse.common as s_common
2
+
3
+ import synapse.lib.cmd as s_cmd
4
+ import synapse.lib.output as s_output
5
+
6
+ async def main(argv, outp=s_output.stdout):
7
+ outp.printf(s_common.guid())
8
+ return 0
9
+
10
+ if __name__ == '__main__': # pragma: no cover
11
+ s_cmd.exitmain(main)
@@ -0,0 +1,46 @@
1
+ import os
2
+ import argparse
3
+
4
+ import synapse.lib.cmd as s_cmd
5
+ import synapse.lib.json as s_json
6
+ import synapse.lib.output as s_output
7
+ import synapse.lib.msgpack as s_msgpack
8
+
9
+ def getArgParser():
10
+ pars = argparse.ArgumentParser(prog='synapse.tools.utils.json2mpk',
11
+ description='Convert files from json lines to msgpack')
12
+ pars.add_argument('--rm', action='store_true', help='Remove json files once the conversion is complete')
13
+ pars.add_argument('paths', nargs='+', help='json files or directories full of json files')
14
+ return pars
15
+
16
+ async def main(argv, outp=s_output.stdout):
17
+ pars = getArgParser()
18
+ opts = pars.parse_args(argv)
19
+
20
+ for path in opts.paths:
21
+
22
+ if not path.endswith('.json'):
23
+ outp.printf('skip: %s (not .json extension)' % (path,))
24
+ continue
25
+
26
+ if not os.path.isfile(path):
27
+ outp.printf('skip: %s (not a file)' % (path,))
28
+ continue
29
+
30
+ base = path[:-5]
31
+ newp = base + '.mpk'
32
+
33
+ outp.printf('converting: %s -> .mpk' % (path,))
34
+ with open(path, 'r', encoding='utf8') as fd:
35
+ with open(newp, 'wb') as pk:
36
+ for line in fd:
37
+ item = s_json.loads(line)
38
+ pk.write(s_msgpack.en(item))
39
+
40
+ if opts.rm:
41
+ os.unlink(path)
42
+
43
+ return 0
44
+
45
+ if __name__ == '__main__': # pragma: no cover
46
+ s_cmd.exitmain(main)
@@ -0,0 +1,35 @@
1
+ import logging
2
+
3
+ import synapse.common as s_common
4
+
5
+ import synapse.lib.cmd as s_cmd
6
+ import synapse.lib.output as s_output
7
+ import synapse.lib.rstorm as s_rstorm
8
+
9
+ logger = logging.getLogger(__name__)
10
+
11
+ prog = 'synapse.tools.utils.rstorm'
12
+ descr = 'An RST pre-processor that allows you to embed storm directives.'
13
+
14
+ async def main(argv, outp=s_output.stdout):
15
+
16
+ pars = s_cmd.Parser(prog=prog, outp=outp, description=descr)
17
+ pars.add_argument('rstfile', help='Input RST file with storm directives.')
18
+ pars.add_argument('--save', help='Output file to save (default: stdout)')
19
+
20
+ opts = pars.parse_args(argv)
21
+
22
+ async with await s_rstorm.StormRst.anit(opts.rstfile) as rstorm:
23
+ lines = await rstorm.run()
24
+
25
+ if opts.save:
26
+ with open(s_common.genpath(opts.save), 'w') as fd:
27
+ fd.truncate(0)
28
+ [fd.write(line) for line in lines]
29
+ else:
30
+ for line in lines:
31
+ outp.printf(line, addnl=False)
32
+
33
+ if __name__ == '__main__': # pragma: no cover
34
+ s_common.setlogging(logger)
35
+ s_cmd.exitmain(main)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse
3
- Version: 2.224.0
3
+ Version: 2.225.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License-Expression: Apache-2.0