synapse 2.179.0__py311-none-any.whl → 2.180.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/cortex.py +4 -4
- synapse/lib/ast.py +84 -54
- synapse/lib/layer.py +1 -1
- synapse/lib/lmdbslab.py +2 -0
- synapse/lib/modelrev.py +5 -1
- synapse/lib/node.py +14 -4
- synapse/lib/schemas.py +58 -0
- synapse/lib/snap.py +19 -4
- synapse/lib/storm.py +6 -4
- synapse/lib/stormlib/stix.py +4 -0
- synapse/lib/version.py +2 -2
- synapse/models/auth.py +2 -0
- synapse/models/geopol.py +3 -0
- synapse/models/inet.py +1 -0
- synapse/models/infotech.py +109 -91
- synapse/models/person.py +5 -2
- synapse/models/telco.py +3 -0
- synapse/tests/test_lib_ast.py +231 -0
- synapse/tests/test_lib_cell.py +1 -0
- synapse/tests/test_lib_layer.py +22 -0
- synapse/tests/test_lib_modelrev.py +7 -0
- synapse/tests/test_lib_node.py +12 -1
- synapse/tests/test_lib_storm.py +32 -7
- synapse/tests/test_lib_stormlib_stix.py +1 -1
- synapse/tests/test_model_geopol.py +2 -0
- synapse/tests/test_model_inet.py +10 -1
- synapse/tests/test_model_person.py +2 -0
- synapse/tests/test_model_telco.py +2 -1
- {synapse-2.179.0.dist-info → synapse-2.180.0.dist-info}/METADATA +1 -1
- {synapse-2.179.0.dist-info → synapse-2.180.0.dist-info}/RECORD +33 -33
- {synapse-2.179.0.dist-info → synapse-2.180.0.dist-info}/WHEEL +1 -1
- {synapse-2.179.0.dist-info → synapse-2.180.0.dist-info}/LICENSE +0 -0
- {synapse-2.179.0.dist-info → synapse-2.180.0.dist-info}/top_level.txt +0 -0
synapse/lib/schemas.py
CHANGED
|
@@ -493,3 +493,61 @@ driveDataVersSchema = {
|
|
|
493
493
|
'additionalProperties': False,
|
|
494
494
|
}
|
|
495
495
|
reqValidDriveDataVers = s_config.getJsValidator(driveDataVersSchema)
|
|
496
|
+
|
|
497
|
+
stixIngestConfigSchema = {
|
|
498
|
+
'type': 'object',
|
|
499
|
+
'properties': {
|
|
500
|
+
'bundle': {
|
|
501
|
+
'type': ['object', 'null'],
|
|
502
|
+
'properties': {'storm': {'type': 'string'}},
|
|
503
|
+
},
|
|
504
|
+
'objects': {
|
|
505
|
+
'type': 'object',
|
|
506
|
+
'properties': {'storm': {'type': 'string'}},
|
|
507
|
+
},
|
|
508
|
+
'relationships': {
|
|
509
|
+
'type': 'array',
|
|
510
|
+
'items': {
|
|
511
|
+
'type': 'object',
|
|
512
|
+
'properties': {
|
|
513
|
+
'type': {
|
|
514
|
+
'type': 'array',
|
|
515
|
+
'items': {
|
|
516
|
+
'type': ['string', 'null'],
|
|
517
|
+
'minItems': 3,
|
|
518
|
+
'maxItems': 3,
|
|
519
|
+
},
|
|
520
|
+
},
|
|
521
|
+
'storm': {'type': 'string'},
|
|
522
|
+
},
|
|
523
|
+
'required': ['type'],
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
},
|
|
527
|
+
'required': ['bundle', 'objects'],
|
|
528
|
+
}
|
|
529
|
+
reqValidStixIngestConfig = s_config.getJsValidator(stixIngestConfigSchema)
|
|
530
|
+
|
|
531
|
+
stixIngestBundleSchema = {
|
|
532
|
+
'type': 'object',
|
|
533
|
+
'properties': {
|
|
534
|
+
'objects': {
|
|
535
|
+
'type': 'array',
|
|
536
|
+
'items': {
|
|
537
|
+
'type': 'object',
|
|
538
|
+
'properties': {
|
|
539
|
+
'id': {'type': 'string'},
|
|
540
|
+
'type': {'type': 'string'},
|
|
541
|
+
'object_refs': {'type': 'array', 'items': {'type': 'string'}},
|
|
542
|
+
'relationship_type': {'type': 'string'},
|
|
543
|
+
'source_ref': {'type': 'string'},
|
|
544
|
+
'target_ref': {'type': 'string'},
|
|
545
|
+
},
|
|
546
|
+
'required': ['id', 'type'],
|
|
547
|
+
'if': {'properties': {'type': {'const': 'relationship'}}},
|
|
548
|
+
'then': {'required': ['source_ref', 'target_ref']},
|
|
549
|
+
}
|
|
550
|
+
},
|
|
551
|
+
},
|
|
552
|
+
}
|
|
553
|
+
reqValidStixIngestBundle = s_config.getJsValidator(stixIngestBundleSchema)
|
synapse/lib/snap.py
CHANGED
|
@@ -736,6 +736,7 @@ class Snap(s_base.Base):
|
|
|
736
736
|
|
|
737
737
|
dorepr = False
|
|
738
738
|
dopath = False
|
|
739
|
+
dolink = False
|
|
739
740
|
|
|
740
741
|
show_storage = False
|
|
741
742
|
|
|
@@ -754,6 +755,7 @@ class Snap(s_base.Base):
|
|
|
754
755
|
if opts is not None:
|
|
755
756
|
dorepr = opts.get('repr', False)
|
|
756
757
|
dopath = opts.get('path', False)
|
|
758
|
+
dolink = opts.get('links', False)
|
|
757
759
|
show_storage = opts.get('show:storage', False)
|
|
758
760
|
|
|
759
761
|
async for node, path in self.storm(text, opts=opts, user=user):
|
|
@@ -761,6 +763,9 @@ class Snap(s_base.Base):
|
|
|
761
763
|
pode = node.pack(dorepr=dorepr)
|
|
762
764
|
pode[1]['path'] = await path.pack(path=dopath)
|
|
763
765
|
|
|
766
|
+
if dolink:
|
|
767
|
+
pode[1]['links'] = path.links
|
|
768
|
+
|
|
764
769
|
if show_storage:
|
|
765
770
|
pode[1]['storage'] = await node.getStorNodes()
|
|
766
771
|
|
|
@@ -1612,18 +1617,28 @@ class Snap(s_base.Base):
|
|
|
1612
1617
|
last = verb
|
|
1613
1618
|
yield verb
|
|
1614
1619
|
|
|
1615
|
-
async def
|
|
1620
|
+
async def _getLayrNdefProp(self, layr, buid):
|
|
1621
|
+
async for refsbuid, refsabrv in layr.getNdefRefs(buid):
|
|
1622
|
+
yield refsbuid, layr.getAbrvProp(refsabrv)
|
|
1623
|
+
|
|
1624
|
+
async def getNdefRefs(self, buid, props=False):
|
|
1616
1625
|
last = None
|
|
1617
|
-
|
|
1626
|
+
if props:
|
|
1627
|
+
gens = [self._getLayrNdefProp(layr, buid) for layr in self.layers]
|
|
1628
|
+
else:
|
|
1629
|
+
gens = [layr.getNdefRefs(buid) for layr in self.layers]
|
|
1618
1630
|
|
|
1619
|
-
async for refsbuid,
|
|
1631
|
+
async for refsbuid, xtra in s_common.merggenr2(gens):
|
|
1620
1632
|
if refsbuid == last:
|
|
1621
1633
|
continue
|
|
1622
1634
|
|
|
1623
1635
|
await asyncio.sleep(0)
|
|
1624
1636
|
last = refsbuid
|
|
1625
1637
|
|
|
1626
|
-
|
|
1638
|
+
if props:
|
|
1639
|
+
yield refsbuid, xtra[1]
|
|
1640
|
+
else:
|
|
1641
|
+
yield refsbuid
|
|
1627
1642
|
|
|
1628
1643
|
async def hasNodeData(self, buid, name):
|
|
1629
1644
|
'''
|
synapse/lib/storm.py
CHANGED
|
@@ -5377,7 +5377,7 @@ class TeeCmd(Cmd):
|
|
|
5377
5377
|
|
|
5378
5378
|
outq = asyncio.Queue(maxsize=outq_size)
|
|
5379
5379
|
for subr in runts:
|
|
5380
|
-
subg = s_common.agen((node, path.fork(node)))
|
|
5380
|
+
subg = s_common.agen((node, path.fork(node, None)))
|
|
5381
5381
|
self.runt.snap.schedCoro(self.pipeline(subr, outq, genr=subg))
|
|
5382
5382
|
|
|
5383
5383
|
exited = 0
|
|
@@ -5399,7 +5399,7 @@ class TeeCmd(Cmd):
|
|
|
5399
5399
|
else:
|
|
5400
5400
|
|
|
5401
5401
|
for subr in runts:
|
|
5402
|
-
subg = s_common.agen((node, path.fork(node)))
|
|
5402
|
+
subg = s_common.agen((node, path.fork(node, None)))
|
|
5403
5403
|
async for subitem in subr.execute(genr=subg):
|
|
5404
5404
|
yield subitem
|
|
5405
5405
|
|
|
@@ -5553,6 +5553,7 @@ class ScrapeCmd(Cmd):
|
|
|
5553
5553
|
if not todo:
|
|
5554
5554
|
todo = list(node.props.values())
|
|
5555
5555
|
|
|
5556
|
+
link = {'type': 'scrape'}
|
|
5556
5557
|
for text in todo:
|
|
5557
5558
|
|
|
5558
5559
|
text = str(text)
|
|
@@ -5562,7 +5563,7 @@ class ScrapeCmd(Cmd):
|
|
|
5562
5563
|
continue
|
|
5563
5564
|
|
|
5564
5565
|
nnode = await node.snap.addNode(form, valu)
|
|
5565
|
-
npath = path.fork(nnode)
|
|
5566
|
+
npath = path.fork(nnode, link)
|
|
5566
5567
|
|
|
5567
5568
|
if refs:
|
|
5568
5569
|
if node.form.isrunt:
|
|
@@ -5666,8 +5667,9 @@ class LiftByVerb(Cmd):
|
|
|
5666
5667
|
|
|
5667
5668
|
yield _node, _path
|
|
5668
5669
|
|
|
5670
|
+
link = {'type': 'runtime'}
|
|
5669
5671
|
async for node in self.iterEdgeNodes(verb, idenset, n2):
|
|
5670
|
-
yield node, _path.fork(node)
|
|
5672
|
+
yield node, _path.fork(node, link)
|
|
5671
5673
|
|
|
5672
5674
|
class EdgesDelCmd(Cmd):
|
|
5673
5675
|
'''
|
synapse/lib/stormlib/stix.py
CHANGED
|
@@ -11,6 +11,7 @@ import synapse.common as s_common
|
|
|
11
11
|
import synapse.lib.coro as s_coro
|
|
12
12
|
import synapse.lib.node as s_node
|
|
13
13
|
import synapse.lib.msgpack as s_msgpack
|
|
14
|
+
import synapse.lib.schemas as s_schemas
|
|
14
15
|
import synapse.lib.stormctrl as s_stormctrl
|
|
15
16
|
import synapse.lib.stormtypes as s_stormtypes
|
|
16
17
|
|
|
@@ -909,6 +910,9 @@ class LibStixImport(s_stormtypes.Lib):
|
|
|
909
910
|
|
|
910
911
|
self.runt.layerConfirm(('node', 'edge', 'add', 'refs'))
|
|
911
912
|
|
|
913
|
+
config = s_schemas.reqValidStixIngestConfig(config)
|
|
914
|
+
bundle = s_schemas.reqValidStixIngestBundle(bundle)
|
|
915
|
+
|
|
912
916
|
try:
|
|
913
917
|
nodesbyid = await self._ingestObjects(bundle, config, rellook)
|
|
914
918
|
except Exception as e:
|
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,
|
|
226
|
+
version = (2, 180, 0)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = 'aecbb8c0839f3ad763076dd7acae968fae6ba8b7'
|
synapse/models/auth.py
CHANGED
|
@@ -45,6 +45,8 @@ class AuthModule(s_module.CoreModule):
|
|
|
45
45
|
('web:acct', ('inet:web:acct', {}), {
|
|
46
46
|
'doc': 'The web account that the credentials allow access to.',
|
|
47
47
|
}),
|
|
48
|
+
('service:account', ('inet:service:account', {}), {
|
|
49
|
+
'doc': 'The service account that the credentials allow access to.'}),
|
|
48
50
|
# TODO x509, rfid, mat:item locks/keys
|
|
49
51
|
)),
|
|
50
52
|
|
synapse/models/geopol.py
CHANGED
|
@@ -139,6 +139,7 @@ class PolModule(s_module.CoreModule):
|
|
|
139
139
|
'doc': 'The date of the election.'}),
|
|
140
140
|
)),
|
|
141
141
|
# TODO jurisdiction / districts
|
|
142
|
+
# TODO oversight authority
|
|
142
143
|
('pol:race', {}, (
|
|
143
144
|
('election', ('pol:election', {}), {
|
|
144
145
|
'doc': 'The election that includes the race.'}),
|
|
@@ -175,6 +176,8 @@ class PolModule(s_module.CoreModule):
|
|
|
175
176
|
'doc': 'The political party of the person who held office during the term.'}),
|
|
176
177
|
)),
|
|
177
178
|
('pol:candidate', {}, (
|
|
179
|
+
('id', ('str', {'strip': True}), {
|
|
180
|
+
'doc': 'A unique ID for the candidate issued by an election authority.'}),
|
|
178
181
|
('contact', ('ps:contact', {}), {
|
|
179
182
|
'doc': 'The contact information of the candidate.'}),
|
|
180
183
|
('race', ('pol:race', {}), {
|
synapse/models/inet.py
CHANGED
synapse/models/infotech.py
CHANGED
|
@@ -757,30 +757,37 @@ class ItModule(s_module.CoreModule):
|
|
|
757
757
|
'doc': 'A developer selected label.',
|
|
758
758
|
}),
|
|
759
759
|
('it:dev:repo', ('guid', {}), {
|
|
760
|
+
'interfaces': ('inet:service:object',),
|
|
760
761
|
'doc': 'A version control system instance.',
|
|
761
762
|
}),
|
|
762
763
|
('it:dev:repo:remote', ('guid', {}), {
|
|
763
764
|
'doc': 'A remote repo that is tracked for changes/branches/etc.',
|
|
764
765
|
}),
|
|
765
766
|
('it:dev:repo:branch', ('guid', {}), {
|
|
767
|
+
'interfaces': ('inet:service:object',),
|
|
766
768
|
'doc': 'A branch in a version control system instance.',
|
|
767
769
|
}),
|
|
768
770
|
('it:dev:repo:commit', ('guid', {}), {
|
|
771
|
+
'interfaces': ('inet:service:object',),
|
|
769
772
|
'doc': 'A commit to a repository.',
|
|
770
773
|
}),
|
|
771
774
|
('it:dev:repo:diff', ('guid', {}), {
|
|
772
775
|
'doc': 'A diff of a file being applied in a single commit.',
|
|
773
776
|
}),
|
|
774
777
|
('it:dev:repo:issue:label', ('guid', {}), {
|
|
778
|
+
'interfaces': ('inet:service:object',),
|
|
775
779
|
'doc': 'A label applied to a repository issue.',
|
|
776
780
|
}),
|
|
777
781
|
('it:dev:repo:issue', ('guid', {}), {
|
|
782
|
+
'interfaces': ('inet:service:object',),
|
|
778
783
|
'doc': 'An issue raised in a repository.',
|
|
779
784
|
}),
|
|
780
785
|
('it:dev:repo:issue:comment', ('guid', {}), {
|
|
786
|
+
'interfaces': ('inet:service:object',),
|
|
781
787
|
'doc': 'A comment on an issue in a repository.',
|
|
782
788
|
}),
|
|
783
789
|
('it:dev:repo:diff:comment', ('guid', {}), {
|
|
790
|
+
'interfaces': ('inet:service:object',),
|
|
784
791
|
'doc': 'A comment on a diff in a repository.',
|
|
785
792
|
}),
|
|
786
793
|
('it:prod:soft', ('guid', {}), {
|
|
@@ -1800,21 +1807,22 @@ class ItModule(s_module.CoreModule):
|
|
|
1800
1807
|
}),
|
|
1801
1808
|
('desc', ('str', {}), {
|
|
1802
1809
|
'disp': {'hint': 'text'},
|
|
1803
|
-
'doc': 'A free-form description of the repository.',
|
|
1804
|
-
|
|
1810
|
+
'doc': 'A free-form description of the repository.'}),
|
|
1811
|
+
|
|
1805
1812
|
('created', ('time', {}), {
|
|
1806
|
-
'
|
|
1807
|
-
|
|
1813
|
+
'deprecated': True,
|
|
1814
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
1815
|
+
|
|
1808
1816
|
('url', ('inet:url', {}), {
|
|
1809
|
-
'doc': '
|
|
1810
|
-
|
|
1817
|
+
'doc': 'The URL where the repository is hosted.'}),
|
|
1818
|
+
|
|
1811
1819
|
('type', ('it:dev:repo:type:taxonomy', {}), {
|
|
1812
1820
|
'doc': 'The type of the version control system used.',
|
|
1813
|
-
'ex': 'svn'
|
|
1814
|
-
|
|
1821
|
+
'ex': 'svn'}),
|
|
1822
|
+
|
|
1815
1823
|
('submodules', ('array', {'type': 'it:dev:repo:commit'}), {
|
|
1816
|
-
'doc': "An array of other repos that this repo has as submodules, pinned at specific commits.",
|
|
1817
|
-
|
|
1824
|
+
'doc': "An array of other repos that this repo has as submodules, pinned at specific commits."}),
|
|
1825
|
+
|
|
1818
1826
|
)),
|
|
1819
1827
|
|
|
1820
1828
|
('it:dev:repo:remote', {}, (
|
|
@@ -1834,120 +1842,127 @@ class ItModule(s_module.CoreModule):
|
|
|
1834
1842
|
)),
|
|
1835
1843
|
|
|
1836
1844
|
('it:dev:repo:branch', {}, (
|
|
1845
|
+
|
|
1837
1846
|
('parent', ('it:dev:repo:branch', {}), {
|
|
1838
|
-
'doc': 'The branch this branch was branched from.',
|
|
1839
|
-
|
|
1847
|
+
'doc': 'The branch this branch was branched from.'}),
|
|
1848
|
+
|
|
1840
1849
|
('start', ('it:dev:repo:commit', {}), {
|
|
1841
|
-
'doc': 'The commit in the parent branch this branch was created at.'
|
|
1842
|
-
|
|
1850
|
+
'doc': 'The commit in the parent branch this branch was created at.'}),
|
|
1851
|
+
|
|
1843
1852
|
('name', ('str', {'strip': True}), {
|
|
1844
|
-
'doc': 'The name of the branch.',
|
|
1845
|
-
|
|
1853
|
+
'doc': 'The name of the branch.'}),
|
|
1854
|
+
|
|
1846
1855
|
('url', ('inet:url', {}), {
|
|
1847
|
-
'doc': 'The URL where the branch is hosted.',
|
|
1848
|
-
|
|
1856
|
+
'doc': 'The URL where the branch is hosted.'}),
|
|
1857
|
+
|
|
1849
1858
|
('created', ('time', {}), {
|
|
1850
|
-
'
|
|
1851
|
-
|
|
1859
|
+
'deprecated': True,
|
|
1860
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
1861
|
+
|
|
1852
1862
|
('merged', ('time', {}), {
|
|
1853
|
-
'doc': 'The time this branch was merged back into its parent.',
|
|
1854
|
-
|
|
1863
|
+
'doc': 'The time this branch was merged back into its parent.'}),
|
|
1864
|
+
|
|
1855
1865
|
('deleted', ('time', {}), {
|
|
1856
|
-
'
|
|
1857
|
-
|
|
1866
|
+
'deprecated': True,
|
|
1867
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
1858
1868
|
)),
|
|
1859
1869
|
|
|
1860
1870
|
('it:dev:repo:commit', {}, (
|
|
1861
1871
|
('repo', ('it:dev:repo', {}), {
|
|
1862
|
-
'doc': 'The repository the commit lives in.',
|
|
1863
|
-
|
|
1872
|
+
'doc': 'The repository the commit lives in.'}),
|
|
1873
|
+
|
|
1864
1874
|
('parents', ('array', {'type': 'it:dev:repo:commit'}), {
|
|
1865
|
-
'doc': 'The commit or commits this commit is immediately based on.',
|
|
1866
|
-
|
|
1875
|
+
'doc': 'The commit or commits this commit is immediately based on.'}),
|
|
1876
|
+
|
|
1867
1877
|
('branch', ('it:dev:repo:branch', {}), {
|
|
1868
|
-
'doc': 'The name of the branch the commit was made to.',
|
|
1869
|
-
|
|
1878
|
+
'doc': 'The name of the branch the commit was made to.'}),
|
|
1879
|
+
|
|
1870
1880
|
('mesg', ('str', {}), {
|
|
1871
1881
|
'disp': {'hint': 'text'},
|
|
1872
|
-
'doc': 'The commit message describing the changes in the commit.',
|
|
1873
|
-
|
|
1882
|
+
'doc': 'The commit message describing the changes in the commit.'}),
|
|
1883
|
+
|
|
1874
1884
|
('id', ('str', {}), {
|
|
1875
|
-
'doc': 'The version control system specific commit identifier.',
|
|
1876
|
-
|
|
1885
|
+
'doc': 'The version control system specific commit identifier.'}),
|
|
1886
|
+
|
|
1877
1887
|
('created', ('time', {}), {
|
|
1878
|
-
'
|
|
1879
|
-
|
|
1888
|
+
'deprecated': True,
|
|
1889
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
1890
|
+
|
|
1880
1891
|
('url', ('inet:url', {}), {
|
|
1881
|
-
'doc': 'The URL where the commit is hosted.',
|
|
1882
|
-
}),
|
|
1892
|
+
'doc': 'The URL where the commit is hosted.'}),
|
|
1883
1893
|
)),
|
|
1884
1894
|
|
|
1885
1895
|
('it:dev:repo:diff', {}, (
|
|
1896
|
+
|
|
1886
1897
|
('commit', ('it:dev:repo:commit', {}), {
|
|
1887
|
-
'doc': 'The commit that produced this diff.',
|
|
1888
|
-
|
|
1898
|
+
'doc': 'The commit that produced this diff.'}),
|
|
1899
|
+
|
|
1889
1900
|
('file', ('file:bytes', {}), {
|
|
1890
|
-
'doc': 'The file after the commit has been applied',
|
|
1891
|
-
|
|
1901
|
+
'doc': 'The file after the commit has been applied'}),
|
|
1902
|
+
|
|
1892
1903
|
('path', ('file:path', {}), {
|
|
1893
|
-
'doc': 'The path to the file in the repo that the diff is being applied to.',
|
|
1894
|
-
|
|
1904
|
+
'doc': 'The path to the file in the repo that the diff is being applied to.'}),
|
|
1905
|
+
|
|
1895
1906
|
('url', ('inet:url', {}), {
|
|
1896
|
-
'doc': 'The URL where the diff is hosted.',
|
|
1897
|
-
}),
|
|
1907
|
+
'doc': 'The URL where the diff is hosted.'}),
|
|
1898
1908
|
)),
|
|
1899
1909
|
|
|
1900
1910
|
('it:dev:repo:issue', {}, (
|
|
1911
|
+
|
|
1901
1912
|
('repo', ('it:dev:repo', {}), {
|
|
1902
|
-
'doc': 'The repo where the issue was logged.',
|
|
1903
|
-
|
|
1913
|
+
'doc': 'The repo where the issue was logged.'}),
|
|
1914
|
+
|
|
1904
1915
|
('title', ('str', {'lower': True, 'strip': True}), {
|
|
1905
|
-
'doc': 'The title of the issue.'
|
|
1906
|
-
|
|
1916
|
+
'doc': 'The title of the issue.'}),
|
|
1917
|
+
|
|
1907
1918
|
('desc', ('str', {}), {
|
|
1908
1919
|
'disp': {'hint': 'text'},
|
|
1909
|
-
'doc': 'The text describing the issue.'
|
|
1910
|
-
|
|
1920
|
+
'doc': 'The text describing the issue.'}),
|
|
1921
|
+
|
|
1911
1922
|
('created', ('time', {}), {
|
|
1912
|
-
'
|
|
1913
|
-
|
|
1923
|
+
'deprecated': True,
|
|
1924
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
1925
|
+
|
|
1914
1926
|
('updated', ('time', {}), {
|
|
1915
|
-
'doc': 'The time the issue was updated.',
|
|
1916
|
-
|
|
1927
|
+
'doc': 'The time the issue was updated.'}),
|
|
1928
|
+
|
|
1917
1929
|
('url', ('inet:url', {}), {
|
|
1918
|
-
'doc': 'The URL where the issue is hosted.',
|
|
1919
|
-
|
|
1930
|
+
'doc': 'The URL where the issue is hosted.'}),
|
|
1931
|
+
|
|
1920
1932
|
('id', ('str', {'strip': True}), {
|
|
1921
|
-
'doc': 'The ID of the issue in the repository system.',
|
|
1922
|
-
}),
|
|
1933
|
+
'doc': 'The ID of the issue in the repository system.'}),
|
|
1923
1934
|
)),
|
|
1924
1935
|
|
|
1925
1936
|
('it:dev:repo:label', {}, (
|
|
1937
|
+
|
|
1926
1938
|
('id', ('str', {'strip': True}), {
|
|
1927
|
-
'doc': 'The ID of the label.',
|
|
1928
|
-
|
|
1939
|
+
'doc': 'The ID of the label.'}),
|
|
1940
|
+
|
|
1929
1941
|
('title', ('str', {'lower': True, 'strip': True}), {
|
|
1930
|
-
'doc': 'The human friendly name of the label.',
|
|
1931
|
-
|
|
1942
|
+
'doc': 'The human friendly name of the label.'}),
|
|
1943
|
+
|
|
1932
1944
|
('desc', ('str', {}), {
|
|
1933
1945
|
'disp': {'hint': 'text'},
|
|
1934
|
-
'doc': 'The description of the label.',
|
|
1935
|
-
|
|
1946
|
+
'doc': 'The description of the label.'}),
|
|
1947
|
+
|
|
1936
1948
|
)),
|
|
1937
1949
|
|
|
1938
1950
|
('it:dev:repo:issue:label', {}, (
|
|
1951
|
+
|
|
1939
1952
|
('issue', ('it:dev:repo:issue', {}), {
|
|
1940
|
-
'doc': 'The issue the label was applied to.',
|
|
1941
|
-
|
|
1953
|
+
'doc': 'The issue the label was applied to.'}),
|
|
1954
|
+
|
|
1942
1955
|
('label', ('it:dev:repo:label', {}), {
|
|
1943
|
-
'doc': 'The label that was applied to the issue.',
|
|
1944
|
-
|
|
1956
|
+
'doc': 'The label that was applied to the issue.'}),
|
|
1957
|
+
|
|
1945
1958
|
('applied', ('time', {}), {
|
|
1946
|
-
'
|
|
1947
|
-
|
|
1959
|
+
'deprecated': True,
|
|
1960
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
1961
|
+
|
|
1948
1962
|
('removed', ('time', {}), {
|
|
1949
|
-
'
|
|
1950
|
-
|
|
1963
|
+
'deprecated': True,
|
|
1964
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
1965
|
+
|
|
1951
1966
|
)),
|
|
1952
1967
|
|
|
1953
1968
|
('it:dev:repo:issue:comment', {}, (
|
|
@@ -1965,7 +1980,8 @@ class ItModule(s_module.CoreModule):
|
|
|
1965
1980
|
'doc': 'The URL where the comment is hosted.',
|
|
1966
1981
|
}),
|
|
1967
1982
|
('created', ('time', {}), {
|
|
1968
|
-
'
|
|
1983
|
+
'deprecated': True,
|
|
1984
|
+
'doc': 'Deprecated. Please use :period.',
|
|
1969
1985
|
}),
|
|
1970
1986
|
('updated', ('time', {}), {
|
|
1971
1987
|
'doc': 'The time the comment was updated.',
|
|
@@ -1973,31 +1989,33 @@ class ItModule(s_module.CoreModule):
|
|
|
1973
1989
|
)),
|
|
1974
1990
|
|
|
1975
1991
|
('it:dev:repo:diff:comment', {}, (
|
|
1992
|
+
|
|
1976
1993
|
('diff', ('it:dev:repo:diff', {}), {
|
|
1977
|
-
'doc': 'The diff the comment is being added to.',
|
|
1978
|
-
|
|
1994
|
+
'doc': 'The diff the comment is being added to.'}),
|
|
1995
|
+
|
|
1979
1996
|
('text', ('str', {}), {
|
|
1980
1997
|
'disp': {'hint': 'text'},
|
|
1981
|
-
'doc': 'The body of the comment.',
|
|
1982
|
-
|
|
1998
|
+
'doc': 'The body of the comment.'}),
|
|
1999
|
+
|
|
1983
2000
|
('replyto', ('it:dev:repo:diff:comment', {}), {
|
|
1984
|
-
'doc': 'The comment that this comment is replying to.',
|
|
1985
|
-
|
|
2001
|
+
'doc': 'The comment that this comment is replying to.'}),
|
|
2002
|
+
|
|
1986
2003
|
('line', ('int', {}), {
|
|
1987
|
-
'doc': 'The line in the file that is being commented on.',
|
|
1988
|
-
|
|
2004
|
+
'doc': 'The line in the file that is being commented on.'}),
|
|
2005
|
+
|
|
1989
2006
|
('offset', ('int', {}), {
|
|
1990
|
-
'doc': 'The offset in the line in the file that is being commented on.',
|
|
1991
|
-
|
|
2007
|
+
'doc': 'The offset in the line in the file that is being commented on.'}),
|
|
2008
|
+
|
|
1992
2009
|
('url', ('inet:url', {}), {
|
|
1993
|
-
'doc': 'The URL where the comment is hosted.',
|
|
1994
|
-
|
|
2010
|
+
'doc': 'The URL where the comment is hosted.'}),
|
|
2011
|
+
|
|
1995
2012
|
('created', ('time', {}), {
|
|
1996
|
-
'
|
|
1997
|
-
|
|
2013
|
+
'deprecated': True,
|
|
2014
|
+
'doc': 'Deprecated. Please use :period.'}),
|
|
2015
|
+
|
|
1998
2016
|
('updated', ('time', {}), {
|
|
1999
|
-
'doc': 'The time the comment was updated.',
|
|
2000
|
-
|
|
2017
|
+
'doc': 'The time the comment was updated.'}),
|
|
2018
|
+
|
|
2001
2019
|
)),
|
|
2002
2020
|
|
|
2003
2021
|
('it:prod:hardwaretype', {}, ()),
|
synapse/models/person.py
CHANGED
|
@@ -371,8 +371,11 @@ class PsModule(s_module.CoreModule):
|
|
|
371
371
|
'doc': 'The listed org/company FQDN for this contact.',
|
|
372
372
|
}),
|
|
373
373
|
('user', ('inet:user', {}), {
|
|
374
|
-
'doc': 'The username or handle for this contact.',
|
|
375
|
-
|
|
374
|
+
'doc': 'The username or handle for this contact.'}),
|
|
375
|
+
|
|
376
|
+
('service:accounts', ('array', {'type': 'inet:service:account', 'sorted': True, 'uniq': True}), {
|
|
377
|
+
'doc': 'The service accounts associated with this contact.'}),
|
|
378
|
+
|
|
376
379
|
('web:acct', ('inet:web:acct', {}), {
|
|
377
380
|
'doc': 'The social media account for this contact.',
|
|
378
381
|
}),
|
synapse/models/telco.py
CHANGED
|
@@ -378,6 +378,9 @@ class TelcoModule(s_module.CoreModule):
|
|
|
378
378
|
('email', ('inet:email', {}), {}),
|
|
379
379
|
('acct', ('inet:web:acct', {}), {}),
|
|
380
380
|
|
|
381
|
+
('account', ('inet:service:account', {}), {
|
|
382
|
+
'doc': 'The service account which is associated with the tracked device.'}),
|
|
383
|
+
|
|
381
384
|
# reporting related data
|
|
382
385
|
('app', ('it:prod:softver', {}), {}),
|
|
383
386
|
|