1+ <form >
2+ <label >Secret Scanning Alerts</label >
3+ <search id =" baseSearch" >
4+ <query >
5+ `github_webhooks` eventtype="GitHub::SecretScanning" | eval action='action', enterprise=if(isnotnull('enterprise.name'),'enterprise.name','unknown'), organization=if(isnotnull('organization.login'),'organization.login','unknown'), repository=if(isnotnull('repository.name'),'repository.name','unknown'), secret_type=if(isnotnull('alert.secret_type'),'alert.secret_type','unknown'), resolution=if(isnotnull('alert.resolution'),'alert.resolution','unknown'), resolved_at=if(isnotnull('alert.resolved_at'),'alert.resolved_at','unknown'), resolved_by=if(isnotnull('alert.resolved_by.login'),'alert.resolved_by.login','unknown')
6+ </query >
7+ <earliest >$timeTkn.earliest$</earliest >
8+ <latest >$timeTkn.latest$</latest >
9+ <sampleRatio >1</sampleRatio >
10+ </search >
11+ <fieldset submitButton =" false" autoRun =" true" >
12+ <input type =" time" token =" timeTkn" searchWhenChanged =" true" >
13+ <label >Time Range</label >
14+ <default >
15+ <earliest >-24h@h</earliest >
16+ <latest >now</latest >
17+ </default >
18+ </input >
19+ <input type =" multiselect" token =" secret_type" searchWhenChanged =" true" >
20+ <label >Secret Type</label >
21+ <fieldForLabel >secret_type</fieldForLabel >
22+ <fieldForValue >secret_type</fieldForValue >
23+ <valuePrefix >"</valuePrefix >
24+ <valueSuffix >"</valueSuffix >
25+ <search base =" baseSearch" >
26+ <query >| table secret_type | dedup secret_type</query >
27+ </search >
28+ <choice value =" *" >All</choice >
29+ <default >*</default >
30+ <initialValue >*</initialValue >
31+ </input >
32+ <input type =" multiselect" token =" orgTkn" searchWhenChanged =" true" >
33+ <label >Organization</label >
34+ <choice value =" *" >All</choice >
35+ <default >*</default >
36+ <initialValue >*</initialValue >
37+ <valuePrefix >"</valuePrefix >
38+ <valueSuffix >"</valueSuffix >
39+ <delimiter >,</delimiter >
40+ <fieldForLabel >organization</fieldForLabel >
41+ <fieldForValue >organization</fieldForValue >
42+ <search base =" baseSearch" >
43+ <query >| dedup organization | table organization</query >
44+ </search >
45+ </input >
46+ <input type =" multiselect" token =" repoTkn" searchWhenChanged =" true" >
47+ <label >Repositories</label >
48+ <choice value =" *" >All</choice >
49+ <default >*</default >
50+ <initialValue >*</initialValue >
51+ <valuePrefix >"</valuePrefix >
52+ <valueSuffix >"</valueSuffix >
53+ <delimiter >,</delimiter >
54+ <fieldForLabel >repository</fieldForLabel >
55+ <fieldForValue >repository</fieldForValue >
56+ <search base =" baseSearch" >
57+ <query >| dedup repository | table repository</query >
58+ </search >
59+ </input >
60+ </fieldset >
61+ <row >
62+ <panel >
63+ <single >
64+ <title >Found Secrets</title >
65+ <search base =" baseSearch" >
66+ <query >| search repository=$repoTkn$ organization=$orgTkn$ secret_type=$secret_type$ action="created" | stats count</query >
67+ </search >
68+ <option name =" drilldown" >none</option >
69+ <option name =" height" >150</option >
70+ <option name =" rangeColors" >["0x53a051","0x0877a6","0xf8be34","0xf1813f","0xdc4e41"]</option >
71+ <option name =" refresh.display" >progressbar</option >
72+ </single >
73+ </panel >
74+ <panel >
75+ <single >
76+ <title >Fixed Secrets</title >
77+ <search base =" baseSearch" >
78+ <query >| search repository=$repoTkn$ organization=$orgTkn$ secret_type=$secret_type$ action="resolved" | stats count</query >
79+ </search >
80+ <option name =" drilldown" >none</option >
81+ <option name =" height" >150</option >
82+ <option name =" refresh.display" >progressbar</option >
83+ </single >
84+ </panel >
85+ <panel >
86+ <chart >
87+ <title >Secret Types</title >
88+ <search base =" baseSearch" >
89+ <query >| search repository=$repoTkn$ organization=$orgTkn$ secret_type=$secret_type$ | chart count by secret_type</query >
90+ </search >
91+ <option name =" charting.chart" >pie</option >
92+ <option name =" charting.drilldown" >none</option >
93+ <option name =" height" >175</option >
94+ </chart >
95+ </panel >
96+ <panel >
97+ <chart >
98+ <title >Secrets Found/Fixed Ratio</title >
99+ <search base =" baseSearch" >
100+ <query >| search repository=$repoTkn$ organization=$orgTkn$ secret_type=$secret_type$ (action=created OR action=resolved)
101+ | timechart count(_raw) by action
102+ | accum created
103+ | accum resolved
104+ | rename created as "Found"
105+ | rename resolved as "Fixed"</query >
106+ </search >
107+ <option name =" charting.axisTitleX.visibility" >collapsed</option >
108+ <option name =" charting.chart" >line</option >
109+ <option name =" charting.drilldown" >none</option >
110+ <option name =" refresh.display" >progressbar</option >
111+ <option name =" height" >175</option >
112+ </chart >
113+ </panel >
114+ </row >
115+ <row >
116+ <panel >
117+ <table >
118+ <title >Fixed Secrets</title >
119+ <search base =" baseSearch" >
120+ <query > | search action=resolved repository=$repoTkn$ organization=$orgTkn$ secret_type=$secret_type$ | table secret_type, organization, repository, resolution, resolved_by, _time
121+ | rename secret_type as "Secret Type"
122+ | rename organization as "Organization"
123+ | rename repository as "Repository"
124+ | rename resolution as "Resolution"
125+ | rename resolved_by as "Resolved By"
126+ </query >
127+ </search >
128+ <option name =" drilldown" >none</option >
129+ </table >
130+ </panel >
131+ </row >
132+ <row >
133+ <panel >
134+ <table >
135+ <title >Found Secrets</title >
136+ <search base =" baseSearch" >
137+ <query > | search action=created repository=$repoTkn$ organization=$orgTkn$ secret_type=$secret_type$ | table secret_type, organization, repository, action, _time
138+ | rename secret_type as "Secret Type"
139+ | rename organization as "Organization"
140+ | rename repository as "Repository"
141+ | rename action as "Action"
142+ </query >
143+ </search >
144+ <option name =" drilldown" >none</option >
145+ </table >
146+ </panel >
147+ </row >
148+ </form >
0 commit comments