<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Logging Schema — v2.1.0-beta</title> <link rel="stylesheet" href="../_static/dataone.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '2.1.0-beta', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt' }; </script> <script type="text/javascript" src="../_static/mathjax_pre.js"></script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script> <script type="text/javascript" src="../_static/sidebar.js"></script> <link rel="author" title="About these documents" href="../about.html" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="NodeList" href="NodeList.html" /> <link rel="prev" title="Event Logging and Reporting" href="logging.html" /> <link media="only screen and (max-device-width: 480px)" href="../_static/small_dataone.css" type= "text/css" rel="stylesheet" /> </head> <body role="document"> <div class="version_notice"> <p> <span class='bold'>Warning:</span> These documents are under active development and subject to change (version 2.1.0-beta).<br /> The latest release documents are at: <a href="https://purl.dataone.org/architecture">https://purl.dataone.org/architecture</a> </p> </div> <div class="related" role="navigation" aria-label="related navigation"> <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="NodeList.html" title="NodeList" accesskey="N">next</a> |</li> <li class="right" > <a href="logging.html" title="Event Logging and Reporting" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html"></a> »</li> <li class="nav-item nav-item-1"><a href="index.html" ><no title></a> »</li> <li class="nav-item nav-item-2"><a href="logging.html" accesskey="U">Event Logging and Reporting</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <span class="target" id="module-LoggingSchema"></span><div class="section" id="logging-schema"> <h1>Logging Schema<a class="headerlink" href="#logging-schema" title="Permalink to this headline">¶</a></h1> <blockquote> <div>See subversion log for revision information: <a class="reference external" href="https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/logging.txt">https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/logging.txt</a></div></blockquote> <p>This schema for logging documents specifies the information returned by DataONE when requests for logs have been made from either Coordinating Nodes or Member Nodes. The log information is maintained dynamically by both the Coordinating Nodes and Member Nodes whenever a significant event occurs for a tracked object in the system. Tracked objects include all data objects and science metadata objects in the system. Events of significance include the insertion, update, deletion, or reading of these objects.</p> <p>Log data are considered operational information needed to run DataONE, and can be read by all Coordinating Nodes in the course of service provision. In order to reduce issues with third-party tracking of data status information, users can read log information for an object if they have the access rights to read the corresponding object on which the event was logged.</p> <p>The following list of fields represents the set of information returned upon a request for logging.</p> <table border="1" class="docutils" id="id1"> <caption><span class="caption-text"><strong>Table 1.</strong> Quick reference to the Logging fields described in more detail below.</span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption> <colgroup> <col width="10%" /> <col width="29%" /> <col width="46%" /> <col width="16%" /> </colgroup> <thead valign="bottom"> <tr class="row-odd"><th class="head">Group</th> <th class="head">Field</th> <th class="head">Type</th> <th class="head">Cardinality</th> </tr> </thead> <tbody valign="top"> <tr class="row-even"><td>Log</td> <td></td> <td></td> <td></td> </tr> <tr class="row-odd"><td></td> <td><a class="reference internal" href="#LoggingSchema.entryId" title="LoggingSchema.entryId"><code class="xref py py-attr docutils literal"><span class="pre">entryId</span></code></a></td> <td><code class="xref py py-class docutils literal"><span class="pre">Types.IdentifierType</span></code></td> <td>1</td> </tr> <tr class="row-even"><td></td> <td><a class="reference internal" href="#LoggingSchema.identifier" title="LoggingSchema.identifier"><code class="xref py py-attr docutils literal"><span class="pre">identifier</span></code></a></td> <td><code class="xref py py-class docutils literal"><span class="pre">Types.IdentifierType</span></code></td> <td>1</td> </tr> <tr class="row-odd"><td></td> <td><a class="reference internal" href="#LoggingSchema.ipAddress" title="LoggingSchema.ipAddress"><code class="xref py py-attr docutils literal"><span class="pre">ipAddress</span></code></a></td> <td>String</td> <td>1</td> </tr> <tr class="row-even"><td></td> <td><a class="reference internal" href="#LoggingSchema.userAgent" title="LoggingSchema.userAgent"><code class="xref py py-attr docutils literal"><span class="pre">userAgent</span></code></a></td> <td>String</td> <td>1</td> </tr> <tr class="row-odd"><td></td> <td><a class="reference internal" href="Authorization.html#principal" title="principal"><code class="xref py py-attr docutils literal"><span class="pre">principal</span></code></a></td> <td><code class="xref py py-class docutils literal"><span class="pre">Types.PrincipalType</span></code></td> <td>1</td> </tr> <tr class="row-even"><td></td> <td><a class="reference internal" href="#LoggingSchema.event" title="LoggingSchema.event"><code class="xref py py-attr docutils literal"><span class="pre">event</span></code></a></td> <td><code class="xref py py-class docutils literal"><span class="pre">Types.EventType</span></code></td> <td>1</td> </tr> <tr class="row-odd"><td></td> <td><a class="reference internal" href="#LoggingSchema.logDate" title="LoggingSchema.logDate"><code class="xref py py-attr docutils literal"><span class="pre">logDate</span></code></a></td> <td><a class="reference internal" href="../apis/Types.html#Types.DateTime" title="Types.DateTime"><code class="xref py py-class docutils literal"><span class="pre">Types.DateTime</span></code></a></td> <td>1</td> </tr> <tr class="row-even"><td></td> <td><a class="reference internal" href="#LoggingSchema.memberNode" title="LoggingSchema.memberNode"><code class="xref py py-attr docutils literal"><span class="pre">memberNode</span></code></a></td> <td><code class="xref py py-class docutils literal"><span class="pre">Types.NodeReferenceType</span></code></td> <td>1</td> </tr> </tbody> </table> <div class="section" id="logging-fields"> <h2>Logging fields<a class="headerlink" href="#logging-fields" title="Permalink to this headline">¶</a></h2> <dl class="attribute"> <dt id="LoggingSchema.entryId"> <code class="descclassname">LoggingSchema.</code><code class="descname">entryId</code><a class="headerlink" href="#LoggingSchema.entryId" title="Permalink to this definition">¶</a></dt> <dd><p>The identifier of a particular log record, used to differentiate it from other log records on the same objects.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">Types.IdentifierType</span></code></td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> <dl class="attribute"> <dt id="LoggingSchema.identifier"> <code class="descclassname">LoggingSchema.</code><code class="descname">identifier</code><a class="headerlink" href="#LoggingSchema.identifier" title="Permalink to this definition">¶</a></dt> <dd><p>The identifier of the object on which a logged event occurred.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">Types.IdentifierType</span></code></td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> <dl class="attribute"> <dt id="LoggingSchema.logDate"> <code class="descclassname">LoggingSchema.</code><code class="descname">logDate</code><a class="headerlink" href="#LoggingSchema.logDate" title="Permalink to this definition">¶</a></dt> <dd><p>Date and time (UTC) that the event was logged in the DataONE system.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body"><a class="reference internal" href="../apis/Types.html#Types.DateTime" title="Types.DateTime"><code class="xref py py-class docutils literal"><span class="pre">Types.DateTime</span></code></a>, an ISO 8601 Date-time value in UTC</td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> <dl class="attribute"> <dt id="LoggingSchema.ipAddress"> <code class="descclassname">LoggingSchema.</code><code class="descname">ipAddress</code><a class="headerlink" href="#LoggingSchema.ipAddress" title="Permalink to this definition">¶</a></dt> <dd><p>The InternetProtocol address from which an originating event request originated.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">String Internet IP address in either IP4 or IP6 syntax</td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> <dl class="attribute"> <dt id="LoggingSchema.userAgent"> <code class="descclassname">LoggingSchema.</code><code class="descname">userAgent</code><a class="headerlink" href="#LoggingSchema.userAgent" title="Permalink to this definition">¶</a></dt> <dd><p>A string indicating the type of client software agent that was used by the user to connect to the service and originate the logged event.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body">Any string value signifying a user software agent and its version.</td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> <dl class="attribute"> <dt id="LoggingSchema.event"> <code class="descclassname">LoggingSchema.</code><code class="descname">event</code><a class="headerlink" href="#LoggingSchema.event" title="Permalink to this definition">¶</a></dt> <dd><p>The type of event that was logged, such as an object insertion or deletion.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">Types.EventType</span></code></td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> <dl class="attribute"> <dt id="LoggingSchema.principal"> <code class="descclassname">LoggingSchema.</code><code class="descname">principal</code><a class="headerlink" href="#LoggingSchema.principal" title="Permalink to this definition">¶</a></dt> <dd><p>Principal who generated the event through a request to the node. If the event was recorded without identifying the principal, then the principal will be recorded as ‘public’.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">Types.PrincipalType</span></code></td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> <dl class="attribute"> <dt id="LoggingSchema.memberNode"> <code class="descclassname">LoggingSchema.</code><code class="descname">memberNode</code><a class="headerlink" href="#LoggingSchema.memberNode" title="Permalink to this definition">¶</a></dt> <dd><p>The Member Node Identifier of the node on which this logged event occurred. This field is used to distinguish log records that occur at the same time on different Member Nodes, such as simultaneous downloads.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field-odd field"><th class="field-name">Cardinality:</th><td class="field-body">1</td> </tr> <tr class="field-even field"><th class="field-name">ValueSpace:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">Types.NodeReferenceType</span></code></td> </tr> <tr class="field-odd field"><th class="field-name">Generated By:</th><td class="field-body">Node</td> </tr> <tr class="field-even field"><th class="field-name" colspan="2">Required Version:</th></tr> <tr class="field-even field"><td> </td><td class="field-body">0.3</td> </tr> </tbody> </table> </dd></dl> </div> <div class="section" id="example-log-instance-document"> <h2>Example Log Instance Document<a class="headerlink" href="#example-log-instance-document" title="Permalink to this headline">¶</a></h2> <p>The example instance document included here was auto-generated so does not include useful values. It is included here to provide a general indication as to the structure of a populated log document.</p> </div> <div class="section" id="log-schema-document"> <h2>Log Schema Document<a class="headerlink" href="#log-schema-document" title="Permalink to this headline">¶</a></h2> <p>The XSD schema file for the LoggingSchema is included here for reference.</p> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <p class="logo"><a href="http://dataone.org"> <img class="logo" src="../_static/dataone_logo.png" alt="Logo"/> </a></p> <h3><a href="../index.html">Table Of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Logging Schema</a><ul> <li><a class="reference internal" href="#logging-fields">Logging fields</a></li> <li><a class="reference internal" href="#example-log-instance-document">Example Log Instance Document</a></li> <li><a class="reference internal" href="#log-schema-document">Log Schema Document</a></li> </ul> </li> </ul> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation Overview</a><ul> <li><a href="index.html"><no title></a><ul> <li><a href="logging.html">Event Logging and Reporting</a><ul> <li>Previous: <a href="logging.html" title="previous chapter">Event Logging and Reporting</a></li> <li>Next: <a href="NodeList.html" title="next chapter">NodeList</a></li> </ul></li> </ul></li> </ul></li> </ul> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> <div><input type="text" name="q" /></div> <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="footer"> <div id="copyright"> © Copyright <a href="http://www.dataone.org">2009-2017, DataONE</a>. [ <a href="../_sources/design/LoggingSchema.txt" rel="nofollow">Page Source</a> | <a href='https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/LoggingSchema.txt' rel="nofollow">Revision History</a> ] </div> <div id="acknowledgement"> <p>This material is based upon work supported by the National Science Foundation under Grant Numbers <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=0830944">083094</a> and <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=1430508">1430508</a>.</p> <p>Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.</p> </div> </div> <!-- <hr /> <div id="HCB_comment_box"><a href="http://www.htmlcommentbox.com">HTML Comment Box</a> is loading comments...</div> <link rel="stylesheet" type="text/css" href="_static/skin.css" /> <script type="text/javascript" language="javascript" id="hcb"> /*<! -*/ (function() {s=document.createElement("script"); s.setAttribute("type","text/javascript"); s.setAttribute("src", "http://www.htmlcommentbox.com/jread?page="+escape((typeof hcb_user !== "undefined" && hcb_user.PAGE)||(""+window.location)).replace("+","%2B")+"&mod=%241%24wq1rdBcg%24Gg8J5iYSHJWwAJtlYu/yU."+"&opts=21407&num=10"); if (typeof s!="undefined") document.getElementsByTagName("head")[0].appendChild(s);})(); /* ->*/ </script> --> </body> </html>