mihari 6.0.0 → 6.2.0

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/lib/mihari/actor.rb +4 -6
  4. data/lib/mihari/analyzers/base.rb +10 -3
  5. data/lib/mihari/analyzers/circl.rb +1 -1
  6. data/lib/mihari/analyzers/dnstwister.rb +1 -1
  7. data/lib/mihari/analyzers/hunterhow.rb +1 -1
  8. data/lib/mihari/analyzers/otx.rb +1 -1
  9. data/lib/mihari/analyzers/passivetotal.rb +1 -1
  10. data/lib/mihari/analyzers/pulsedive.rb +1 -1
  11. data/lib/mihari/analyzers/securitytrails.rb +1 -1
  12. data/lib/mihari/analyzers/virustotal.rb +1 -1
  13. data/lib/mihari/clients/google_public_dns.rb +31 -0
  14. data/lib/mihari/config.rb +10 -2
  15. data/lib/mihari/{type_checker.rb → data_type.rb} +32 -37
  16. data/lib/mihari/database.rb +8 -4
  17. data/lib/mihari/emitters/misp.rb +2 -2
  18. data/lib/mihari/emitters/slack.rb +5 -5
  19. data/lib/mihari/emitters/the_hive.rb +2 -2
  20. data/lib/mihari/enrichers/base.rb +2 -0
  21. data/lib/mihari/enrichers/google_public_dns.rb +4 -21
  22. data/lib/mihari/enrichers/ipinfo.rb +1 -0
  23. data/lib/mihari/enrichers/shodan.rb +1 -0
  24. data/lib/mihari/enrichers/whois.rb +11 -16
  25. data/lib/mihari/entities/artifact.rb +1 -0
  26. data/lib/mihari/mixins/falsepositive.rb +2 -2
  27. data/lib/mihari/models/artifact.rb +14 -6
  28. data/lib/mihari/models/dns.rb +3 -8
  29. data/lib/mihari/rule.rb +20 -7
  30. data/lib/mihari/schemas/options.rb +5 -1
  31. data/lib/mihari/structs/google_public_dns.rb +4 -8
  32. data/lib/mihari/version.rb +1 -1
  33. data/lib/mihari/web/app.rb +2 -2
  34. data/lib/mihari/web/public/assets/index-1d77cd61.js +1756 -0
  35. data/lib/mihari/web/public/assets/{index-56fc2187.css → index-4c8509ee.css} +1 -1
  36. data/lib/mihari/web/public/index.html +2 -2
  37. data/lib/mihari/web/public/redoc-static.html +5 -5
  38. data/lib/mihari.rb +10 -10
  39. data/mihari.gemspec +5 -4
  40. data/mkdocs.yml +1 -0
  41. data/requirements.txt +1 -1
  42. metadata +23 -50
  43. data/lib/mihari/web/public/assets/index-07cddfcd.js +0 -1750
@@ -6,8 +6,8 @@
6
6
  <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
7
  <link rel="icon" href="/favicon.ico" />
8
8
  <title>Mihari</title>
9
- <script type="module" crossorigin src="/assets/index-07cddfcd.js"></script>
10
- <link rel="stylesheet" href="/assets/index-56fc2187.css">
9
+ <script type="module" crossorigin src="/assets/index-1d77cd61.js"></script>
10
+ <link rel="stylesheet" href="/assets/index-4c8509ee.css">
11
11
  </head>
12
12
  <body>
13
13
  <noscript>
@@ -12,7 +12,7 @@
12
12
  margin: 0;
13
13
  }
14
14
  </style>
15
- <script src="https://cdn.redoc.ly/redoc/v2.1.2/bundles/redoc.standalone.js"></script><style data-styled="true" data-styled-version="6.1.1">.gvoNGN{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
15
+ <script src="https://cdn.redoc.ly/redoc/v2.1.3/bundles/redoc.standalone.js"></script><style data-styled="true" data-styled-version="6.1.1">.gvoNGN{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
16
16
  @media print,screen and (max-width: 75rem){.gvoNGN{width:100%;padding:40px 40px;}}/*!sc*/
17
17
  .jIkZBx{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
18
18
  @media print,screen and (max-width: 75rem){.jIkZBx{width:100%;padding:0px 40px;}}/*!sc*/
@@ -359,11 +359,11 @@ data-styled.g137[id="sc-cKZHtR"]{content:"lcoFQc,"}/*!sc*/
359
359
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG"><p>Create an alert</p>
360
360
  </div></div><h5 class="sc-iqHXzD bRzaSI">Request Body schema: <span class="sc-gWHiUp duVBEA">application/json</span><div class="sc-gTgyBf sc-eJMOVy sc-jmhEHb ihUpGF giWqTo gpLUhw">required</div></h5><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG"></div><table class="sc-hHftZz buUaAP"><tbody><tr class=""><td kind="field" title="ruleId" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">ruleId</span><div class="sc-gTgyBf sc-eJMOVy ihUpGF giWqTo">required</div></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">string</span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr><tr class="last "><td kind="field" title="artifacts" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">artifacts</span><div class="sc-gTgyBf sc-eJMOVy ihUpGF giWqTo">required</div></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc">Array of </span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">strings</span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr></tbody></table><div><h3 class="sc-fWPdKs fCsSHf">Responses</h3><div><button class="sc-httZfN iePdRD"><svg class="sc-dQpIV iHKCKT" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">201<!-- --> </strong><div html="&lt;p&gt;Create an alert&lt;/p&gt;
361
361
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"><p>Create an alert</p>
362
- </div></button></div><div><button class="sc-httZfN jEuzUJ"><svg class="sc-dQpIV bbipPn" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">404<!-- --> </strong><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"></div></button></div></div></div><div class="sc-jSguLX sc-gKsecS QymcT bZqtR"><div class="sc-bQdSiB bhuodb"><button class="sc-FyfbU jlriCd"><span type="post" class="sc-jXkspL coiChI http-verb post">post</span><span class="sc-fXoxOd jzevEV">/api/alerts</span><svg class="sc-dQpIV hHbBnT" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eFtZDC ciRGmD"><div class="sc-fmlKft buTZbL"><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div><div tabindex="0" role="button"><div class="sc-ljRaSg uePtT"><span></span>/api/alerts</div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="react-tabs-0" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-1" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-1" aria-labelledby="react-tabs-0"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"ruleId"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"artifacts"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-2" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-3" tabindex="0" data-rttab="true">201</li><li class="tab-error" role="tab" id="react-tabs-4" aria-selected="false" aria-disabled="false" aria-controls="react-tabs-5" data-rttab="true">404</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-3" aria-labelledby="react-tabs-2"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"ruleId"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"createdAt"</span>: <span class="token string">&quot;2019-08-24T14:15:22Z&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"artifacts"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"data"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"dataType"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"tags"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="react-tabs-5" aria-labelledby="react-tabs-4"></div></div></div></div></div></div><div id="tag/alerts/paths/~1api~1alerts/get" data-section-id="tag/alerts/paths/~1api~1alerts/get" class="sc-eCstZk bCpIRB"><div class="sc-iBPTVF keMybc"><div class="sc-hKgKIp gvoNGN"><h2 class="sc-pGaPU biKwui"><a class="sc-crrtmM jGBpue" href="#tag/alerts/paths/~1api~1alerts/get" aria-label="tag/alerts/paths/~1api~1alerts/get"></a>Search alerts<!-- --> </h2><div class="sc-eWVLZl fgfjUV"><div html="&lt;p&gt;Search alerts&lt;/p&gt;
362
+ </div></button></div><div><button class="sc-httZfN jEuzUJ"><svg class="sc-dQpIV bbipPn" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">404<!-- --> </strong><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"></div></button></div></div></div><div class="sc-jSguLX sc-gKsecS QymcT bZqtR"><div class="sc-bQdSiB bhuodb"><button class="sc-FyfbU jlriCd"><span type="post" class="sc-jXkspL coiChI http-verb post">post</span><span class="sc-fXoxOd jzevEV">/api/alerts</span><svg class="sc-dQpIV hHbBnT" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eFtZDC ciRGmD"><div class="sc-fmlKft buTZbL"><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div><div tabindex="0" role="button"><div class="sc-ljRaSg uePtT"><span></span>/api/alerts</div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="react-tabs-0" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-1" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-1" aria-labelledby="react-tabs-0"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"ruleId"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"artifacts"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-2" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-3" tabindex="0" data-rttab="true">201</li><li class="tab-error" role="tab" id="react-tabs-4" aria-selected="false" aria-disabled="false" aria-controls="react-tabs-5" data-rttab="true">404</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-3" aria-labelledby="react-tabs-2"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"ruleId"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"createdAt"</span>: <span class="token string">&quot;2019-08-24T14:15:22Z&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"artifacts"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"data"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"dataType"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"query"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"tags"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="react-tabs-5" aria-labelledby="react-tabs-4"></div></div></div></div></div></div><div id="tag/alerts/paths/~1api~1alerts/get" data-section-id="tag/alerts/paths/~1api~1alerts/get" class="sc-eCstZk bCpIRB"><div class="sc-iBPTVF keMybc"><div class="sc-hKgKIp gvoNGN"><h2 class="sc-pGaPU biKwui"><a class="sc-crrtmM jGBpue" href="#tag/alerts/paths/~1api~1alerts/get" aria-label="tag/alerts/paths/~1api~1alerts/get"></a>Search alerts<!-- --> </h2><div class="sc-eWVLZl fgfjUV"><div html="&lt;p&gt;Search alerts&lt;/p&gt;
363
363
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG"><p>Search alerts</p>
364
364
  </div></div><div><h5 class="sc-iqHXzD bRzaSI">query<!-- --> Parameters</h5><table class="sc-hHftZz buUaAP"><tbody><tr class=""><td kind="field" title="page" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">page</span></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">integer</span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div><div><span class="sc-gTgyBf ihUpGF"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG ihUpGF cEfEOv">1</span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">limit</span></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">integer</span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div><div><span class="sc-gTgyBf ihUpGF"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG ihUpGF cEfEOv">10</span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr><tr class=""><td kind="field" title="artifact" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">artifact</span></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">string</span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr><tr class=""><td kind="field" title="rule_id" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">rule_id</span></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">string</span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr><tr class=""><td kind="field" title="tag" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">tag</span></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">string</span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr><tr class=""><td kind="field" title="fromAt" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">fromAt</span></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">string</span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr><tr class="last "><td kind="field" title="toAt" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">toAt</span></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">string</span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fWPdKs fCsSHf">Responses</h3><div><button class="sc-httZfN iePdRD"><svg class="sc-dQpIV iHKCKT" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">200<!-- --> </strong><div html="&lt;p&gt;Search alerts&lt;/p&gt;
365
365
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"><p>Search alerts</p>
366
- </div></button></div></div></div><div class="sc-jSguLX sc-gKsecS QymcT bZqtR"><div class="sc-bQdSiB bhuodb"><button class="sc-FyfbU jlriCd"><span type="get" class="sc-jXkspL gDPfwK http-verb get">get</span><span class="sc-fXoxOd jzevEV">/api/alerts</span><svg class="sc-dQpIV hHbBnT" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eFtZDC ciRGmD"><div class="sc-fmlKft buTZbL"><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div><div tabindex="0" role="button"><div class="sc-ljRaSg uePtT"><span></span>/api/alerts</div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-6" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-7" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-7" aria-labelledby="react-tabs-6"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable "><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"alerts"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"ruleId"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"createdAt"</span>: <span class="token string">&quot;2019-08-24T14:15:22Z&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"artifacts"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"data"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"dataType"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"total"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"currentPage"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"pageSize"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="tag/alerts/paths/~1api~1alerts~1{id}/delete" data-section-id="tag/alerts/paths/~1api~1alerts~1{id}/delete" class="sc-eCstZk bCpIRB"><div class="sc-iBPTVF keMybc"><div class="sc-hKgKIp gvoNGN"><h2 class="sc-pGaPU biKwui"><a class="sc-crrtmM jGBpue" href="#tag/alerts/paths/~1api~1alerts~1{id}/delete" aria-label="tag/alerts/paths/~1api~1alerts~1{id}/delete"></a>Delete an alert<!-- --> </h2><div class="sc-eWVLZl fgfjUV"><div html="&lt;p&gt;Delete an alert&lt;/p&gt;
366
+ </div></button></div></div></div><div class="sc-jSguLX sc-gKsecS QymcT bZqtR"><div class="sc-bQdSiB bhuodb"><button class="sc-FyfbU jlriCd"><span type="get" class="sc-jXkspL gDPfwK http-verb get">get</span><span class="sc-fXoxOd jzevEV">/api/alerts</span><svg class="sc-dQpIV hHbBnT" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eFtZDC ciRGmD"><div class="sc-fmlKft buTZbL"><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div><div tabindex="0" role="button"><div class="sc-ljRaSg uePtT"><span></span>/api/alerts</div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-6" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-7" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-7" aria-labelledby="react-tabs-6"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable "><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"alerts"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"ruleId"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"createdAt"</span>: <span class="token string">&quot;2019-08-24T14:15:22Z&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"artifacts"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"data"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"dataType"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"query"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"total"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"currentPage"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"pageSize"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="tag/alerts/paths/~1api~1alerts~1{id}/delete" data-section-id="tag/alerts/paths/~1api~1alerts~1{id}/delete" class="sc-eCstZk bCpIRB"><div class="sc-iBPTVF keMybc"><div class="sc-hKgKIp gvoNGN"><h2 class="sc-pGaPU biKwui"><a class="sc-crrtmM jGBpue" href="#tag/alerts/paths/~1api~1alerts~1{id}/delete" aria-label="tag/alerts/paths/~1api~1alerts~1{id}/delete"></a>Delete an alert<!-- --> </h2><div class="sc-eWVLZl fgfjUV"><div html="&lt;p&gt;Delete an alert&lt;/p&gt;
367
367
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG"><p>Delete an alert</p>
368
368
  </div></div><div><h5 class="sc-iqHXzD bRzaSI">path<!-- --> Parameters</h5><table class="sc-hHftZz buUaAP"><tbody><tr class="last "><td kind="field" title="id" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">id</span><div class="sc-gTgyBf sc-eJMOVy ihUpGF giWqTo">required</div></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">integer</span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fWPdKs fCsSHf">Responses</h3><div><button class="sc-httZfN iePdRD"><svg class="sc-dQpIV iHKCKT" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">204<!-- --> </strong><div html="&lt;p&gt;Delete an alert&lt;/p&gt;
369
369
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"><p>Delete an alert</p>
@@ -377,7 +377,7 @@ data-styled.g137[id="sc-cKZHtR"]{content:"lcoFQc,"}/*!sc*/
377
377
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG"><p>Get an artifact</p>
378
378
  </div></div><div><h5 class="sc-iqHXzD bRzaSI">path<!-- --> Parameters</h5><table class="sc-hHftZz buUaAP"><tbody><tr class="last "><td kind="field" title="id" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">id</span><div class="sc-gTgyBf sc-eJMOVy ihUpGF giWqTo">required</div></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">integer</span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fWPdKs fCsSHf">Responses</h3><div><button class="sc-httZfN iePdRD"><svg class="sc-dQpIV iHKCKT" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">200<!-- --> </strong><div html="&lt;p&gt;Get an artifact&lt;/p&gt;
379
379
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"><p>Get an artifact</p>
380
- </div></button></div><div><button class="sc-httZfN jEuzUJ"><svg class="sc-dQpIV bbipPn" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">404<!-- --> </strong><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"></div></button></div></div></div><div class="sc-jSguLX sc-gKsecS QymcT bZqtR"><div class="sc-bQdSiB bhuodb"><button class="sc-FyfbU jlriCd"><span type="get" class="sc-jXkspL gDPfwK http-verb get">get</span><span class="sc-fXoxOd jzevEV">/api/artifacts/{id}</span><svg class="sc-dQpIV hHbBnT" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eFtZDC ciRGmD"><div class="sc-fmlKft buTZbL"><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div><div tabindex="0" role="button"><div class="sc-ljRaSg uePtT"><span></span>/api/artifacts/{id}</div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-16" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-17" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="react-tabs-18" aria-selected="false" aria-disabled="false" aria-controls="react-tabs-19" data-rttab="true">404</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-17" aria-labelledby="react-tabs-16"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"data"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"dataType"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"tags"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"metadata"</span>: <span class="token punctuation">{ }</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"autonomousSystem"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"asn"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"geolocation"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"country"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"countryCode"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"whoisRecord"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"domain"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"createdOn"</span>: <span class="token string">&quot;2019-08-24&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"updatedOn"</span>: <span class="token string">&quot;2019-08-24&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"expiresOn"</span>: <span class="token string">&quot;2019-08-24&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"registrar"</span>: <span class="token punctuation">{ }</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"contacts"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"reverseDnsNames"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"dnsRecords"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"resource"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"value"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"cpes"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"cpe"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"ports"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"port"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="react-tabs-19" aria-labelledby="react-tabs-18"></div></div></div></div></div></div><div id="tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get" data-section-id="tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get" class="sc-eCstZk bCpIRB"><div class="sc-iBPTVF keMybc"><div class="sc-hKgKIp gvoNGN"><h2 class="sc-pGaPU biKwui"><a class="sc-crrtmM jGBpue" href="#tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get" aria-label="tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get"></a>Enrich an artifact<!-- --> </h2><div class="sc-eWVLZl fgfjUV"><div html="&lt;p&gt;Enrich an artifact&lt;/p&gt;
380
+ </div></button></div><div><button class="sc-httZfN jEuzUJ"><svg class="sc-dQpIV bbipPn" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">404<!-- --> </strong><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"></div></button></div></div></div><div class="sc-jSguLX sc-gKsecS QymcT bZqtR"><div class="sc-bQdSiB bhuodb"><button class="sc-FyfbU jlriCd"><span type="get" class="sc-jXkspL gDPfwK http-verb get">get</span><span class="sc-fXoxOd jzevEV">/api/artifacts/{id}</span><svg class="sc-dQpIV hHbBnT" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eFtZDC ciRGmD"><div class="sc-fmlKft buTZbL"><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div><div tabindex="0" role="button"><div class="sc-ljRaSg uePtT"><span></span>/api/artifacts/{id}</div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-16" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-17" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="react-tabs-18" aria-selected="false" aria-disabled="false" aria-controls="react-tabs-19" data-rttab="true">404</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-17" aria-labelledby="react-tabs-16"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"data"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"dataType"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"source"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"query"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"tags"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"metadata"</span>: <span class="token punctuation">{ }</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"autonomousSystem"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"asn"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"geolocation"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"country"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"countryCode"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"whoisRecord"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"domain"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"createdOn"</span>: <span class="token string">&quot;2019-08-24&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"updatedOn"</span>: <span class="token string">&quot;2019-08-24&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"expiresOn"</span>: <span class="token string">&quot;2019-08-24&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"registrar"</span>: <span class="token punctuation">{ }</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"contacts"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"reverseDnsNames"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"dnsRecords"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"resource"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"value"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"cpes"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"cpe"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"ports"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"port"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="react-tabs-19" aria-labelledby="react-tabs-18"></div></div></div></div></div></div><div id="tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get" data-section-id="tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get" class="sc-eCstZk bCpIRB"><div class="sc-iBPTVF keMybc"><div class="sc-hKgKIp gvoNGN"><h2 class="sc-pGaPU biKwui"><a class="sc-crrtmM jGBpue" href="#tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get" aria-label="tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get"></a>Enrich an artifact<!-- --> </h2><div class="sc-eWVLZl fgfjUV"><div html="&lt;p&gt;Enrich an artifact&lt;/p&gt;
381
381
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG"><p>Enrich an artifact</p>
382
382
  </div></div><div><h5 class="sc-iqHXzD bRzaSI">path<!-- --> Parameters</h5><table class="sc-hHftZz buUaAP"><tbody><tr class="last "><td kind="field" title="id" class="sc-hBEZvw sc-fFubCH gPUvwc gXIfsF"><span class="sc-idOjMB jwsifT"></span><span class="property-name">id</span><div class="sc-gTgyBf sc-eJMOVy ihUpGF giWqTo">required</div></td><td class="sc-bkzXAi kMAhqG"><div><div><span class="sc-gTgyBf sc-laRQQM ihUpGF cREGdc"></span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj">integer</span><span class="sc-gTgyBf sc-iNqNmV ihUpGF iPuJRj"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fWPdKs fCsSHf">Responses</h3><div><button class="sc-httZfN iePdRD"><svg class="sc-dQpIV iHKCKT" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-gVgoeb goojcW">201<!-- --> </strong><div html="&lt;p&gt;Enrich an artifact&lt;/p&gt;
383
383
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"><p>Enrich an artifact</p>
@@ -435,7 +435,7 @@ data-styled.g137[id="sc-cKZHtR"]{content:"lcoFQc,"}/*!sc*/
435
435
  " class="sc-iJuWdM sc-cBNeRQ gpkGbA casAkG sc-citwID bzkUsW"><p>Get tags</p>
436
436
  </div></button></div></div></div><div class="sc-jSguLX sc-gKsecS QymcT bZqtR"><div class="sc-bQdSiB bhuodb"><button class="sc-FyfbU jlriCd"><span type="get" class="sc-jXkspL gDPfwK http-verb get">get</span><span class="sc-fXoxOd jzevEV">/api/tags</span><svg class="sc-dQpIV hHbBnT" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eFtZDC ciRGmD"><div class="sc-fmlKft buTZbL"><div html="" class="sc-iJuWdM sc-cBNeRQ gpkGbA dujygE"></div><div tabindex="0" role="button"><div class="sc-ljRaSg uePtT"><span></span>/api/tags</div></div></div></div></div><div><h3 class="sc-kEjbdu jmifsN"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFKTC jVRsAZ" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="react-tabs-62" aria-selected="true" aria-disabled="false" aria-controls="react-tabs-63" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="react-tabs-63" aria-labelledby="react-tabs-62"><div><div class="sc-cOaiZO eDzWuJ"><span class="sc-bBrOHt etjuEr">Content type</span><div class="sc-dOSSlk bAzVww">application/json</div></div><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV gLzJQv"><div class="sc-giInvV bIDavi"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM gpkGbA sc-jNMdxs jXmkAn"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable "><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <span class="token string">&quot;string&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></code></div></div></div></div></div></div></div></div></div></div></div></div><div class="sc-jtHLPo gfiMgB"></div></div></div>
437
437
  <script>
438
- const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.0","info":{"title":"Mihari API","version":"0.0.1"},"tags":[{"name":"alerts","description":"Operations about alerts"},{"name":"artifacts","description":"Operations about artifacts"},{"name":"configs","description":"Operations about configs"},{"name":"ip_addresses","description":"Operations about ip_addresses"},{"name":"rules","description":"Operations about rules"},{"name":"tags","description":"Operations about tags"}],"paths":{"/api/alerts":{"post":{"summary":"Create an alert","description":"Create an alert","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postApiAlerts"}}},"required":true},"responses":{"201":{"description":"Create an alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Alert"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["alerts"]},"get":{"summary":"Search alerts","description":"Search alerts","parameters":[{"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"in":"query","name":"artifact","required":false,"schema":{"type":"string"}},{"in":"query","name":"rule_id","required":false,"schema":{"type":"string"}},{"in":"query","name":"tag","required":false,"schema":{"type":"string"}},{"in":"query","name":"fromAt","required":false,"schema":{"type":"string","format":"date-time"}},{"in":"query","name":"toAt","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Search alerts","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_AlertsWithPagination"}}}}}},"tags":["alerts"]}},"/api/alerts/{id}":{"delete":{"summary":"Delete an alert","description":"Delete an alert","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Delete an alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["alerts"]}},"/api/artifacts/{id}":{"delete":{"summary":"Delete an artifact","description":"Delete an artifact","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Delete an artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["artifacts"]},"get":{"summary":"Get an artifact","description":"Get an artifact","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Get an artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Artifact"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["artifacts"]}},"/api/artifacts/{id}/enrich":{"get":{"summary":"Enrich an artifact","description":"Enrich an artifact","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"201":{"description":"Enrich an artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["artifacts"]}},"/api/configs":{"get":{"summary":"Get configs","description":"Get configs","responses":{"200":{"description":"Get configs","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Config"}}}}}},"tags":["configs"]}},"/api/ip_addresses/{ip}":{"get":{"summary":"Get an IP address","description":"Get an IP address","parameters":[{"in":"path","name":"ip","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get an IP address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_IPAddress"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["ip_addresses"]}},"/api/rules/{id}":{"delete":{"summary":"Delete a rule","description":"Delete a rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Delete a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]},"get":{"summary":"Get a rule","description":"Get a rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]}},"/api/rules":{"put":{"summary":"Update a rule","description":"Update a rule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/putApiRules"}}},"required":true},"responses":{"201":{"description":"Update a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]},"post":{"summary":"Create a rule","description":"Create a rule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postApiRules"}}},"required":true},"responses":{"201":{"description":"Create a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]},"get":{"summary":"Search rules","description":"Search rules","parameters":[{"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"description","required":false,"schema":{"type":"string"}},{"in":"query","name":"tag","required":false,"schema":{"type":"string"}},{"in":"query","name":"fromAt","required":false,"schema":{"type":"string","format":"date-time"}},{"in":"query","name":"toAt","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Search rules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_RulesWithPagination"}}}}}},"tags":["rules"]}},"/api/rules/{id}/run":{"get":{"summary":"Run a rule","description":"Run a rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Run a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]}},"/api/rules/ids":{"get":{"summary":"Get rule IDs","description":"Get Rule IDs","responses":{"200":{"description":"Get Rule IDs","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_RuleIDs"}}}}}},"tags":["rules"]}},"/api/tags/{id}":{"delete":{"summary":"Delete a tag","description":"Delete a tag","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Delete a tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["tags"]}},"/api/tags":{"get":{"summary":"Get tags","description":"Get tags","responses":{"200":{"description":"Get tags","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Tags"}}}}}},"tags":["tags"]}}},"components":{"schemas":{"postApiAlerts":{"type":"object","properties":{"ruleId":{"type":"string"},"artifacts":{"type":"array","items":{"type":"string"}}},"required":["ruleId","artifacts"],"description":"Create an alert"},"Mihari_Entities_Alert":{"type":"object","properties":{"id":{"type":"string","description":"String representation of the ID"},"ruleId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"artifacts":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_BaseArtifact"}},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Tag"}}},"required":["id","ruleId","createdAt","tags"],"description":"Mihari_Entities_Alert model"},"Mihari_Entities_BaseArtifact":{"type":"object","properties":{"id":{"type":"string","description":"String representation of the ID"},"data":{"type":"string"},"dataType":{"type":"string"},"source":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}},"required":["id","data","dataType","source"]},"Mihari_Entities_Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}},"required":["id","name"]},"Mihari_Entities_Message":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"description":"Mihari_Entities_Message model"},"Mihari_Entities_AlertsWithPagination":{"type":"object","properties":{"alerts":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Alert"}},"total":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"}},"required":["alerts","total","currentPage","pageSize"],"description":"Mihari_Entities_AlertsWithPagination model"},"Mihari_Entities_Artifact":{"type":"object","properties":{"id":{"type":"string","description":"String representation of the ID"},"data":{"type":"string"},"dataType":{"type":"string"},"source":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object"},"autonomousSystem":{"$ref":"#/components/schemas/Mihari_Entities_AutonomousSystem"},"geolocation":{"$ref":"#/components/schemas/Mihari_Entities_Geolocation"},"whoisRecord":{"$ref":"#/components/schemas/Mihari_Entities_WhoisRecord"},"reverseDnsNames":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_ReverseDnsName"}},"dnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_DnsRecord"}},"cpes":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_CPE"}},"ports":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Port"}}},"required":["id","data","dataType","source"],"description":"Mihari_Entities_Artifact model"},"Mihari_Entities_AutonomousSystem":{"type":"object","properties":{"asn":{"type":"integer","format":"int32"}},"required":["asn"]},"Mihari_Entities_Geolocation":{"type":"object","properties":{"country":{"type":"string"},"countryCode":{"type":"string"}},"required":["country","countryCode"]},"Mihari_Entities_WhoisRecord":{"type":"object","properties":{"domain":{"type":"string"},"createdOn":{"type":"string","format":"date"},"updatedOn":{"type":"string","format":"date"},"expiresOn":{"type":"string","format":"date"},"registrar":{"type":"object"},"contacts":{"type":"array","items":{"type":"object"}}},"required":["domain","contacts"]},"Mihari_Entities_ReverseDnsName":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"Mihari_Entities_DnsRecord":{"type":"object","properties":{"resource":{"type":"string"},"value":{"type":"string"}},"required":["resource","value"]},"Mihari_Entities_CPE":{"type":"object","properties":{"cpe":{"type":"string"}},"required":["cpe"]},"Mihari_Entities_Port":{"type":"object","properties":{"port":{"type":"integer","format":"int32"}},"required":["port"]},"Mihari_Entities_Config":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}},"isConfigured":{"type":"boolean"}},"required":["name","type","values","isConfigured"],"description":"Mihari_Entities_Config model"},"Mihari_Entities_IPAddress":{"type":"object","properties":{"ip":{"type":"string"},"countryCode":{"type":"string"},"hostname":{"type":"string"},"loc":{"type":"string"},"asn":{"type":"integer","format":"int32"}},"required":["ip","countryCode","loc"],"description":"Mihari_Entities_IPAddress model"},"putApiRules":{"type":"object","properties":{"id":{"type":"string"},"yaml":{"type":"string"}},"required":["id","yaml"],"description":"Update a rule"},"Mihari_Entities_Rule":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"yaml":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Tag"}}},"required":["id","title","description","yaml","createdAt","updatedAt","tags"],"description":"Mihari_Entities_Rule model"},"postApiRules":{"type":"object","properties":{"yaml":{"type":"string"}},"required":["yaml"],"description":"Create a rule"},"Mihari_Entities_RulesWithPagination":{"type":"object","properties":{"rules":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}},"total":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"}},"required":["rules","total","currentPage","pageSize"],"description":"Mihari_Entities_RulesWithPagination model"},"Mihari_Entities_RuleIDs":{"type":"object","properties":{"ruleIds":{"type":"string"}},"required":["ruleIds"],"description":"Mihari_Entities_RuleIDs model"},"Mihari_Entities_Tags":{"type":"object","properties":{"tags":{"type":"string"}},"required":["tags"],"description":"Mihari_Entities_Tags model"}}}}},"searchIndex":{"store":["tag/alerts","tag/alerts/paths/~1api~1alerts/post","tag/alerts/paths/~1api~1alerts/get","tag/alerts/paths/~1api~1alerts~1{id}/delete","tag/artifacts","tag/artifacts/paths/~1api~1artifacts~1{id}/delete","tag/artifacts/paths/~1api~1artifacts~1{id}/get","tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get","tag/configs","tag/configs/paths/~1api~1configs/get","tag/ip_addresses","tag/ip_addresses/paths/~1api~1ip_addresses~1{ip}/get","tag/rules","tag/rules/paths/~1api~1rules~1{id}/delete","tag/rules/paths/~1api~1rules~1{id}/get","tag/rules/paths/~1api~1rules/put","tag/rules/paths/~1api~1rules/post","tag/rules/paths/~1api~1rules/get","tag/rules/paths/~1api~1rules~1{id}~1run/get","tag/rules/paths/~1api~1rules~1ids/get","tag/tags","tag/tags/paths/~1api~1tags~1{id}/delete","tag/tags/paths/~1api~1tags/get"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,1.218]],["description/0",[0,1.141,1,1.436]],["title/1",[0,0.932,2,1.503]],["description/1",[0,0.971,2,1.565,3,2.115]],["title/2",[0,0.932,4,1.503]],["description/2",[0,0.971,3,2.115,4,1.565]],["title/3",[0,0.932,5,0.932]],["description/3",[0,0.971,5,0.971,6,2.593]],["title/4",[7,1.218]],["description/4",[1,1.436,7,1.141]],["title/5",[5,0.932,7,0.932]],["description/5",[5,0.971,7,0.971,8,2.115]],["title/6",[7,1.218]],["description/6",[7,1.141,8,2.486]],["title/7",[7,0.932,9,2.031]],["description/7",[7,0.971,9,2.115,10,2.593]],["title/8",[11,1.964]],["description/8",[1,1.436,11,1.84]],["title/9",[11,1.964]],["description/9",[11,1.84,12,3.047]],["title/10",[13,2.654]],["description/10",[1,1.436,13,2.486]],["title/11",[14,2.031,15,2.031]],["description/11",[14,2.115,15,2.115,16,2.593]],["title/12",[17,0.44]],["description/12",[1,1.436,17,0.412]],["title/13",[5,0.932,17,0.336]],["description/13",[5,0.971,17,0.35,18,2.115]],["title/14",[17,0.44]],["description/14",[17,0.412,18,2.486]],["title/15",[17,0.336,19,2.031]],["description/15",[17,0.35,19,2.115,20,1.8]],["title/16",[2,1.503,17,0.336]],["description/16",[2,1.565,17,0.35,20,1.8]],["title/17",[4,1.503,17,0.336]],["description/17",[4,1.565,17,0.35,20,1.8]],["title/18",[17,0.336,21,2.031]],["description/18",[17,0.35,21,2.115,22,2.593]],["title/19",[17,0.336,23,2.031]],["description/19",[17,0.35,23,2.115,24,2.593]],["title/20",[25,1.533]],["description/20",[1,1.436,25,1.436]],["title/21",[5,0.932,25,1.173]],["description/21",[5,0.971,25,1.222,26,2.593]],["title/22",[25,1.533]],["description/22",[25,1.436,27,3.047]]],"invertedIndex":[["address",{"_index":15,"title":{"11":{}},"description":{"11":{}}}],["alert",{"_index":0,"title":{"0":{},"1":{},"2":{},"3":{}},"description":{"0":{},"1":{},"2":{},"3":{}}}],["api/alert",{"_index":3,"title":{},"description":{"1":{},"2":{}}}],["api/alerts/{id",{"_index":6,"title":{},"description":{"3":{}}}],["api/artifacts/{id",{"_index":8,"title":{},"description":{"5":{},"6":{}}}],["api/artifacts/{id}/enrich",{"_index":10,"title":{},"description":{"7":{}}}],["api/config",{"_index":12,"title":{},"description":{"9":{}}}],["api/ip_addresses/{ip",{"_index":16,"title":{},"description":{"11":{}}}],["api/rul",{"_index":20,"title":{},"description":{"15":{},"16":{},"17":{}}}],["api/rules/id",{"_index":24,"title":{},"description":{"19":{}}}],["api/rules/{id",{"_index":18,"title":{},"description":{"13":{},"14":{}}}],["api/rules/{id}/run",{"_index":22,"title":{},"description":{"18":{}}}],["api/tag",{"_index":27,"title":{},"description":{"22":{}}}],["api/tags/{id",{"_index":26,"title":{},"description":{"21":{}}}],["artifact",{"_index":7,"title":{"4":{},"5":{},"6":{},"7":{}},"description":{"4":{},"5":{},"6":{},"7":{}}}],["config",{"_index":11,"title":{"8":{},"9":{}},"description":{"8":{},"9":{}}}],["creat",{"_index":2,"title":{"1":{},"16":{}},"description":{"1":{},"16":{}}}],["delet",{"_index":5,"title":{"3":{},"5":{},"13":{},"21":{}},"description":{"3":{},"5":{},"13":{},"21":{}}}],["enrich",{"_index":9,"title":{"7":{}},"description":{"7":{}}}],["id",{"_index":23,"title":{"19":{}},"description":{"19":{}}}],["ip",{"_index":14,"title":{"11":{}},"description":{"11":{}}}],["ip_address",{"_index":13,"title":{"10":{}},"description":{"10":{}}}],["oper",{"_index":1,"title":{},"description":{"0":{},"4":{},"8":{},"10":{},"12":{},"20":{}}}],["rule",{"_index":17,"title":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{}},"description":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{}}}],["run",{"_index":21,"title":{"18":{}},"description":{"18":{}}}],["search",{"_index":4,"title":{"2":{},"17":{}},"description":{"2":{},"17":{}}}],["tag",{"_index":25,"title":{"20":{},"21":{},"22":{}},"description":{"20":{},"21":{},"22":{}}}],["updat",{"_index":19,"title":{"15":{}},"description":{"15":{}}}]],"pipeline":[]}},"options":{}};
438
+ const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.0","info":{"title":"Mihari API","version":"0.0.1"},"tags":[{"name":"alerts","description":"Operations about alerts"},{"name":"artifacts","description":"Operations about artifacts"},{"name":"configs","description":"Operations about configs"},{"name":"ip_addresses","description":"Operations about ip_addresses"},{"name":"rules","description":"Operations about rules"},{"name":"tags","description":"Operations about tags"}],"paths":{"/api/alerts":{"post":{"summary":"Create an alert","description":"Create an alert","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postApiAlerts"}}},"required":true},"responses":{"201":{"description":"Create an alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Alert"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["alerts"]},"get":{"summary":"Search alerts","description":"Search alerts","parameters":[{"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"in":"query","name":"artifact","required":false,"schema":{"type":"string"}},{"in":"query","name":"rule_id","required":false,"schema":{"type":"string"}},{"in":"query","name":"tag","required":false,"schema":{"type":"string"}},{"in":"query","name":"fromAt","required":false,"schema":{"type":"string","format":"date-time"}},{"in":"query","name":"toAt","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Search alerts","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_AlertsWithPagination"}}}}}},"tags":["alerts"]}},"/api/alerts/{id}":{"delete":{"summary":"Delete an alert","description":"Delete an alert","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Delete an alert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["alerts"]}},"/api/artifacts/{id}":{"delete":{"summary":"Delete an artifact","description":"Delete an artifact","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Delete an artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["artifacts"]},"get":{"summary":"Get an artifact","description":"Get an artifact","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Get an artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Artifact"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["artifacts"]}},"/api/artifacts/{id}/enrich":{"get":{"summary":"Enrich an artifact","description":"Enrich an artifact","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"201":{"description":"Enrich an artifact","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["artifacts"]}},"/api/configs":{"get":{"summary":"Get configs","description":"Get configs","responses":{"200":{"description":"Get configs","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Config"}}}}}},"tags":["configs"]}},"/api/ip_addresses/{ip}":{"get":{"summary":"Get an IP address","description":"Get an IP address","parameters":[{"in":"path","name":"ip","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get an IP address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_IPAddress"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["ip_addresses"]}},"/api/rules/{id}":{"delete":{"summary":"Delete a rule","description":"Delete a rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Delete a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]},"get":{"summary":"Get a rule","description":"Get a rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]}},"/api/rules":{"put":{"summary":"Update a rule","description":"Update a rule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/putApiRules"}}},"required":true},"responses":{"201":{"description":"Update a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]},"post":{"summary":"Create a rule","description":"Create a rule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/postApiRules"}}},"required":true},"responses":{"201":{"description":"Create a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]},"get":{"summary":"Search rules","description":"Search rules","parameters":[{"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"description","required":false,"schema":{"type":"string"}},{"in":"query","name":"tag","required":false,"schema":{"type":"string"}},{"in":"query","name":"fromAt","required":false,"schema":{"type":"string","format":"date-time"}},{"in":"query","name":"toAt","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Search rules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_RulesWithPagination"}}}}}},"tags":["rules"]}},"/api/rules/{id}/run":{"get":{"summary":"Run a rule","description":"Run a rule","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Run a rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["rules"]}},"/api/rules/ids":{"get":{"summary":"Get rule IDs","description":"Get Rule IDs","responses":{"200":{"description":"Get Rule IDs","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_RuleIDs"}}}}}},"tags":["rules"]}},"/api/tags/{id}":{"delete":{"summary":"Delete a tag","description":"Delete a tag","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Delete a tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mihari_Entities_Message"}}}}},"tags":["tags"]}},"/api/tags":{"get":{"summary":"Get tags","description":"Get tags","responses":{"200":{"description":"Get tags","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Tags"}}}}}},"tags":["tags"]}}},"components":{"schemas":{"postApiAlerts":{"type":"object","properties":{"ruleId":{"type":"string"},"artifacts":{"type":"array","items":{"type":"string"}}},"required":["ruleId","artifacts"],"description":"Create an alert"},"Mihari_Entities_Alert":{"type":"object","properties":{"id":{"type":"string","description":"String representation of the ID"},"ruleId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"artifacts":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_BaseArtifact"}},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Tag"}}},"required":["id","ruleId","createdAt","tags"],"description":"Mihari_Entities_Alert model"},"Mihari_Entities_BaseArtifact":{"type":"object","properties":{"id":{"type":"string","description":"String representation of the ID"},"data":{"type":"string"},"dataType":{"type":"string"},"source":{"type":"string"},"query":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}},"required":["id","data","dataType","source"]},"Mihari_Entities_Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}},"required":["id","name"]},"Mihari_Entities_Message":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"description":"Mihari_Entities_Message model"},"Mihari_Entities_AlertsWithPagination":{"type":"object","properties":{"alerts":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Alert"}},"total":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"}},"required":["alerts","total","currentPage","pageSize"],"description":"Mihari_Entities_AlertsWithPagination model"},"Mihari_Entities_Artifact":{"type":"object","properties":{"id":{"type":"string","description":"String representation of the ID"},"data":{"type":"string"},"dataType":{"type":"string"},"source":{"type":"string"},"query":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object"},"autonomousSystem":{"$ref":"#/components/schemas/Mihari_Entities_AutonomousSystem"},"geolocation":{"$ref":"#/components/schemas/Mihari_Entities_Geolocation"},"whoisRecord":{"$ref":"#/components/schemas/Mihari_Entities_WhoisRecord"},"reverseDnsNames":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_ReverseDnsName"}},"dnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_DnsRecord"}},"cpes":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_CPE"}},"ports":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Port"}}},"required":["id","data","dataType","source"],"description":"Mihari_Entities_Artifact model"},"Mihari_Entities_AutonomousSystem":{"type":"object","properties":{"asn":{"type":"integer","format":"int32"}},"required":["asn"]},"Mihari_Entities_Geolocation":{"type":"object","properties":{"country":{"type":"string"},"countryCode":{"type":"string"}},"required":["country","countryCode"]},"Mihari_Entities_WhoisRecord":{"type":"object","properties":{"domain":{"type":"string"},"createdOn":{"type":"string","format":"date"},"updatedOn":{"type":"string","format":"date"},"expiresOn":{"type":"string","format":"date"},"registrar":{"type":"object"},"contacts":{"type":"array","items":{"type":"object"}}},"required":["domain","contacts"]},"Mihari_Entities_ReverseDnsName":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"Mihari_Entities_DnsRecord":{"type":"object","properties":{"resource":{"type":"string"},"value":{"type":"string"}},"required":["resource","value"]},"Mihari_Entities_CPE":{"type":"object","properties":{"cpe":{"type":"string"}},"required":["cpe"]},"Mihari_Entities_Port":{"type":"object","properties":{"port":{"type":"integer","format":"int32"}},"required":["port"]},"Mihari_Entities_Config":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"values":{"type":"array","items":{"type":"string"}},"isConfigured":{"type":"boolean"}},"required":["name","type","values","isConfigured"],"description":"Mihari_Entities_Config model"},"Mihari_Entities_IPAddress":{"type":"object","properties":{"ip":{"type":"string"},"countryCode":{"type":"string"},"hostname":{"type":"string"},"loc":{"type":"string"},"asn":{"type":"integer","format":"int32"}},"required":["ip","countryCode","loc"],"description":"Mihari_Entities_IPAddress model"},"putApiRules":{"type":"object","properties":{"id":{"type":"string"},"yaml":{"type":"string"}},"required":["id","yaml"],"description":"Update a rule"},"Mihari_Entities_Rule":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"yaml":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Tag"}}},"required":["id","title","description","yaml","createdAt","updatedAt","tags"],"description":"Mihari_Entities_Rule model"},"postApiRules":{"type":"object","properties":{"yaml":{"type":"string"}},"required":["yaml"],"description":"Create a rule"},"Mihari_Entities_RulesWithPagination":{"type":"object","properties":{"rules":{"type":"array","items":{"$ref":"#/components/schemas/Mihari_Entities_Rule"}},"total":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"}},"required":["rules","total","currentPage","pageSize"],"description":"Mihari_Entities_RulesWithPagination model"},"Mihari_Entities_RuleIDs":{"type":"object","properties":{"ruleIds":{"type":"string"}},"required":["ruleIds"],"description":"Mihari_Entities_RuleIDs model"},"Mihari_Entities_Tags":{"type":"object","properties":{"tags":{"type":"string"}},"required":["tags"],"description":"Mihari_Entities_Tags model"}}}}},"searchIndex":{"store":["tag/alerts","tag/alerts/paths/~1api~1alerts/post","tag/alerts/paths/~1api~1alerts/get","tag/alerts/paths/~1api~1alerts~1{id}/delete","tag/artifacts","tag/artifacts/paths/~1api~1artifacts~1{id}/delete","tag/artifacts/paths/~1api~1artifacts~1{id}/get","tag/artifacts/paths/~1api~1artifacts~1{id}~1enrich/get","tag/configs","tag/configs/paths/~1api~1configs/get","tag/ip_addresses","tag/ip_addresses/paths/~1api~1ip_addresses~1{ip}/get","tag/rules","tag/rules/paths/~1api~1rules~1{id}/delete","tag/rules/paths/~1api~1rules~1{id}/get","tag/rules/paths/~1api~1rules/put","tag/rules/paths/~1api~1rules/post","tag/rules/paths/~1api~1rules/get","tag/rules/paths/~1api~1rules~1{id}~1run/get","tag/rules/paths/~1api~1rules~1ids/get","tag/tags","tag/tags/paths/~1api~1tags~1{id}/delete","tag/tags/paths/~1api~1tags/get"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,1.218]],["description/0",[0,1.141,1,1.436]],["title/1",[0,0.932,2,1.503]],["description/1",[0,0.971,2,1.565,3,2.115]],["title/2",[0,0.932,4,1.503]],["description/2",[0,0.971,3,2.115,4,1.565]],["title/3",[0,0.932,5,0.932]],["description/3",[0,0.971,5,0.971,6,2.593]],["title/4",[7,1.218]],["description/4",[1,1.436,7,1.141]],["title/5",[5,0.932,7,0.932]],["description/5",[5,0.971,7,0.971,8,2.115]],["title/6",[7,1.218]],["description/6",[7,1.141,8,2.486]],["title/7",[7,0.932,9,2.031]],["description/7",[7,0.971,9,2.115,10,2.593]],["title/8",[11,1.964]],["description/8",[1,1.436,11,1.84]],["title/9",[11,1.964]],["description/9",[11,1.84,12,3.047]],["title/10",[13,2.654]],["description/10",[1,1.436,13,2.486]],["title/11",[14,2.031,15,2.031]],["description/11",[14,2.115,15,2.115,16,2.593]],["title/12",[17,0.44]],["description/12",[1,1.436,17,0.412]],["title/13",[5,0.932,17,0.336]],["description/13",[5,0.971,17,0.35,18,2.115]],["title/14",[17,0.44]],["description/14",[17,0.412,18,2.486]],["title/15",[17,0.336,19,2.031]],["description/15",[17,0.35,19,2.115,20,1.8]],["title/16",[2,1.503,17,0.336]],["description/16",[2,1.565,17,0.35,20,1.8]],["title/17",[4,1.503,17,0.336]],["description/17",[4,1.565,17,0.35,20,1.8]],["title/18",[17,0.336,21,2.031]],["description/18",[17,0.35,21,2.115,22,2.593]],["title/19",[17,0.336,23,2.031]],["description/19",[17,0.35,23,2.115,24,2.593]],["title/20",[25,1.533]],["description/20",[1,1.436,25,1.436]],["title/21",[5,0.932,25,1.173]],["description/21",[5,0.971,25,1.222,26,2.593]],["title/22",[25,1.533]],["description/22",[25,1.436,27,3.047]]],"invertedIndex":[["address",{"_index":15,"title":{"11":{}},"description":{"11":{}}}],["alert",{"_index":0,"title":{"0":{},"1":{},"2":{},"3":{}},"description":{"0":{},"1":{},"2":{},"3":{}}}],["api/alert",{"_index":3,"title":{},"description":{"1":{},"2":{}}}],["api/alerts/{id",{"_index":6,"title":{},"description":{"3":{}}}],["api/artifacts/{id",{"_index":8,"title":{},"description":{"5":{},"6":{}}}],["api/artifacts/{id}/enrich",{"_index":10,"title":{},"description":{"7":{}}}],["api/config",{"_index":12,"title":{},"description":{"9":{}}}],["api/ip_addresses/{ip",{"_index":16,"title":{},"description":{"11":{}}}],["api/rul",{"_index":20,"title":{},"description":{"15":{},"16":{},"17":{}}}],["api/rules/id",{"_index":24,"title":{},"description":{"19":{}}}],["api/rules/{id",{"_index":18,"title":{},"description":{"13":{},"14":{}}}],["api/rules/{id}/run",{"_index":22,"title":{},"description":{"18":{}}}],["api/tag",{"_index":27,"title":{},"description":{"22":{}}}],["api/tags/{id",{"_index":26,"title":{},"description":{"21":{}}}],["artifact",{"_index":7,"title":{"4":{},"5":{},"6":{},"7":{}},"description":{"4":{},"5":{},"6":{},"7":{}}}],["config",{"_index":11,"title":{"8":{},"9":{}},"description":{"8":{},"9":{}}}],["creat",{"_index":2,"title":{"1":{},"16":{}},"description":{"1":{},"16":{}}}],["delet",{"_index":5,"title":{"3":{},"5":{},"13":{},"21":{}},"description":{"3":{},"5":{},"13":{},"21":{}}}],["enrich",{"_index":9,"title":{"7":{}},"description":{"7":{}}}],["id",{"_index":23,"title":{"19":{}},"description":{"19":{}}}],["ip",{"_index":14,"title":{"11":{}},"description":{"11":{}}}],["ip_address",{"_index":13,"title":{"10":{}},"description":{"10":{}}}],["oper",{"_index":1,"title":{},"description":{"0":{},"4":{},"8":{},"10":{},"12":{},"20":{}}}],["rule",{"_index":17,"title":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{}},"description":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{}}}],["run",{"_index":21,"title":{"18":{}},"description":{"18":{}}}],["search",{"_index":4,"title":{"2":{},"17":{}},"description":{"2":{},"17":{}}}],["tag",{"_index":25,"title":{"20":{},"21":{},"22":{}},"description":{"20":{},"21":{},"22":{}}}],["updat",{"_index":19,"title":{"15":{}},"description":{"15":{}}}]],"pipeline":[]}},"options":{}};
439
439
 
440
440
  var container = document.getElementById('redoc');
441
441
  Redoc.hydrate(__redoc_state, container);
data/lib/mihari.rb CHANGED
@@ -32,7 +32,7 @@ require "grape-entity"
32
32
  require "addressable/uri"
33
33
  require "awrence"
34
34
  require "email_address"
35
- require "memist"
35
+ require "memo_wise"
36
36
  require "parallel"
37
37
  require "plissken"
38
38
  require "public_suffix"
@@ -62,7 +62,7 @@ require "mihari/mixins/unwrap_error"
62
62
  #
63
63
  module Mihari
64
64
  class << self
65
- include Memist::Memoizable
65
+ prepend MemoWise
66
66
 
67
67
  #
68
68
  # @return [Array<Mihari::Emitters::Base>]
@@ -70,7 +70,7 @@ module Mihari
70
70
  def emitters
71
71
  []
72
72
  end
73
- memoize :emitters
73
+ memo_wise :emitters
74
74
 
75
75
  #
76
76
  # @return [Hash{String => Mihari::Enrichers::Base}]
@@ -87,7 +87,7 @@ module Mihari
87
87
  def analyzers
88
88
  []
89
89
  end
90
- memoize :analyzers
90
+ memo_wise :analyzers
91
91
 
92
92
  #
93
93
  # @return [Hash{String => Mihari::Analyzers::Base}]
@@ -104,7 +104,7 @@ module Mihari
104
104
  def enrichers
105
105
  []
106
106
  end
107
- memoize :enrichers
107
+ memo_wise :enrichers
108
108
 
109
109
  #
110
110
  # @return [Hash{String => Mihari::Enrichers::Base}]
@@ -127,7 +127,7 @@ module Mihari
127
127
  SemanticLogger.add_appender(io: $stderr, formatter: :color)
128
128
  SemanticLogger["Mihari"]
129
129
  end
130
- memoize :logger
130
+ memo_wise :logger
131
131
 
132
132
  def initialize_sentry
133
133
  return if Mihari.config.sentry_dsn.nil?
@@ -135,8 +135,7 @@ module Mihari
135
135
 
136
136
  Sentry.init do |config|
137
137
  config.dsn = Mihari.config.sentry_dsn
138
-
139
- config.traces_sample_rate = 0.5
138
+ config.traces_sample_rate = Mihari.config.sentry_trace_sample_rate
140
139
  end
141
140
  end
142
141
  end
@@ -149,7 +148,7 @@ require "mihari/actor"
149
148
 
150
149
  require "mihari/database"
151
150
  require "mihari/http"
152
- require "mihari/type_checker"
151
+ require "mihari/data_type"
153
152
  require "mihari/rule"
154
153
 
155
154
  # Enrichers
@@ -191,6 +190,7 @@ require "mihari/clients/circl"
191
190
  require "mihari/clients/crtsh"
192
191
  require "mihari/clients/dnstwister"
193
192
  require "mihari/clients/fofa"
193
+ require "mihari/clients/google_public_dns"
194
194
  require "mihari/clients/greynoise"
195
195
  require "mihari/clients/hunterhow"
196
196
  require "mihari/clients/misp"
@@ -291,5 +291,5 @@ require "mihari/web/app"
291
291
  # CLIs
292
292
  require "mihari/cli/main"
293
293
 
294
- # initialize Sentry
294
+ # initialize Sentry (if it's possible)
295
295
  Mihari.initialize_sentry
data/mihari.gemspec CHANGED
@@ -55,13 +55,14 @@ Gem::Specification.new do |spec|
55
55
  spec.add_development_dependency "rubocop-yard", "~> 0.8"
56
56
  spec.add_development_dependency "simplecov-lcov", "~> 0.8"
57
57
  spec.add_development_dependency "standard", "~> 1.32"
58
- spec.add_development_dependency "test-prof", "~> 1.2"
58
+ spec.add_development_dependency "test-prof", "~> 1.3"
59
59
  spec.add_development_dependency "timecop", "~> 0.9"
60
60
  spec.add_development_dependency "vcr", "~> 6.2"
61
61
  spec.add_development_dependency "webmock", "~> 3.19"
62
62
 
63
63
  unless ci_env?
64
64
  spec.add_development_dependency "lefthook", "~> 1.5"
65
+ spec.add_development_dependency "ruby-lsp-rspec", "~> 0.1"
65
66
  spec.add_development_dependency "solargraph", "~> 0.49"
66
67
  end
67
68
 
@@ -84,7 +85,7 @@ Gem::Specification.new do |spec|
84
85
  spec.add_dependency "http", "5.1.1"
85
86
  spec.add_dependency "jr-cli", "0.6.0"
86
87
  spec.add_dependency "launchy", "2.5.2"
87
- spec.add_dependency "memist", "2.0.2"
88
+ spec.add_dependency "memo_wise", "1.8.0"
88
89
  spec.add_dependency "normalize_country", "0.3.2"
89
90
  spec.add_dependency "parallel", "1.23.0"
90
91
  spec.add_dependency "plissken", "2.0.1"
@@ -94,9 +95,9 @@ Gem::Specification.new do |spec|
94
95
  spec.add_dependency "rack-cors", "2.0.1"
95
96
  spec.add_dependency "rackup", "2.1.0"
96
97
  spec.add_dependency "semantic_logger", "4.15.0"
97
- spec.add_dependency "sentry-ruby", "5.13.0"
98
+ spec.add_dependency "sentry-ruby", "~> 5.14"
98
99
  spec.add_dependency "slack-notifier", "2.4.0"
99
- spec.add_dependency "sqlite3", "1.6.8"
100
+ spec.add_dependency "sqlite3", "~> 1.6"
100
101
  spec.add_dependency "thor", "1.3.0"
101
102
  spec.add_dependency "thor-hollaback", "0.2.1"
102
103
  spec.add_dependency "uuidtools", "2.2.0"
data/mkdocs.yml CHANGED
@@ -19,6 +19,7 @@ nav:
19
19
  - Docker: tips/docker.md
20
20
  - GitHub Actions: tips/github_actions.md
21
21
  - Superset: tips/superset.md
22
+ - Sentry: tips/sentry.md
22
23
  - Alternatives: tips/alternatives.md
23
24
  - References:
24
25
  - Analyzers: analyzers/index.md
data/requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
1
  mkdocs==1.5.3
2
- mkdocs-material==9.4.8
2
+ mkdocs-material==9.4.14