evennia/docs/latest/api/evennia.contrib.utils.auditing.server.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

267 lines
No EOL
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.contrib.utils.auditing.server &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.contrib.utils.auditing.tests" href="evennia.contrib.utils.auditing.tests.html" />
<link rel="prev" title="evennia.contrib.utils.auditing.outputs" href="evennia.contrib.utils.auditing.outputs.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.utils.auditing.tests.html" title="evennia.contrib.utils.auditing.tests"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.utils.auditing.outputs.html" title="evennia.contrib.utils.auditing.outputs"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.utils.html" >evennia.contrib.utils</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.utils.auditing.html" accesskey="U">evennia.contrib.utils.auditing</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.utils.auditing.server</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.utils.auditing.server">
<span id="evennia-contrib-utils-auditing-server"></span><h1>evennia.contrib.utils.auditing.server<a class="headerlink" href="#module-evennia.contrib.utils.auditing.server" title="Link to this heading"></a></h1>
<p>Auditable Server Sessions:
Extension of the stock ServerSession that yields objects representing
user inputs and system outputs.</p>
<p>Evennia contribution - Johnny 2017</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.utils.auditing.server.AuditedServerSession">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.utils.auditing.server.</span></span><span class="sig-name descname"><span class="pre">AuditedServerSession</span></span><a class="reference internal" href="../_modules/evennia/contrib/utils/auditing/server.html#AuditedServerSession"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.utils.auditing.server.AuditedServerSession" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.server.serversession.html#evennia.server.serversession.ServerSession" title="evennia.server.serversession.ServerSession"><code class="xref py py-class docutils literal notranslate"><span class="pre">ServerSession</span></code></a></p>
<p>This particular implementation parses all server inputs and/or outputs and
passes a dict containing the parsed metadata to a callback method of your
creation. This is useful for recording player activity where necessary for
security auditing, usage analysis or post-incident forensic discovery.</p>
<p><strong>* WARNING *</strong>
All strings are recorded and stored in plaintext. This includes those strings
which might contain sensitive data (create, connect, &#64;password). These commands
have their arguments masked by default, but you must mask or mask any
custom commands of your own that handle sensitive information.</p>
<p>See README.md for installation/configuration instructions.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.utils.auditing.server.AuditedServerSession.audit">
<span class="sig-name descname"><span class="pre">audit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/auditing/server.html#AuditedServerSession.audit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.audit" title="Link to this definition"></a></dt>
<dd><p>Extracts messages and system data from a Session object upon message
send or receive.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>src</strong> (<em>str</em>) Source of data; client or server. Indicates direction.</p></li>
<li><p><strong>text</strong> (<em>str</em><em> or </em><em>list</em>) Client sends messages to server in the form of
lists. Server sends messages to client as string.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>log (dict)</em> </p>
<dl class="simple">
<dt>Dictionary object containing parsed system and user data</dt><dd><p>related to this message.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.utils.auditing.server.AuditedServerSession.mask">
<span class="sig-name descname"><span class="pre">mask</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/auditing/server.html#AuditedServerSession.mask"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.mask" title="Link to this definition"></a></dt>
<dd><p>Masks potentially sensitive user information within messages before
writing to log. Recording cleartext password attempts is bad policy.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>msg</strong> (<em>str</em>) Raw text string sent from client &lt;-&gt; server</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>msg (str)</em> Text string with sensitive information masked out.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.utils.auditing.server.AuditedServerSession.data_out">
<span class="sig-name descname"><span class="pre">data_out</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/auditing/server.html#AuditedServerSession.data_out"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.data_out" title="Link to this definition"></a></dt>
<dd><p>Generic hook for sending data out through the protocol.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>kwargs</strong> (<em>any</em>) Other data to the protocol.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.utils.auditing.server.AuditedServerSession.data_in">
<span class="sig-name descname"><span class="pre">data_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/auditing/server.html#AuditedServerSession.data_in"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.data_in" title="Link to this definition"></a></dt>
<dd><p>Hook for protocols to send incoming data to the engine.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>kwargs</strong> (<em>any</em>) Other data from the protocol.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.utils.auditing.server</a><ul>
<li><a class="reference internal" href="#evennia.contrib.utils.auditing.server.AuditedServerSession"><code class="docutils literal notranslate"><span class="pre">AuditedServerSession</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.audit"><code class="docutils literal notranslate"><span class="pre">AuditedServerSession.audit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.mask"><code class="docutils literal notranslate"><span class="pre">AuditedServerSession.mask()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.data_out"><code class="docutils literal notranslate"><span class="pre">AuditedServerSession.data_out()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.utils.auditing.server.AuditedServerSession.data_in"><code class="docutils literal notranslate"><span class="pre">AuditedServerSession.data_in()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.utils.auditing.outputs.html"
title="previous chapter">evennia.contrib.utils.auditing.outputs</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.utils.auditing.tests.html"
title="next chapter">evennia.contrib.utils.auditing.tests</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.utils.auditing.server.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.utils.auditing.tests.html" title="evennia.contrib.utils.auditing.tests"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.utils.auditing.outputs.html" title="evennia.contrib.utils.auditing.outputs"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.utils.html" >evennia.contrib.utils</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.utils.auditing.html" >evennia.contrib.utils.auditing</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.utils.auditing.server</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>