synapse 2.188.1__py311-none-any.whl → 2.189.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/lib/storm.py CHANGED
@@ -626,7 +626,7 @@ stormcmds = (
626
626
  {
627
627
  'name': 'feed.list',
628
628
  'descr': 'List the feed functions available in the Cortex',
629
- 'cmdrargs': (),
629
+ 'cmdargs': (),
630
630
  'storm': '''
631
631
  $lib.print('Storm feed list:')
632
632
  for $flinfo in $lib.feed.list() {
@@ -824,19 +824,51 @@ stormcmds = (
824
824
  {
825
825
  'name': 'pkg.list',
826
826
  'descr': 'List the storm packages loaded in the cortex.',
827
- 'cmdrargs': (),
827
+ 'cmdargs': (
828
+ ('--verbose', {'default': False, 'action': 'store_true',
829
+ 'help': 'Display build time for each package.'}),
830
+ ),
828
831
  'storm': '''
829
- $pkgs = $lib.pkg.list()
830
-
831
- if $($pkgs.size() = 0) {
832
+ init {
833
+ $conf = ({
834
+ "columns": [
835
+ {"name": "name", "width": 40},
836
+ {"name": "vers", "width": 10},
837
+ ],
838
+ "separators": {
839
+ "row:outline": false,
840
+ "column:outline": false,
841
+ "header:row": "#",
842
+ "data:row": "",
843
+ "column": "",
844
+ },
845
+ })
846
+ if $cmdopts.verbose {
847
+ $conf.columns.append(({"name": "time", "width": 20}))
848
+ }
849
+ $printer = $lib.tabular.printer($conf)
850
+ }
832
851
 
833
- $lib.print('No storm packages installed.')
852
+ $pkgs = $lib.pkg.list()
834
853
 
835
- } else {
854
+ if $($pkgs.size() > 0) {
836
855
  $lib.print('Loaded storm packages:')
856
+ $lib.print($printer.header())
837
857
  for $pkg in $pkgs {
838
- $lib.print("{name}: {vers}", name=$pkg.name.ljust(32), vers=$pkg.version)
858
+ $row = (
859
+ $pkg.name, $pkg.version,
860
+ )
861
+ if $cmdopts.verbose {
862
+ try {
863
+ $row.append($lib.time.format($pkg.build.time, '%Y-%m-%d %H:%M:%S'))
864
+ } catch StormRuntimeError as _ {
865
+ $row.append('not available')
866
+ }
867
+ }
868
+ $lib.print($printer.row($row))
839
869
  }
870
+ } else {
871
+ $lib.print('No storm packages installed.')
840
872
  }
841
873
  '''
842
874
  },
synapse/lib/version.py CHANGED
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
223
223
  ##############################################################################
224
224
  # The following are touched during the release process by bumpversion.
225
225
  # Do not modify these directly.
226
- version = (2, 188, 1)
226
+ version = (2, 189, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = '2cf97aa2a3266442393dfc78525749d3f65d9fc7'
228
+ commit = '0cec341c3b35e19b0cb34c1d5210afb0790cba99'
synapse/models/risk.py CHANGED
@@ -709,6 +709,9 @@ class RiskModule(s_module.CoreModule):
709
709
  ('vuln', ('risk:vuln', {}), {
710
710
  'doc': 'The vulnerability that the node is susceptible to.'}),
711
711
 
712
+ ('technique', ('ou:technique', {}), {
713
+ 'doc': 'The technique that the node is susceptible to.'}),
714
+
712
715
  ('period', ('ival', {}), {
713
716
  'doc': 'The time window where the node was vulnerable.'}),
714
717
 
@@ -1351,7 +1351,7 @@ class AstTest(s_test.SynTest):
1351
1351
  {n.ndef for n in nodes})
1352
1352
 
1353
1353
  msgs = await core.stormlist('pkg.list')
1354
- self.stormIsInPrint('foo : 0.0.1', msgs)
1354
+ self.stormIsInPrint('foo 0.0.1', msgs, whitespace=False)
1355
1355
 
1356
1356
  msgs = await core.stormlist('pkg.del asdf')
1357
1357
  self.stormIsInPrint('No package names match "asdf". Aborting.', msgs)
@@ -862,8 +862,8 @@ class StormTest(s_t_utils.SynTest):
862
862
  pkg1 = {'name': 'haha', 'version': '1.2.3'}
863
863
  await core.addStormPkg(pkg1)
864
864
  msgs = await core.stormlist('pkg.list')
865
- self.isin('haha', msgs[2][1]['mesg'])
866
- self.isin('hehe', msgs[3][1]['mesg'])
865
+ self.stormIsInPrint('haha', msgs)
866
+ self.stormIsInPrint('hehe', msgs)
867
867
 
868
868
  self.true(await core.callStorm('return($lib.pkg.has(haha))'))
869
869
 
@@ -871,6 +871,15 @@ class StormTest(s_t_utils.SynTest):
871
871
  self.none(await core.callStorm('return($lib.pkg.get(haha))'))
872
872
  self.false(await core.callStorm('return($lib.pkg.has(haha))'))
873
873
 
874
+ msgs = await core.stormlist('pkg.list --verbose')
875
+ self.stormIsInPrint('not available', msgs)
876
+
877
+ pkg2 = {'name': 'hoho', 'version': '4.5.6', 'build': {'time': 1732017600000}}
878
+ await core.addStormPkg(pkg2)
879
+ self.eq('4.5.6', await core.callStorm('return($lib.pkg.get(hoho).version)'))
880
+ msgs = await core.stormlist('pkg.list --verbose')
881
+ self.stormIsInPrint('2024-11-19 12:00:00', msgs)
882
+
874
883
  # test for $lib.queue.gen()
875
884
  self.eq(0, await core.callStorm('return($lib.queue.gen(woot).size())'))
876
885
  # and again to test *not* creating it...
@@ -523,6 +523,7 @@ class RiskModelTest(s_t_utils.SynTest):
523
523
  :period=(2022, ?)
524
524
  :node=(inet:fqdn, vertex.link)
525
525
  :vuln={[ risk:vuln=* :name=redtree ]}
526
+ :technique={[ ou:technique=* :name=foo ]}
526
527
  :mitigated=true
527
528
  :mitigations={[ risk:mitigation=* :name=patchstuff ]}
528
529
  ]
@@ -535,6 +536,7 @@ class RiskModelTest(s_t_utils.SynTest):
535
536
  self.len(1, await core.nodes('risk:vulnerable -> risk:vuln'))
536
537
  self.len(1, await core.nodes('risk:vuln:name=redtree -> risk:vulnerable :node -> *'))
537
538
  self.len(1, await core.nodes('risk:vulnerable -> risk:mitigation'))
539
+ self.len(1, await core.nodes('risk:vulnerable -> ou:technique'))
538
540
 
539
541
  nodes = await core.nodes('''
540
542
  [ risk:outage=*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.188.1
3
+ Version: 2.189.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License: Apache License 2.0
@@ -141,7 +141,7 @@ synapse/lib/slabseqn.py,sha256=LJ2SZEsZlROBAD3mdS-3JxNVVPXXkBW8GIJXsW0OGG8,10287
141
141
  synapse/lib/snap.py,sha256=QfNtFHV_76ABrm7Zf7WR5kVBB-MvuZmdmDfy0n1Whlo,59880
142
142
  synapse/lib/spooled.py,sha256=pKPacX-fvZDUTUWPaKgyct_lk_3eoSsF9Ufh_cn_1fQ,5987
143
143
  synapse/lib/storm.lark,sha256=ItEIPItfrCT5VmaoS1vm8FWD8Wv7b7B6ZWucCJCdO6s,26517
144
- synapse/lib/storm.py,sha256=1jvPPyY1-fMYnZSMvvk2-hY4C5lD3z-Y5L6yIVY2MKc,215639
144
+ synapse/lib/storm.py,sha256=lW4f2Qny0jfcclxkWbWlgarD8NdjwFXf955EZjbHATQ,216918
145
145
  synapse/lib/storm_format.py,sha256=Q8mf9QWzPljwp70BC4dYv0MGWB_YUJi3Ul4T7ReqjlQ,4818
146
146
  synapse/lib/stormctrl.py,sha256=XvyZ6M0Ew8sXsjGvRTWbXh0MjktZrGi_zQ9kNa7AWTE,285
147
147
  synapse/lib/stormhttp.py,sha256=tw0LuO0UfxZT50sfF_V9hemudv5yZc2M9nFMkGrRHRw,28884
@@ -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=X3KK5ag5Ee8G9a9rFljRSYjDQiGQWyttte-yOf2z_lM,7162
160
+ synapse/lib/version.py,sha256=e55WoEalWhgontsiSsICZ1XYBKyX5yUoK68uJXNWF3w,7162
161
161
  synapse/lib/view.py,sha256=BjIp5tPQhNmVRQ25_BQCwKNTw4xydx24wDl-YSBslAo,60658
162
162
  synapse/lib/crypto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
163
  synapse/lib/crypto/coin.py,sha256=_dhlkzIrHT8BvHdJOWK7PDThz3sK3dDRnWAUqjRpZJc,4910
@@ -246,7 +246,7 @@ synapse/models/orgs.py,sha256=hX0bkMK33qCr5vxl2RhaBz1MJFe6Rs3I9C5pANJiliA,70851
246
246
  synapse/models/person.py,sha256=-YJh_KgEvL4a0ArdBX1xirMQy_8YZGyaA04Mq7Hg_VQ,27193
247
247
  synapse/models/planning.py,sha256=vmrY4d3WRxizrNU1YBe36NGZTuuu4lhGS8KI5lCZ5yQ,7302
248
248
  synapse/models/proj.py,sha256=VLqeQGaOT_ZqN5Lh6aTsOvDfBUM4FCUGCgC0jfACA68,9879
249
- synapse/models/risk.py,sha256=xyLJamNJ3k1DcolMDWDkuIdYDIArqDi9aoIN2_aJMZQ,55737
249
+ synapse/models/risk.py,sha256=NUqWGBSTNwuYTXTcuoQQNeTZw5JZwdzJ4SmeP5CDBAE,55879
250
250
  synapse/models/science.py,sha256=oSkKbjmVncYcVkVgx8rhM08XtcsgDgjf3mpunz5kL30,4329
251
251
  synapse/models/syn.py,sha256=oY6NTeDNUw0fv7wku8ieB1PqoZ-3qac0Chmdm8kk5Ds,13565
252
252
  synapse/models/telco.py,sha256=1BdnFr6Cyb1ZPtekIXaoUuRjISfJnIerTklQUEk_MzE,15273
@@ -280,7 +280,7 @@ 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=jQe0csMPBCmwojEy0EMtM83DSG96TFPWwptlMu_W7-4,44672
282
282
  synapse/tests/test_lib_aha.py,sha256=nRHs14-LtnsSRi-C7nRu24g3ENN-R3S-0Uk8Oq2LVy4,61945
283
- synapse/tests/test_lib_ast.py,sha256=il-g_TeEkfTSNbw70Ep9aWmuu9jMAesHceRz6sKekFw,180194
283
+ synapse/tests/test_lib_ast.py,sha256=rYYA9JYUSnY29EjHMzm2f5diqyDD5xiGsETHK8whxxg,180182
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
@@ -330,7 +330,7 @@ synapse/tests/test_lib_slaboffs.py,sha256=FHQ8mGZ27dGqVwGk6q2UJ4gkPRZN22eIVzS8hM
330
330
  synapse/tests/test_lib_slabseqn.py,sha256=74V6jU7DRTsy_hqUFDuT4C6dPlJ6ObNnjmI9qhbbyVc,5230
331
331
  synapse/tests/test_lib_snap.py,sha256=OviJtj9N5LhBV-56TySkWvRly7f8VH9d-VBcNFLAtmg,27805
332
332
  synapse/tests/test_lib_spooled.py,sha256=fkLuujrDqjeJtyByptmGZvJbM9QiETCAu4r_4PdLfZg,3929
333
- synapse/tests/test_lib_storm.py,sha256=19RKTaoeKzJCTG5scu2hGaHCTU3GDYmiP1RVkAn9t4k,228172
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
335
  synapse/tests/test_lib_stormhttp.py,sha256=ZS8iONsisWjEi2CXx9AttiQ9bOrPs9x4GCwXlJEB_u0,42592
336
336
  synapse/tests/test_lib_stormlib_aha.py,sha256=2x3KQa64LN86wzSdJwAu3QFb5NNR3WNx1o9aD3N954o,8796
@@ -410,7 +410,7 @@ synapse/tests/test_model_orgs.py,sha256=4ndVUD7mQAQ_FFxj_h3KT-KOD7gEuJxtkV3L9cC6
410
410
  synapse/tests/test_model_person.py,sha256=6Zj_dnOyY4axLvl7VKCEYGtwVlnEYqKSg5kOi3Brp9s,17322
411
411
  synapse/tests/test_model_planning.py,sha256=U2kkE0uBO6CqtTfy7wlnhEIu_NFdSri4I_I5b-mRjBE,5615
412
412
  synapse/tests/test_model_proj.py,sha256=hCuM-CTyCAvqVPy7klP6NXOEtgJ61OyyT0x8mcJsjns,23238
413
- synapse/tests/test_model_risk.py,sha256=bivCsGhYxhXjauXPZIR4-nNt4pDdaBZfHXOFf66yu4Y,29817
413
+ synapse/tests/test_model_risk.py,sha256=6aEpAWWVrBW-m_exNxY88iXR5M793jq1Zfnx3hDjyYI,29956
414
414
  synapse/tests/test_model_science.py,sha256=2T9VxdzpltDufgjkUB95q97TQP9AxH2-T_sBbHfPDRk,2450
415
415
  synapse/tests/test_model_syn.py,sha256=9yWzWRSBI3rjv7hu3MUE9KuE00n4GxxlQmxDvQJj6gw,23028
416
416
  synapse/tests/test_model_telco.py,sha256=5ToiRhCX7faiDx4lDMV6b7E9WteN3PcBlznYF6GA2co,13166
@@ -602,8 +602,8 @@ synapse/vendor/xrpl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
602
602
  synapse/vendor/xrpl/tests/test_codec.py,sha256=Zwq6A5uZUK_FWDL3BA932c5b-rL3hnC6efobWHSLC4o,6651
603
603
  synapse/vendor/xrpl/tests/test_main.py,sha256=kZQwWk7I6HrP-PMvLdsUUN4POvWD9I-iXDHOwdeF090,4299
604
604
  synapse/vendor/xrpl/tests/test_main_test_cases.py,sha256=vTlUM4hJD2Hd2wCIdd9rfsvcMZZZQmNHWdCTTFeGz2Y,4221
605
- synapse-2.188.1.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
606
- synapse-2.188.1.dist-info/METADATA,sha256=neBrrIuoAojnDQBj7HJLscHKDQG6Rn_XPhgXukXb19I,4598
607
- synapse-2.188.1.dist-info/WHEEL,sha256=y8gtEzj_RhGngGZYBJN7_o4ndhYcFOQ6SmTMJ4KnVJs,93
608
- synapse-2.188.1.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
609
- synapse-2.188.1.dist-info/RECORD,,
605
+ synapse-2.189.0.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
606
+ synapse-2.189.0.dist-info/METADATA,sha256=Zkwn98ReEux1V9vICgxWOFPZoeLHw_fxIuyoL7YDn94,4598
607
+ synapse-2.189.0.dist-info/WHEEL,sha256=SzIPD_RU47f7h-36tIDPOo2oz_W3FX5e2XbmWR-qLbQ,93
608
+ synapse-2.189.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
609
+ synapse-2.189.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.5.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py311-none-any
5
5