synapse 2.191.0__py311-none-any.whl → 2.192.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.
- synapse/axon.py +54 -23
- synapse/cortex.py +2 -2
- synapse/lib/ast.py +6 -2
- synapse/lib/cell.py +48 -0
- synapse/lib/nexus.py +2 -1
- synapse/lib/stormhttp.py +32 -35
- synapse/lib/stormtypes.py +102 -20
- synapse/lib/version.py +2 -2
- synapse/tests/test_axon.py +10 -0
- synapse/tests/test_cortex.py +52 -0
- synapse/tests/test_lib_ast.py +6 -0
- synapse/tests/test_lib_cell.py +35 -0
- synapse/tests/test_lib_httpapi.py +9 -2
- synapse/tests/test_lib_stormhttp.py +57 -12
- synapse/tests/test_servers_univ.py +0 -12
- synapse/tests/test_tools_apikey.py +227 -0
- synapse/tools/apikey.py +93 -0
- {synapse-2.191.0.dist-info → synapse-2.192.0.dist-info}/METADATA +1 -1
- {synapse-2.191.0.dist-info → synapse-2.192.0.dist-info}/RECORD +22 -20
- {synapse-2.191.0.dist-info → synapse-2.192.0.dist-info}/LICENSE +0 -0
- {synapse-2.191.0.dist-info → synapse-2.192.0.dist-info}/WHEEL +0 -0
- {synapse-2.191.0.dist-info → synapse-2.192.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
|
|
3
|
+
import synapse.exc as s_exc
|
|
4
|
+
import synapse.common as s_common
|
|
5
|
+
|
|
6
|
+
import synapse.lib.time as s_time
|
|
7
|
+
import synapse.lib.output as s_output
|
|
8
|
+
|
|
9
|
+
import synapse.tests.utils as s_test
|
|
10
|
+
import synapse.tools.apikey as s_t_apikey
|
|
11
|
+
|
|
12
|
+
async def getApiKeyByName(core, name):
|
|
13
|
+
keys = {k.get('name'): k async for k in core.getApiKeys()}
|
|
14
|
+
return keys.get(name)
|
|
15
|
+
|
|
16
|
+
class ApiKeyTest(s_test.SynTest):
|
|
17
|
+
|
|
18
|
+
async def test_tools_apikey(self):
|
|
19
|
+
async with self.getTestCore() as core:
|
|
20
|
+
|
|
21
|
+
await core.auth.addUser('blackout')
|
|
22
|
+
|
|
23
|
+
rooturl = core.getLocalUrl()
|
|
24
|
+
blckurl = core.getLocalUrl(user='blackout')
|
|
25
|
+
|
|
26
|
+
# Add API keys
|
|
27
|
+
argv = (
|
|
28
|
+
'--svcurl', rooturl,
|
|
29
|
+
'add',
|
|
30
|
+
'rootkey00',
|
|
31
|
+
'-d', '120',
|
|
32
|
+
)
|
|
33
|
+
outp = s_output.OutPutStr()
|
|
34
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
35
|
+
|
|
36
|
+
self.isin('Successfully added API key with name=rootkey00.', str(outp))
|
|
37
|
+
rootkey00 = await getApiKeyByName(core, 'rootkey00')
|
|
38
|
+
|
|
39
|
+
self.isin(f'Iden: {rootkey00.get("iden")}', str(outp))
|
|
40
|
+
self.isin(' API Key: ', str(outp))
|
|
41
|
+
self.isin(' Name: rootkey00', str(outp))
|
|
42
|
+
self.isin(f' Created: {s_time.repr(rootkey00.get("created"))}', str(outp))
|
|
43
|
+
self.isin(f' Updated: {s_time.repr(rootkey00.get("updated"))}', str(outp))
|
|
44
|
+
self.isin(f' Expires: {s_time.repr(rootkey00.get("expires"))}', str(outp))
|
|
45
|
+
self.eq(rootkey00.get('expires'), rootkey00.get('created') + 120000)
|
|
46
|
+
|
|
47
|
+
argv = (
|
|
48
|
+
'--svcurl', rooturl,
|
|
49
|
+
'add',
|
|
50
|
+
'-u', 'blackout',
|
|
51
|
+
'blckkey00',
|
|
52
|
+
)
|
|
53
|
+
outp = s_output.OutPutStr()
|
|
54
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
55
|
+
|
|
56
|
+
self.isin('Successfully added API key with name=blckkey00.', str(outp))
|
|
57
|
+
blckkey00 = await getApiKeyByName(core, 'blckkey00')
|
|
58
|
+
|
|
59
|
+
self.isin(f'Iden: {blckkey00.get("iden")}', str(outp))
|
|
60
|
+
self.isin(' API Key: ', str(outp))
|
|
61
|
+
self.isin(' Name: blckkey00', str(outp))
|
|
62
|
+
self.isin(f' Created: {s_time.repr(blckkey00.get("created"))}', str(outp))
|
|
63
|
+
self.isin(f' Updated: {s_time.repr(blckkey00.get("updated"))}', str(outp))
|
|
64
|
+
self.notin(' Expires: ', str(outp))
|
|
65
|
+
|
|
66
|
+
argv = (
|
|
67
|
+
'--svcurl', blckurl,
|
|
68
|
+
'add',
|
|
69
|
+
'blckkey01',
|
|
70
|
+
)
|
|
71
|
+
outp = s_output.OutPutStr()
|
|
72
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
73
|
+
|
|
74
|
+
self.isin('Successfully added API key with name=blckkey01.', str(outp))
|
|
75
|
+
blckkey01 = await getApiKeyByName(core, 'blckkey01')
|
|
76
|
+
|
|
77
|
+
self.isin(f'Iden: {blckkey01.get("iden")}', str(outp))
|
|
78
|
+
self.isin(' API Key: ', str(outp))
|
|
79
|
+
self.isin(' Name: blckkey01', str(outp))
|
|
80
|
+
self.isin(f' Created: {s_time.repr(blckkey01.get("created"))}', str(outp))
|
|
81
|
+
self.isin(f' Updated: {s_time.repr(blckkey01.get("updated"))}', str(outp))
|
|
82
|
+
self.notin(' Expires: ', str(outp))
|
|
83
|
+
|
|
84
|
+
# List API keys
|
|
85
|
+
argv = (
|
|
86
|
+
'--svcurl', rooturl,
|
|
87
|
+
'list',
|
|
88
|
+
)
|
|
89
|
+
outp = s_output.OutPutStr()
|
|
90
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
91
|
+
|
|
92
|
+
self.isin(f'Iden: {rootkey00.get("iden")}', str(outp))
|
|
93
|
+
self.notin(' API Key: ', str(outp))
|
|
94
|
+
self.isin(' Name: rootkey00', str(outp))
|
|
95
|
+
self.isin(f' Created: {s_time.repr(rootkey00.get("created"))}', str(outp))
|
|
96
|
+
self.isin(f' Updated: {s_time.repr(rootkey00.get("updated"))}', str(outp))
|
|
97
|
+
self.isin(f' Expires: {s_time.repr(rootkey00.get("expires"))}', str(outp))
|
|
98
|
+
self.eq(rootkey00.get('expires'), rootkey00.get('created') + 120000)
|
|
99
|
+
|
|
100
|
+
argv = (
|
|
101
|
+
'--svcurl', rooturl,
|
|
102
|
+
'list',
|
|
103
|
+
'-u', 'blackout',
|
|
104
|
+
)
|
|
105
|
+
outp = s_output.OutPutStr()
|
|
106
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
107
|
+
|
|
108
|
+
self.isin(f'Iden: {blckkey00.get("iden")}', str(outp))
|
|
109
|
+
self.notin(' API Key: ', str(outp))
|
|
110
|
+
self.isin(' Name: blckkey00', str(outp))
|
|
111
|
+
self.isin(f' Created: {s_time.repr(blckkey00.get("created"))}', str(outp))
|
|
112
|
+
self.isin(f' Updated: {s_time.repr(blckkey00.get("updated"))}', str(outp))
|
|
113
|
+
self.notin(' Expires: ', str(outp))
|
|
114
|
+
|
|
115
|
+
self.isin(f'Iden: {blckkey01.get("iden")}', str(outp))
|
|
116
|
+
self.notin(' API Key: ', str(outp))
|
|
117
|
+
self.isin(' Name: blckkey01', str(outp))
|
|
118
|
+
self.isin(f' Created: {s_time.repr(blckkey01.get("created"))}', str(outp))
|
|
119
|
+
self.isin(f' Updated: {s_time.repr(blckkey01.get("updated"))}', str(outp))
|
|
120
|
+
self.notin(' Expires: ', str(outp))
|
|
121
|
+
|
|
122
|
+
argv = (
|
|
123
|
+
'--svcurl', blckurl,
|
|
124
|
+
'list',
|
|
125
|
+
)
|
|
126
|
+
outp = s_output.OutPutStr()
|
|
127
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
128
|
+
|
|
129
|
+
self.isin(f'Iden: {blckkey00.get("iden")}', str(outp))
|
|
130
|
+
self.notin(' API Key: ', str(outp))
|
|
131
|
+
self.isin(' Name: blckkey00', str(outp))
|
|
132
|
+
self.isin(f' Created: {s_time.repr(blckkey00.get("created"))}', str(outp))
|
|
133
|
+
self.isin(f' Updated: {s_time.repr(blckkey00.get("updated"))}', str(outp))
|
|
134
|
+
self.notin(' Expires: ', str(outp))
|
|
135
|
+
|
|
136
|
+
self.isin(f'Iden: {blckkey01.get("iden")}', str(outp))
|
|
137
|
+
self.notin(' API Key: ', str(outp))
|
|
138
|
+
self.isin(' Name: blckkey01', str(outp))
|
|
139
|
+
self.isin(f' Created: {s_time.repr(blckkey01.get("created"))}', str(outp))
|
|
140
|
+
self.isin(f' Updated: {s_time.repr(blckkey01.get("updated"))}', str(outp))
|
|
141
|
+
self.notin(' Expires: ', str(outp))
|
|
142
|
+
|
|
143
|
+
# Delete API keys
|
|
144
|
+
rootiden00 = rootkey00.get('iden')
|
|
145
|
+
argv = (
|
|
146
|
+
'--svcurl', rooturl,
|
|
147
|
+
'del',
|
|
148
|
+
rootiden00,
|
|
149
|
+
)
|
|
150
|
+
outp = s_output.OutPutStr()
|
|
151
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
152
|
+
self.isin(f'Successfully deleted API key with iden={rootiden00}.', str(outp))
|
|
153
|
+
|
|
154
|
+
blckiden00 = blckkey00.get('iden')
|
|
155
|
+
argv = (
|
|
156
|
+
'--svcurl', rooturl,
|
|
157
|
+
'del',
|
|
158
|
+
blckiden00,
|
|
159
|
+
)
|
|
160
|
+
outp = s_output.OutPutStr()
|
|
161
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
162
|
+
self.isin(f'Successfully deleted API key with iden={blckiden00}.', str(outp))
|
|
163
|
+
|
|
164
|
+
blckiden01 = blckkey01.get('iden')
|
|
165
|
+
argv = (
|
|
166
|
+
'--svcurl', blckurl,
|
|
167
|
+
'del',
|
|
168
|
+
blckiden01,
|
|
169
|
+
)
|
|
170
|
+
outp = s_output.OutPutStr()
|
|
171
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
172
|
+
self.isin(f'Successfully deleted API key with iden={blckiden01}.', str(outp))
|
|
173
|
+
|
|
174
|
+
# List API keys again
|
|
175
|
+
argv = (
|
|
176
|
+
'--svcurl', rooturl,
|
|
177
|
+
'list',
|
|
178
|
+
)
|
|
179
|
+
outp = s_output.OutPutStr()
|
|
180
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
181
|
+
self.isin('No API keys found.', str(outp))
|
|
182
|
+
|
|
183
|
+
argv = (
|
|
184
|
+
'--svcurl', rooturl,
|
|
185
|
+
'list',
|
|
186
|
+
'-u', 'blackout',
|
|
187
|
+
)
|
|
188
|
+
outp = s_output.OutPutStr()
|
|
189
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
190
|
+
self.isin('No API keys found.', str(outp))
|
|
191
|
+
|
|
192
|
+
argv = (
|
|
193
|
+
'--svcurl', blckurl,
|
|
194
|
+
'list',
|
|
195
|
+
)
|
|
196
|
+
outp = s_output.OutPutStr()
|
|
197
|
+
self.eq(0, await s_t_apikey.main(argv, outp=outp))
|
|
198
|
+
self.isin('No API keys found.', str(outp))
|
|
199
|
+
|
|
200
|
+
# Check errors
|
|
201
|
+
argv = (
|
|
202
|
+
'--svcurl', rooturl,
|
|
203
|
+
'list',
|
|
204
|
+
'-u', 'newp',
|
|
205
|
+
)
|
|
206
|
+
outp = s_output.OutPutStr()
|
|
207
|
+
self.eq(1, await s_t_apikey.main(argv, outp=outp))
|
|
208
|
+
self.isin('ERROR: NoSuchUser: No user named newp.', str(outp))
|
|
209
|
+
|
|
210
|
+
argv = (
|
|
211
|
+
'--svcurl', blckurl,
|
|
212
|
+
'list',
|
|
213
|
+
'-u', 'root',
|
|
214
|
+
)
|
|
215
|
+
outp = s_output.OutPutStr()
|
|
216
|
+
self.eq(1, await s_t_apikey.main(argv, outp=outp))
|
|
217
|
+
self.isin('ERROR: AuthDeny: getUserInfo denied for non-admin and non-self', str(outp))
|
|
218
|
+
|
|
219
|
+
newpiden = s_common.guid()
|
|
220
|
+
argv = (
|
|
221
|
+
'--svcurl', rooturl,
|
|
222
|
+
'del',
|
|
223
|
+
newpiden,
|
|
224
|
+
)
|
|
225
|
+
outp = s_output.OutPutStr()
|
|
226
|
+
self.eq(1, await s_t_apikey.main(argv, outp=outp))
|
|
227
|
+
self.isin(f"ERROR: NoSuchIden: User API key with iden='{newpiden}' does not exist.", str(outp))
|
synapse/tools/apikey.py
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import asyncio
|
|
3
|
+
import argparse
|
|
4
|
+
|
|
5
|
+
import synapse.exc as s_exc
|
|
6
|
+
import synapse.telepath as s_telepath
|
|
7
|
+
|
|
8
|
+
import synapse.lib.time as s_time
|
|
9
|
+
import synapse.lib.output as s_output
|
|
10
|
+
|
|
11
|
+
descr = '''
|
|
12
|
+
Add, list, or delete user API keys from a Synapse service.
|
|
13
|
+
'''
|
|
14
|
+
|
|
15
|
+
def printkey(outp, info, apikey=None):
|
|
16
|
+
iden = info.get('iden')
|
|
17
|
+
name = info.get('name')
|
|
18
|
+
created = info.get('created')
|
|
19
|
+
updated = info.get('updated')
|
|
20
|
+
expires = info.get('expires')
|
|
21
|
+
|
|
22
|
+
outp.printf(f'Iden: {iden}')
|
|
23
|
+
if apikey:
|
|
24
|
+
outp.printf(f' API Key: {apikey}')
|
|
25
|
+
outp.printf(f' Name: {name}')
|
|
26
|
+
outp.printf(f' Created: {s_time.repr(created)}')
|
|
27
|
+
outp.printf(f' Updated: {s_time.repr(updated)}')
|
|
28
|
+
if expires:
|
|
29
|
+
outp.printf(f' Expires: {s_time.repr(expires)}')
|
|
30
|
+
|
|
31
|
+
outp.printf('')
|
|
32
|
+
|
|
33
|
+
async def main(argv, outp=s_output.stdout):
|
|
34
|
+
|
|
35
|
+
pars = argparse.ArgumentParser(prog='apikey', description=descr)
|
|
36
|
+
pars.add_argument('--svcurl', default='cell:///vertex/storage', help='The telepath URL of the Synapse service.')
|
|
37
|
+
|
|
38
|
+
subpars = pars.add_subparsers(dest='action', required=True)
|
|
39
|
+
|
|
40
|
+
addp = subpars.add_parser('add', help='Add a user API key.')
|
|
41
|
+
addp.add_argument('-d', '--duration', type=int, help='The duration of the API key in seconds.')
|
|
42
|
+
addp.add_argument('-u', '--username', type=str, help='The username to add an API key to (restricted to admins).')
|
|
43
|
+
addp.add_argument('name', help='The name of the API key to add.')
|
|
44
|
+
|
|
45
|
+
listp = subpars.add_parser('list', help='List user API keys.')
|
|
46
|
+
listp.add_argument('-u', '--username', type=str, help='The username to list API keys for (restricted to admins).')
|
|
47
|
+
|
|
48
|
+
delp = subpars.add_parser('del', help='Delete a user API key.')
|
|
49
|
+
delp.add_argument('iden', help='The iden of the API key to delete.')
|
|
50
|
+
|
|
51
|
+
opts = pars.parse_args(argv)
|
|
52
|
+
|
|
53
|
+
async with s_telepath.withTeleEnv():
|
|
54
|
+
|
|
55
|
+
async with await s_telepath.openurl(opts.svcurl) as cell:
|
|
56
|
+
|
|
57
|
+
try:
|
|
58
|
+
useriden = None
|
|
59
|
+
if opts.action in ('add', 'list') and opts.username:
|
|
60
|
+
user = await cell.getUserInfo(opts.username)
|
|
61
|
+
useriden = user.get('iden')
|
|
62
|
+
|
|
63
|
+
if opts.action == 'add':
|
|
64
|
+
if (duration := opts.duration) is not None:
|
|
65
|
+
# Convert from seconds to milliseconds
|
|
66
|
+
duration *= 1000
|
|
67
|
+
|
|
68
|
+
apikey, info = await cell.addUserApiKey(opts.name, duration=duration, useriden=useriden)
|
|
69
|
+
outp.printf(f'Successfully added API key with name={opts.name}.')
|
|
70
|
+
printkey(outp, info, apikey)
|
|
71
|
+
|
|
72
|
+
elif opts.action == 'del':
|
|
73
|
+
await cell.delUserApiKey(opts.iden)
|
|
74
|
+
outp.printf(f'Successfully deleted API key with iden={opts.iden}.')
|
|
75
|
+
|
|
76
|
+
elif opts.action == 'list':
|
|
77
|
+
apikeys = await cell.listUserApiKeys(useriden=useriden)
|
|
78
|
+
if not apikeys:
|
|
79
|
+
outp.printf('No API keys found.')
|
|
80
|
+
return 0
|
|
81
|
+
|
|
82
|
+
for info in apikeys:
|
|
83
|
+
printkey(outp, info)
|
|
84
|
+
|
|
85
|
+
except s_exc.SynErr as exc:
|
|
86
|
+
mesg = exc.get('mesg')
|
|
87
|
+
outp.printf(f'ERROR: {exc.__class__.__name__}: {mesg}')
|
|
88
|
+
return 1
|
|
89
|
+
|
|
90
|
+
return 0
|
|
91
|
+
|
|
92
|
+
if __name__ == '__main__': # pragma: no cover
|
|
93
|
+
sys.exit(asyncio.run(main(sys.argv[1:])))
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
synapse/__init__.py,sha256=R2kOXlF5j-8m6G0JkHuN7rXRPg_tHLmbMxr__94mHQk,1145
|
|
2
|
-
synapse/axon.py,sha256=
|
|
2
|
+
synapse/axon.py,sha256=qfnNoisX8o5-qf3lcl6_CG2in8sWHp1SAOXSJ8gbxXU,63149
|
|
3
3
|
synapse/cells.py,sha256=eNvdglfAoTURVhGOLGcgMXCGpfsIX1a02SQnyiklo3E,308
|
|
4
4
|
synapse/common.py,sha256=nBJcfK-vCpMgs7Gjwg8Ja9p_S1kNX1TFrq2RP6ojbfQ,36758
|
|
5
|
-
synapse/cortex.py,sha256=
|
|
5
|
+
synapse/cortex.py,sha256=qcezYcKa-nUqrYUxHphpzBA3ka1jx6hqAGvTB1fWEV4,261143
|
|
6
6
|
synapse/cryotank.py,sha256=oTbAOKq-q8WqAkYmY46Mc8hy85W3ZcQMxmP2EJDFyZ0,12124
|
|
7
7
|
synapse/daemon.py,sha256=-xy6EnmD5CodWQs_S-v7apKILECmn5EEYBpEPG-MDns,16986
|
|
8
8
|
synapse/datamodel.py,sha256=jSqBKO8IbDdMrNlXn9x1tGvbYUi5LxkytYRIZHb4cHs,39972
|
|
@@ -85,13 +85,13 @@ synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-sch
|
|
|
85
85
|
synapse/lib/__init__.py,sha256=qLS7nt8-Iot8jnD2Xss_6wZi5lJoyv2rqxF9kkektT0,129
|
|
86
86
|
synapse/lib/agenda.py,sha256=ddr6FrbDY5YslJS3vdBqUUcoh32XwiEj1OkomFg-NAg,33107
|
|
87
87
|
synapse/lib/aha.py,sha256=vUFzh_s4VYSYXb73C3GYVcQRIaQow_0PSrSYOvz5wis,50308
|
|
88
|
-
synapse/lib/ast.py,sha256=
|
|
88
|
+
synapse/lib/ast.py,sha256=1X3A0-ygGri7BmCKTJJ2ZCnObU7IaOLWiKGkgpxuDUo,157521
|
|
89
89
|
synapse/lib/auth.py,sha256=Ir_HeukNPNG5L6uBS07TZNWudhTnW6B7prwDz3_cv_Y,53078
|
|
90
90
|
synapse/lib/autodoc.py,sha256=eTwyKM0msJFmLmZR1OxKFVAb8wcMgJ2q72Ccphsi-u8,23226
|
|
91
91
|
synapse/lib/base.py,sha256=FfS6k30ZcS1CVfHPa5LNKog1f48rJ0xE14PI89vW7tM,23634
|
|
92
92
|
synapse/lib/boss.py,sha256=rYu4jkHJ3Y5GLX23Hlrwe9H17LF27LZ0BkK_A_9Aqh0,2056
|
|
93
93
|
synapse/lib/cache.py,sha256=N8BoNFQXOaYQU33LLYQcVkdV6IYjSNaUoaKue55y7H0,6275
|
|
94
|
-
synapse/lib/cell.py,sha256=
|
|
94
|
+
synapse/lib/cell.py,sha256=neuvllNHHbvt99qh2EbUeraKT00qi55Ti0WBXkKtzzU,180460
|
|
95
95
|
synapse/lib/certdir.py,sha256=laGLxgx0gVxXvoaLKKemBQv71OZr9mDaqlAatdESV1A,56176
|
|
96
96
|
synapse/lib/chop.py,sha256=F0RRLlJ6NlpLW7sBWPNZV9Xw4w6HVbQbxPZPE6VhwVQ,9404
|
|
97
97
|
synapse/lib/cli.py,sha256=rwaO4SbJIzOhwxB9B7NHXpyegQeRsUQ1gULVwgnNCfg,14580
|
|
@@ -123,7 +123,7 @@ synapse/lib/module.py,sha256=0XLFLzuZVmEqulKmdT0uah0oi1t8_f_ghakhqvoKtKI,4686
|
|
|
123
123
|
synapse/lib/modules.py,sha256=xHNrGBWLOSTSqn7GMMnm6iiw3Df-Q11h5gOUw84Ax7E,1282
|
|
124
124
|
synapse/lib/msgpack.py,sha256=IEYF1sv0UoYq1BpqfZUzf30bAlWveC6ZArXBeY68vuI,7895
|
|
125
125
|
synapse/lib/multislabseqn.py,sha256=WxJQm6XNINyGBTUnmSkY4iifxLlR_FZe3geOcT8BxR4,15211
|
|
126
|
-
synapse/lib/nexus.py,sha256=
|
|
126
|
+
synapse/lib/nexus.py,sha256=sSbQdopWRa6Q7k_H0GWQlmol6wDk2dRsWVi04PP7UZ0,23077
|
|
127
127
|
synapse/lib/node.py,sha256=F3cDgnOdlaimjQrtNb2zGZeG8X2xg9FUQ0tAAp0bUsg,31049
|
|
128
128
|
synapse/lib/oauth.py,sha256=Nmd7dnxq7aRdBR5HILYYQm-TpCjfrTOIZwkHPeLQApA,15094
|
|
129
129
|
synapse/lib/output.py,sha256=MARscREHja4h8PQN7GZxHGvF36RoOkUyw3vfhmFzMTk,890
|
|
@@ -144,9 +144,9 @@ synapse/lib/storm.lark,sha256=ItEIPItfrCT5VmaoS1vm8FWD8Wv7b7B6ZWucCJCdO6s,26517
|
|
|
144
144
|
synapse/lib/storm.py,sha256=7eh_yQkywPz_aYva-kzf2pnIcOaee3CT3IvtejDvoBI,217044
|
|
145
145
|
synapse/lib/storm_format.py,sha256=Q8mf9QWzPljwp70BC4dYv0MGWB_YUJi3Ul4T7ReqjlQ,4818
|
|
146
146
|
synapse/lib/stormctrl.py,sha256=XvyZ6M0Ew8sXsjGvRTWbXh0MjktZrGi_zQ9kNa7AWTE,285
|
|
147
|
-
synapse/lib/stormhttp.py,sha256=
|
|
147
|
+
synapse/lib/stormhttp.py,sha256=GwSmdKbY3yFe8tgNazkUAPhmEwP2U2PJTbByPkHAXmk,28846
|
|
148
148
|
synapse/lib/stormsvc.py,sha256=dKREBhzYAncOXBbI-FYLRy9VusGIbRyF0TaDDz7mMXw,7581
|
|
149
|
-
synapse/lib/stormtypes.py,sha256
|
|
149
|
+
synapse/lib/stormtypes.py,sha256=h3FwBugeEagedxdJnXPnZ-y4v27yM-kp3y65TpGrUvY,393284
|
|
150
150
|
synapse/lib/stormwhois.py,sha256=w7N2oCyMljNvi_sRt_bZb5BJwWwYkVGcRd7H_0oHY8Q,2554
|
|
151
151
|
synapse/lib/structlog.py,sha256=qiuD7TTdwCyYEDF2f-88G2iX54SuB-lJ1pqlYokL1r8,1303
|
|
152
152
|
synapse/lib/task.py,sha256=krDjQvNh0EpAs1PILK8CJJa9DMeM0depI0K8Eimp010,5733
|
|
@@ -157,7 +157,7 @@ synapse/lib/time.py,sha256=FKTYwpdvpuAj8p8sSodRjOxoA7Vu67CIbbXz55gtghk,9231
|
|
|
157
157
|
synapse/lib/trigger.py,sha256=mnfkoBHB88JfqPoxb5oflvAaBKZpNvYdxP247YS53fE,20697
|
|
158
158
|
synapse/lib/types.py,sha256=u89ukW38oDziRzeA6IWrPwwPD0Ds75u-gwJSXsQ4loY,69708
|
|
159
159
|
synapse/lib/urlhelp.py,sha256=j-DvWGi-xH0TcO0NbCuwG7guUuiV8wxIxfMyJOzDygo,2523
|
|
160
|
-
synapse/lib/version.py,sha256=
|
|
160
|
+
synapse/lib/version.py,sha256=KhSERXExVZSuS03_CbSgUJGTyHHcXBnrG8UWm8qR-T8,7162
|
|
161
161
|
synapse/lib/view.py,sha256=ugB0VUDjy2GmNaywe2C32_gzUgzdIg25LYt7zn42bTE,60530
|
|
162
162
|
synapse/lib/crypto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
163
163
|
synapse/lib/crypto/coin.py,sha256=_dhlkzIrHT8BvHdJOWK7PDThz3sK3dDRnWAUqjRpZJc,4910
|
|
@@ -265,12 +265,12 @@ synapse/servers/jsonstor.py,sha256=cnt0PESw5qHunEVHCyT-eKOWgywMqe0WNPDtljVgt3c,2
|
|
|
265
265
|
synapse/servers/stemcell.py,sha256=nHACvCWqG2zWTYIo8QvSWi5EBXgYI_3XX7d1-K7xjvg,1192
|
|
266
266
|
synapse/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
267
267
|
synapse/tests/nopmod.py,sha256=sVRGWOVSzYYkDLonKTWbWU4PHYGDRkrUDyS1UEbdqgQ,70
|
|
268
|
-
synapse/tests/test_axon.py,sha256=
|
|
268
|
+
synapse/tests/test_axon.py,sha256=SPejQO9EZ4VXgNYD9C_MJysGevmBqGhmWHy3oodWJ84,48058
|
|
269
269
|
synapse/tests/test_cmds_boss.py,sha256=SdBwM2qJHFzzfrjWYiZOLBKeye8uru7KeJ3NU_YSkWw,4718
|
|
270
270
|
synapse/tests/test_cmds_cortex.py,sha256=LWFz8HyuvsIGjtz2DqXYh-R-5QbiQWzLlQKqew7gabY,17157
|
|
271
271
|
synapse/tests/test_cmds_hive.py,sha256=aRH_Gh8oF_1BsfpmffyhDDNIqnTqsuF2cavdtGke1-0,5912
|
|
272
272
|
synapse/tests/test_common.py,sha256=2SAJ4M2iLdZuPPV-j16QVwE073VrikyW75cYTPRMjWI,16940
|
|
273
|
-
synapse/tests/test_cortex.py,sha256=
|
|
273
|
+
synapse/tests/test_cortex.py,sha256=rQE7h-JKyRgKy8amVsAdjMuv7gM0XTuMiCBz0CmK4vI,358978
|
|
274
274
|
synapse/tests/test_cryotank.py,sha256=ms2VkL0aUskMi-LArTzRt8LUYw0z_y8nQfOOBDiCkvI,12027
|
|
275
275
|
synapse/tests/test_daemon.py,sha256=QqKELhm1HF0q_8Kbk0Uf9fnUg3K5nLQ7MocGIyuKKIw,7715
|
|
276
276
|
synapse/tests/test_data.py,sha256=f8L-q6kpMq8XPG3hq1jwlyaFRQEinSBf7ZlsRFeCuoM,196
|
|
@@ -280,13 +280,13 @@ synapse/tests/test_glob.py,sha256=cSNrtEKWLsZXRhsjxQjRjjMqdgqfpl05yT4S53dC0NU,24
|
|
|
280
280
|
synapse/tests/test_init.py,sha256=rHqYBVL_aFf1HO6zCF5akHVcHUP2g1kpJLRdTkV0yys,557
|
|
281
281
|
synapse/tests/test_lib_agenda.py,sha256=4FwwUuKCJYV63fB8sCtpblCyC300r2Z35IS_qmNZZ3I,44464
|
|
282
282
|
synapse/tests/test_lib_aha.py,sha256=nRHs14-LtnsSRi-C7nRu24g3ENN-R3S-0Uk8Oq2LVy4,61945
|
|
283
|
-
synapse/tests/test_lib_ast.py,sha256=
|
|
283
|
+
synapse/tests/test_lib_ast.py,sha256=8_WPYI8qdDRc42hauueUhRxB12sHV69o02m9HjP9msQ,180418
|
|
284
284
|
synapse/tests/test_lib_auth.py,sha256=xkKacwMEb5xI9vMJIE4rx9e703xcMyVQsAdkKzIsCbY,38360
|
|
285
285
|
synapse/tests/test_lib_autodoc.py,sha256=H2XO2_d8FmsHUd-cn7M-LjTX-078xLhMiOGiGGk5Oj0,8381
|
|
286
286
|
synapse/tests/test_lib_base.py,sha256=0XUGNaXmfDW896gpBTYYd7ovADUD8cyDLkGTefqn1FM,14550
|
|
287
287
|
synapse/tests/test_lib_boss.py,sha256=gZEuJnMO99Fu9gQ7Ct0g67umBW5XFCs8vcwInB5qr14,1598
|
|
288
288
|
synapse/tests/test_lib_cache.py,sha256=oQgEBhm8pZFCEvMfcD3znTDQgl8Gv91fEOB-3eb2IIg,8594
|
|
289
|
-
synapse/tests/test_lib_cell.py,sha256=
|
|
289
|
+
synapse/tests/test_lib_cell.py,sha256=60JgdGgy9JdNZClXxsYaIACAMNEg6NSAxh1Kp8OnGZU,147320
|
|
290
290
|
synapse/tests/test_lib_certdir.py,sha256=d5X1lvp0DnBRigXYLbofZAXakZp440-bjaMH30PlGsI,42728
|
|
291
291
|
synapse/tests/test_lib_chop.py,sha256=LkrM_pQU_KS88aVRPD4DI97qSdhxmw6EUA_jb-UJpww,6238
|
|
292
292
|
synapse/tests/test_lib_cli.py,sha256=B8qGx9KtTWp31RlCMtfFMzhJ0TzaaO9ph7RCK2jHtx4,9283
|
|
@@ -306,7 +306,7 @@ synapse/tests/test_lib_hashitem.py,sha256=IyyueviwK8g-MpCkXU-jLfMDRFMuO8Bl3870Iu
|
|
|
306
306
|
synapse/tests/test_lib_hashset.py,sha256=HwFsohiEzLyQ3evpvcezlj2iM7Li5IrN4rWh1jZnnPQ,1329
|
|
307
307
|
synapse/tests/test_lib_health.py,sha256=yqNw6rXBm_2UBqPlWxeLpFhawKocdS1VitOCD3Lv8gE,2265
|
|
308
308
|
synapse/tests/test_lib_hive.py,sha256=n8xuwhuLPLiqfO_OHcsDSMYIWpIpzVklHYpM-kZHq3U,6379
|
|
309
|
-
synapse/tests/test_lib_httpapi.py,sha256=
|
|
309
|
+
synapse/tests/test_lib_httpapi.py,sha256=j93ZcnbohQOzrf3ZkI6Y6Bpnni0I-Rv8hKXnnDw_EcU,91553
|
|
310
310
|
synapse/tests/test_lib_interval.py,sha256=PNEU24XXEGdlW7WkiYJGbhGljwBJpAWen9yTOqlNikQ,839
|
|
311
311
|
synapse/tests/test_lib_jsonstor.py,sha256=1AebkkDAqFhd_mUyjpGviAUq_n0XFUzeuBxPevOu1vc,5866
|
|
312
312
|
synapse/tests/test_lib_layer.py,sha256=duZUqyqwgRk8RSvVsnV1GCEBOlRl6y84-usWXZdP-Wk,94557
|
|
@@ -332,7 +332,7 @@ synapse/tests/test_lib_snap.py,sha256=OviJtj9N5LhBV-56TySkWvRly7f8VH9d-VBcNFLAtm
|
|
|
332
332
|
synapse/tests/test_lib_spooled.py,sha256=fkLuujrDqjeJtyByptmGZvJbM9QiETCAu4r_4PdLfZg,3929
|
|
333
333
|
synapse/tests/test_lib_storm.py,sha256=mATYbEaT0IdG6J0uO3HZSMRpQ_jBZO7essqOTP9Ok08,228626
|
|
334
334
|
synapse/tests/test_lib_storm_format.py,sha256=tEZgQMmKAeG8FQZE5HUjOT7bnKawVTpNaVQh_3Wa630,277
|
|
335
|
-
synapse/tests/test_lib_stormhttp.py,sha256=
|
|
335
|
+
synapse/tests/test_lib_stormhttp.py,sha256=KnroUvI2eFBcdqLESdHx3bGleclxifm4Xyl6GGx0BKc,45517
|
|
336
336
|
synapse/tests/test_lib_stormlib_aha.py,sha256=2x3KQa64LN86wzSdJwAu3QFb5NNR3WNx1o9aD3N954o,8796
|
|
337
337
|
synapse/tests/test_lib_stormlib_auth.py,sha256=zuYPK91k8uyazjSrjcR0jMEENaeGc0ZhZD8Pk9dSAx4,59849
|
|
338
338
|
synapse/tests/test_lib_stormlib_backup.py,sha256=3ZYE3swQ4A8aYJyVueFXzbekCdoKMC7jsHLoq0hTKGI,1644
|
|
@@ -419,9 +419,10 @@ synapse/tests/test_servers_axon.py,sha256=x7NT6F32yuqP1RNwz1kUHWKg-zewL3Zt3N5a-k
|
|
|
419
419
|
synapse/tests/test_servers_cortex.py,sha256=2td41cPfC5-hJ1C6sH5NsN-ixjfXPCpnPllPagfxVX0,1355
|
|
420
420
|
synapse/tests/test_servers_cryotank.py,sha256=vDxTcF4mUP5QQyf3xD-PKXRsYD0EvLknlkr9S3H2RKc,1185
|
|
421
421
|
synapse/tests/test_servers_stemcell.py,sha256=TJabX5aQVLbGNLffiVd3B7Uj5dH12Y-0KqAW56GM0G8,2320
|
|
422
|
-
synapse/tests/test_servers_univ.py,sha256=
|
|
422
|
+
synapse/tests/test_servers_univ.py,sha256=eXesifJL05IA91f5od-9bjuIDVhNWMdo8qWzaHEr22s,2704
|
|
423
423
|
synapse/tests/test_telepath.py,sha256=AfOBOe8zx71h2-VTWzROCksYwJCBvY-J_r8pa0qHOq0,44327
|
|
424
424
|
synapse/tests/test_tools_aha.py,sha256=9WEg2chGwgLdhjH-KXEhRFhFencpl8zPTNbq5eQ9d-8,7280
|
|
425
|
+
synapse/tests/test_tools_apikey.py,sha256=pAjOSAhZiflKksZMHmICWRi0nIO5hS9P5VcT8qUubn0,8909
|
|
425
426
|
synapse/tests/test_tools_autodoc.py,sha256=5j3QPfaNqhHl_aKbyn7X1C8SMI7k3fAW1-0qEzX78zk,8900
|
|
426
427
|
synapse/tests/test_tools_axon2axon.py,sha256=A6JU9UI8lLMCS5rJ_w5shks4Oyo_VjlXQTOPtaTBE_M,1346
|
|
427
428
|
synapse/tests/test_tools_backup.py,sha256=HyqogKfvF8fLJFp97ereMu_30NIL3O5nBQO8QjsTGEQ,4242
|
|
@@ -518,6 +519,7 @@ synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml,sha256=i1x0osBg5QF2qnbw6
|
|
|
518
519
|
synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml,sha256=zoN8HxrO1QNumYZJy5q0FJNmR3gBe4VI_546rkmc32Q,31
|
|
519
520
|
synapse/tests/files/testcore/cell.yaml,sha256=fBUjBfX1L-0nGQD-VhLMy_IjrDepI9zRzbmgsVFJSYY,46
|
|
520
521
|
synapse/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
522
|
+
synapse/tools/apikey.py,sha256=RxpCcvuq5aHwNXuqYdl9DRwmInLxEgsxTSM1jLv7yX0,3405
|
|
521
523
|
synapse/tools/autodoc.py,sha256=-esajH0-4ftIJHzW93t7FwQEJ4WsvH8iV5em_sf1Wlw,35082
|
|
522
524
|
synapse/tools/axon2axon.py,sha256=FOaBLUrHH-r5Vw8FABwfTNGn_fJCg7jJxtP0ALpJUGM,1654
|
|
523
525
|
synapse/tools/backup.py,sha256=Cz3OSaYMRND7gE55FdyjrBr3C1_qd68yJ23O4-mukCM,5969
|
|
@@ -602,8 +604,8 @@ synapse/vendor/xrpl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
602
604
|
synapse/vendor/xrpl/tests/test_codec.py,sha256=Zwq6A5uZUK_FWDL3BA932c5b-rL3hnC6efobWHSLC4o,6651
|
|
603
605
|
synapse/vendor/xrpl/tests/test_main.py,sha256=kZQwWk7I6HrP-PMvLdsUUN4POvWD9I-iXDHOwdeF090,4299
|
|
604
606
|
synapse/vendor/xrpl/tests/test_main_test_cases.py,sha256=vTlUM4hJD2Hd2wCIdd9rfsvcMZZZQmNHWdCTTFeGz2Y,4221
|
|
605
|
-
synapse-2.
|
|
606
|
-
synapse-2.
|
|
607
|
-
synapse-2.
|
|
608
|
-
synapse-2.
|
|
609
|
-
synapse-2.
|
|
607
|
+
synapse-2.192.0.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
|
|
608
|
+
synapse-2.192.0.dist-info/METADATA,sha256=NMJmdPPc9xMKC0Sov9tfr9Dd5yziL9wvj9qEgQklZFY,4598
|
|
609
|
+
synapse-2.192.0.dist-info/WHEEL,sha256=SzIPD_RU47f7h-36tIDPOo2oz_W3FX5e2XbmWR-qLbQ,93
|
|
610
|
+
synapse-2.192.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
|
|
611
|
+
synapse-2.192.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|