This commit is contained in:
RubenVerborgh
2021-06-29 16:54:45 +00:00
parent e1e35a84d0
commit 8591fda008
525 changed files with 12756 additions and 8659 deletions

View File

@@ -3,8 +3,8 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Community Solid Server - v0.9.0</title>
<meta name="description" content="Documentation for Community Solid Server - v0.9.0">
<title>Community Solid Server - v1.0.0-beta.0</title>
<meta name="description" content="Documentation for Community Solid Server - v1.0.0-beta.0">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="assets/css/main.css">
<script async src="assets/js/search.js" id="search-script"></script>
@@ -23,7 +23,7 @@
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="index.html" class="title">Community Solid Server - v0.9.0</a>
<a href="index.html" class="title">Community Solid Server - v1.0.0-beta.0</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
@@ -50,7 +50,7 @@
</div>
<div class="tsd-page-title">
<div class="container">
<h1>Community Solid Server - v0.9.0</h1>
<h1>Community Solid Server - v1.0.0-beta.0</h1>
</div>
</div>
</header>
@@ -79,43 +79,35 @@
and thereby shape the future of Solid.</p>
</li>
</ul>
<a href="#current-status" id="current-status" style="color: inherit; text-decoration: none;">
<h2>Current status</h2>
</a>
<p>This server is in beta stage, which means you can start using it for developing
and testing apps, with some limitations:</p>
<ul>
<li>User account / pod creation is not yet supported fully, and you must rely on
an external identity provider to log you in and authenticate your WebID.
<a href="https://github.com/solid/node-solid-server">solid/node-solid-server</a> or any
other pod provider can serve this purpose, and all you need to do is pass in
an external WebID when creating pods. More information on creating pods can be
found under <a href="#interacting-with-the-server">Interacting with the server</a>.</li>
<li>The spec is still under active development, and as such some features (like
<code>trustedApps</code>) are not yet implemented because they are likely to change. If
your users rely on this functionality, migrating is not yet recommended.</li>
</ul>
<p>Your feedback is most welcome as <a href="https://github.com/solid/community-server/issues/new">issues on this
repository</a>.</p>
<p>However, you can already boot up the server, play around with it, and check how
it is made.</p>
<p>The <a href="https://solid.github.io/community-server/docs/">📗 API documentation</a> and
the <a href="https://rubenverborgh.github.io/solid-server-architecture/solid-architecture-v1-3-0.pdf">📐 architectural
diagram</a>
can help you find your way. The organization and structure of the classes and
components in the <a href="/src">src folder</a> is designed to align with this
architectural diagram to the extent possible (i.e. the <a href="src/ldp">ldp folder</a>
should contain all the components from the <code>ldp</code> section of the diagram.</p>
<p>If you are interested in helping out with the development of this server, be
sure to have a look at the <a href="documentation/Notes-for-developers.md">📓 developer
notes</a> and
<a href="https://github.com/solid/community-server/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">🛠 good first
issues</a>.</p>
<a href="#running-the-server" id="running-the-server" style="color: inherit; text-decoration: none;">
<h2>Running the server</h2>
</a>
<a href="#installing-and-running-locally" id="installing-and-running-locally" style="color: inherit; text-decoration: none;">
<h3>Installing and running locally</h3>
</a>
<pre><code class="language-shell"><span style="color: #000000">npm install -g @solid/community-server</span>
<span style="color: #000000">community-solid-server </span><span style="color: #008000"># add parameters if needed</span>
</code></pre>
<a href="#installing-and-running-from-source" id="installing-and-running-from-source" style="color: inherit; text-decoration: none;">
<h3>Installing and running from source</h3>
</a>
<pre><code class="language-shell"><span style="color: #000000">npm ci</span>
<span style="color: #000000">npm start -- </span><span style="color: #008000"># add parameters if needed</span>
</code></pre>
<a href="#running-via-docker" id="running-via-docker" style="color: inherit; text-decoration: none;">
<h3>Running via Docker</h3>
</a>
<pre><code class="language-shell"><span style="color: #008000"># Build the Docker image</span>
<span style="color: #000000">docker build --rm -f Dockerfile -t css:latest </span><span style="color: #795E26">.</span>
<span style="color: #008000"># Run the image against your `~/Solid` directory on `http://localhost:3000`</span>
<span style="color: #000000">docker run --rm -v ~/Solid:/data -p 3000:3000 -it css:latest</span>
<span style="color: #008000"># Use alternative built-in configurations</span>
<span style="color: #000000">docker run --rm -p 3000:3000 -it css:latest -c config/default.json</span>
<span style="color: #008000"># Use your own configuration mapped to the right directory</span>
<span style="color: #000000">docker run --rm -v ~/solid-config:/config -p 3000:3000 -it css:latest -c /config/my-config.json</span>
</code></pre>
<a href="#configuring-the-server" id="configuring-the-server" style="color: inherit; text-decoration: none;">
<h3>Configuring the server</h3>
<h2>Configuring the server</h2>
</a>
<p>Community Solid Server (CSS) uses
<a href="https://componentsjs.readthedocs.io/en/latest/">ComponentJS</a> to manage all
@@ -138,12 +130,12 @@
<tr>
<td><code>--baseUrl. -b</code></td>
<td><code>&quot;http://localhost:$PORT/&quot;</code></td>
<td>Needs to be set to the base URL of the server for authnetication and authorization to function.</td>
<td>Needs to be set to the base URL of the server for authentication and authorization to function.</td>
</tr>
<tr>
<td><code>--config, -c</code></td>
<td><code>&quot;config/config-default.json&quot;</code></td>
<td><code>config-default.json</code> stores all data in memory. If you would like to persist data to your filesystem, try <code>config-file.json</code></td>
<td><code>&quot;config/default.json&quot;</code></td>
<td><code>config/default.json</code> stores all data in memory. To persist data to your filesystem, try <code>config/file.json</code></td>
</tr>
<tr>
<td><code>--mainModulePath, -m</code></td>
@@ -165,6 +157,11 @@
<td></td>
<td>Endpoint to call when using a SPARQL-based config.</td>
</tr>
<tr>
<td><code>--showStackTrace, -t</code></td>
<td>false</td>
<td>Whether error stack traces should be shown in responses.</td>
</tr>
<tr>
<td><code>--podConfigJson</code></td>
<td><code>&quot;./pod-config.json&quot;</code></td>
@@ -176,172 +173,60 @@
<td>Folder containing the templates used for IDP interactions.</td>
</tr>
</tbody></table>
<a href="#installing-and-running-locally" id="installing-and-running-locally" style="color: inherit; text-decoration: none;">
<h3>Installing and running locally</h3>
</a>
<pre><code class="language-shell"><span style="color: #000000">$ npm ci</span>
<span style="color: #000000">$ npm start [-- ARGS]</span>
</code></pre>
<a href="#interacting-with-the-server" id="interacting-with-the-server" style="color: inherit; text-decoration: none;">
<h2>Interacting with the server</h2>
</a>
<p>CSS is still under active development, and as such the easiest and fastest way
to understand what functionality is supported is to read the integration tests.
This section is only intended as a high level summary of what&#39;s supported.</p>
<p>The server supports low-level interaction via HTTP methods, such as <code>GET</code>,
<code>PUT</code>, <code>HEAD</code>, ...</p>
<p>Below, we provide several examples on how to interact with the server using
<code>curl</code>.</p>
<a href="#post-creating-a-new-pod" id="post-creating-a-new-pod" style="color: inherit; text-decoration: none;">
<h3><code>POST</code>: Creating a new pod</h3>
</a>
<p>Create a pod using an external WebID for authentication:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -X POST -H </span><span style="color: #A31515">&quot;Content-Type: application/json&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> -d </span><span style="color: #A31515">&#039;{&quot;login&quot;: &quot;timbl&quot;, &quot;webId&quot;: &quot;http://timbl.inrupt.net/profile/card#me&quot;}&#039;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/pods</span>
</code></pre>
<a href="#put-creating-resources-for-a-given-url" id="put-creating-resources-for-a-given-url" style="color: inherit; text-decoration: none;">
<h3><code>PUT</code>: Creating resources for a given URL</h3>
</a>
<p>Create a plain text file:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -X PUT -H </span><span style="color: #A31515">&quot;Content-Type: text/plain&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> -d </span><span style="color: #A31515">&quot;abc&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/myfile.txt</span>
</code></pre>
<p>Create a turtle file:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -X PUT -H </span><span style="color: #A31515">&quot;Content-Type: text/turtle&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> -d </span><span style="color: #A31515">&quot;&lt;ex:s&gt; &lt;ex:p&gt; &lt;ex:o&gt;.&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/myfile.ttl</span>
</code></pre>
<a href="#post-creating-resources-at-a-generated-url" id="post-creating-resources-at-a-generated-url" style="color: inherit; text-decoration: none;">
<h3><code>POST</code>: Creating resources at a generated URL</h3>
</a>
<p>Create a plain text file:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -X POST -H </span><span style="color: #A31515">&quot;Content-Type: text/plain&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> -d </span><span style="color: #A31515">&quot;abc&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/</span>
</code></pre>
<p>Create a turtle file:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -X POST -H </span><span style="color: #A31515">&quot;Content-Type: text/turtle&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> -d </span><span style="color: #A31515">&quot;&lt;ex:s&gt; &lt;ex:p&gt; &lt;ex:o&gt;.&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/</span>
</code></pre>
<p>The response&#39;s <code>Location</code> header will contain the URL of the created resource.</p>
<a href="#get-retrieving-resources" id="get-retrieving-resources" style="color: inherit; text-decoration: none;">
<h3><code>GET</code>: Retrieving resources</h3>
</a>
<p>Retrieve a plain text file:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -H </span><span style="color: #A31515">&quot;Accept: text/plain&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/myfile.txt</span>
</code></pre>
<p>Retrieve a turtle file:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -H </span><span style="color: #A31515">&quot;Accept: text/turtle&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/myfile.ttl</span>
</code></pre>
<p>Retrieve a turtle file in a different serialization:</p>
<pre><code class="language-shell"><span style="color: #000000">curl -H </span><span style="color: #A31515">&quot;Accept: application/ld+json&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/myfile.ttl</span>
</code></pre>
<a href="#delete-deleting-resources" id="delete-deleting-resources" style="color: inherit; text-decoration: none;">
<h3><code>DELETE</code>: Deleting resources</h3>
</a>
<pre><code class="language-shell"><span style="color: #000000">curl -X DELETE http://localhost:3000/myfile.txt</span>
</code></pre>
<a href="#patch-modifying-resources" id="patch-modifying-resources" style="color: inherit; text-decoration: none;">
<h3><code>PATCH</code>: Modifying resources</h3>
</a>
<p>Currently, only patches over RDF resources are supported using <a href="https://www.w3.org/TR/sparql11-update/">SPARQL Update</a>
queries without <code>WHERE</code> clause.</p>
<pre><code class="language-shell"><span style="color: #000000">curl -X PATCH -H </span><span style="color: #A31515">&quot;Content-Type: application/sparql-update&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> -d </span><span style="color: #A31515">&quot;INSERT DATA { &lt;ex:s2&gt; &lt;ex:p2&gt; &lt;ex:o2&gt; }&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/myfile.ttl</span>
</code></pre>
<a href="#head-retrieve-resources-headers" id="head-retrieve-resources-headers" style="color: inherit; text-decoration: none;">
<h3><code>HEAD</code>: Retrieve resources headers</h3>
</a>
<pre><code class="language-shell"><span style="color: #000000">curl -I -H </span><span style="color: #A31515">&quot;Accept: text/plain&quot;</span><span style="color: #000000"> \</span>
<span style="color: #000000"> http://localhost:3000/myfile.txt</span>
</code></pre>
<a href="#options-retrieve-resources-communication-options" id="options-retrieve-resources-communication-options" style="color: inherit; text-decoration: none;">
<h3><code>OPTIONS</code>: Retrieve resources communication options</h3>
</a>
<pre><code class="language-shell"><span style="color: #000000">curl -X OPTIONS -i http://localhost:3000/myfile.txt</span>
</code></pre>
<a href="#run-using-docker" id="run-using-docker" style="color: inherit; text-decoration: none;">
<h2>Run using Docker</h2>
</a>
<p>A Docker image is available to run the containerised Solid Community Server against your filesystem.</p>
<p>Common usage:</p>
<ul>
<li>Build the Docker image<pre><code class="language-shell"><span style="color: #000000">docker build --rm -f Dockerfile -t css:latest </span><span style="color: #795E26">.</span>
</code></pre>
</li>
<li>Run the image against your <code>~/Solid</code> directory on <code>http://localhost:3000</code><pre><code class="language-shell"><span style="color: #000000">docker run --rm -v ~/Solid:/data -p 3000:3000 -it css:latest</span>
</code></pre>
</li>
<li>Use alternative versions of the built in config. The filestorage is just the default configuration, you can override with any of the configurations included with the server<pre><code class="language-shell"><span style="color: #000000">docker run --rm -p 3000:3000 -it css:latest -c config/config-default.json</span>
</code></pre>
Or override it with your own config mapped to the right directory<pre><code class="language-shell"><span style="color: #000000">docker run --rm -v ~/solid-config:/config -p 3000:3000 -it css:latest -c /config/my-config.json</span>
</code></pre>
</li>
</ul>
<a href="#using-the-identity-provider" id="using-the-identity-provider" style="color: inherit; text-decoration: none;">
<h2>Using the identity provider</h2>
</a>
<ol>
<li><p>Launch the Community Solid Server:</p>
<pre><code class="language-bash"><span style="color: #000000">git clone git@github.com:solid/community-server.git</span>
<span style="color: #795E26">cd</span><span style="color: #000000"> community-server</span>
<span style="color: #000000">npm ci</span>
<span style="color: #000000">npm start</span>
</code></pre>
</li>
<li><p>To use the identity provider, you need a compatible client application.</p>
<p> You can use for example <code>@inrupt/solid-client-authn-js</code>:</p>
<pre><code class="language-bash"><span style="color: #000000">git clone https://github.com/inrupt/solid-client-authn-js</span>
<span style="color: #795E26">cd</span><span style="color: #000000"> solid-client-authn-js</span>
<span style="color: #000000">npm ci</span>
<span style="color: #795E26">cd</span><span style="color: #000000"> packages/node/example/demoClientApp/</span>
<span style="color: #000000">npm ci</span>
<span style="color: #000000">npm start</span>
</code></pre>
<p> Go to <code>http://localhost:3001</code>.</p>
</li>
<li><p>Use the base URL of your running CSS instance to as Identity provider, for
example <code>http://localhost:3000</code>, to fill the form. Click the <code>login</code> button.</p>
</li>
<li><p>Follow the instructions to register/login/...</p>
<p> A WebID hosted in your pod will be required to complete registration.</p>
<p> In your running community server, you could create <code>http://localhost:3000/profile/card</code>
with the following content:</p>
<pre><code class="language-turtle">PREFIX : &lt;#&gt;
PREFIX solid: &lt;http://www.w3.org/ns/solid/terms#&gt;
:me solid:oidcIssuer &lt;http://localhost:3000/&gt; .
</code></pre>
<p> When registering, follow the on screen instructions and add the OIDC issuer
registration token to your WebID, which you can do for example by PATCHing
<code>http://localhost:3000/profile/card</code> with:</p>
<pre><code class="language-turtle">PREFIX : &lt;#&gt;
PREFIX solid: &lt;http://www.w3.org/ns/solid/terms#&gt;
INSERT DATA {
:me solid:oidcIssuerRegistrationToken &quot;IDP_TOKEN&quot; .
}
</code></pre>
</li>
<li><p>Once logged in, you are redirected to your client app, running for example on
<code>http://localhost:3001/</code>.</p>
</li>
<li><p>You&#39;re now authenticated and can fetch public and private resources.</p>
</li>
</ol>
<p>You can register and/or create a pod by going to <code>/idp/register</code> after starting the server.
The input you need to provide depends on the chosen options,
as is indicated next to the text fields.
After submitting, you will get a summary of everything that was created.
Below are descriptions of the 3 available options.</p>
<a href="#1-create-new-webid" id="1-create-new-webid" style="color: inherit; text-decoration: none;">
<h3>1. Create new WebID</h3>
</a>
<p>Enabling this option will create a new WebID to be used for authentication.
Since a WebID needs to be stored and registered somewhere to be used,
this option also requires options 2 &amp; 3 below to be enabled.</p>
<p>In case you do not choose this option,
you will have to provide your own WebID.
The server will then ask to verify that you are the owner of that WebID
by adding a specific token to it.</p>
<a href="#2-register-your-webid-with-the-idp" id="2-register-your-webid-with-the-idp" style="color: inherit; text-decoration: none;">
<h3>2. Register your WebID with the IDP</h3>
</a>
<p>This allows you to authenticate with your WebID using this server.
After doing this you can use a client such as <code>@inrupt/solid-client-authn-js</code>
to log in with the chosen email/password combination and this server as issuer.
In case you are using an external WebID,
it is important to add the correct <code>solid:oidcIssuer</code> triple to your profile after registering.</p>
<a href="#3-create-a-new-pod" id="3-create-a-new-pod" style="color: inherit; text-decoration: none;">
<h3>3. Create a new pod</h3>
</a>
<p>Creates a new Solid pod.
The location of the pod will be determined by the chosen pod name.
In case a WebID is also being created, it will be located inside this pod.</p>
<a href="#developing-server-code" id="developing-server-code" style="color: inherit; text-decoration: none;">
<h2>Developing server code</h2>
</a>
<p>The <a href="https://solid.github.io/community-server/docs/">📗 API documentation</a> and
the <a href="https://rubenverborgh.github.io/solid-server-architecture/solid-architecture-v1-3-0.pdf">📐 architectural
diagram</a>
can help you find your way. The organization and structure of the classes and
components in the <a href="/src">src folder</a> is designed to align with this
architectural diagram to the extent possible (i.e. the <a href="src/ldp">ldp folder</a>
should contain all the components from the <code>ldp</code> section of the diagram.</p>
<p>If you are interested in helping out with the development of this server, be
sure to have a look at the <a href="guides/developer-notes.md">📓 developer
notes</a> and
<a href="https://github.com/solid/community-server/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">🛠 good first
issues</a>.</p>
</div>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class=" ">
<a href="modules.html">Exports</a>
<a href="modules.html">Modules</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/authentication_bearerwebidextractor.html">authentication/<wbr>Bearer<wbr>Web<wbr>IdExtractor</a>
@@ -460,15 +345,18 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/identity_interaction_util_interactioncompleter.html">identity/interaction/util/<wbr>Interaction<wbr>Completer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/identity_interaction_util_issuerownershipvalidator.html">identity/interaction/util/<wbr>Issuer<wbr>Ownership<wbr>Validator</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/identity_interaction_util_ownershipvalidator.html">identity/interaction/util/<wbr>Ownership<wbr>Validator</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/identity_interaction_util_templaterenderer.html">identity/interaction/util/<wbr>Template<wbr>Renderer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/identity_ownership_nocheckownershipvalidator.html">identity/ownership/<wbr>NoCheck<wbr>Ownership<wbr>Validator</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/identity_ownership_ownershipvalidator.html">identity/ownership/<wbr>Ownership<wbr>Validator</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/identity_ownership_tokenownershipvalidator.html">identity/ownership/<wbr>Token<wbr>Ownership<wbr>Validator</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/identity_storage_adapterfactory.html">identity/storage/<wbr>Adapter<wbr>Factory</a>
</li>
@@ -487,6 +375,9 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/init_aclinitializer.html">init/<wbr>Acl<wbr>Initializer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/init_app.html">init/<wbr>App</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/init_apprunner.html">init/<wbr>App<wbr>Runner</a>
</li>
@@ -505,6 +396,12 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/init_serverinitializer.html">init/<wbr>Server<wbr>Initializer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/init_final_finalizable.html">init/final/<wbr>Finalizable</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/init_final_parallelfinalizer.html">init/final/<wbr>Parallel<wbr>Finalizer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_authenticatedldphandler.html">ldp/<wbr>Authenticated<wbr>Ldp<wbr>Handler</a>
</li>
@@ -554,7 +451,10 @@ INSERT DATA {
<a href="modules/ldp_http_bodyparser.html">ldp/http/<wbr>Body<wbr>Parser</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_errorresponsewriter.html">ldp/http/<wbr>Error<wbr>Response<wbr>Writer</a>
<a href="modules/ldp_http_convertingerrorhandler.html">ldp/http/<wbr>Converting<wbr>Error<wbr>Handler</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_errorhandler.html">ldp/http/<wbr>Error<wbr>Handler</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_originalurlextractor.html">ldp/http/<wbr>Original<wbr>Url<wbr>Extractor</a>
@@ -584,7 +484,7 @@ INSERT DATA {
<a href="modules/ldp_http_targetextractor.html">ldp/http/<wbr>Target<wbr>Extractor</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_metadata_basicmetadataextractor.html">ldp/http/metadata/<wbr>Basic<wbr>Metadata<wbr>Extractor</a>
<a href="modules/ldp_http_texterrorhandler.html">ldp/http/<wbr>Text<wbr>Error<wbr>Handler</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_metadata_constantmetadatawriter.html">ldp/http/metadata/<wbr>Constant<wbr>Metadata<wbr>Writer</a>
@@ -601,9 +501,6 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/ldp_http_metadata_mappedmetadatawriter.html">ldp/http/metadata/<wbr>Mapped<wbr>Metadata<wbr>Writer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_metadata_metadataextractor.html">ldp/http/metadata/<wbr>Metadata<wbr>Extractor</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_metadata_metadataparser.html">ldp/http/metadata/<wbr>Metadata<wbr>Parser</a>
</li>
@@ -616,6 +513,9 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/ldp_http_metadata_wacallowmetadatawriter.html">ldp/http/metadata/<wbr>Wac<wbr>Allow<wbr>Metadata<wbr>Writer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_metadata_wwwauthmetadatawriter.html">ldp/http/metadata/<wbr>Www<wbr>Auth<wbr>Metadata<wbr>Writer</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/ldp_http_response_createdresponsedescription.html">ldp/http/response/<wbr>Created<wbr>Response<wbr>Description</a>
</li>
@@ -721,9 +621,6 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/pods_podmanager.html">pods/<wbr>Pod<wbr>Manager</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/pods_podmanagerhttphandler.html">pods/<wbr>Pod<wbr>Manager<wbr>Http<wbr>Handler</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/pods_generate_basecomponentsjsfactory.html">pods/generate/<wbr>Base<wbr>Components<wbr>JsFactory</a>
</li>
@@ -778,12 +675,6 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/pods_settings_podsettings.html">pods/settings/<wbr>Pod<wbr>Settings</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/pods_settings_podsettingsjsonparser.html">pods/settings/<wbr>Pod<wbr>Settings<wbr>Json<wbr>Parser</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/pods_settings_podsettingsparser.html">pods/settings/<wbr>Pod<wbr>Settings<wbr>Parser</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/server_basehttpserverfactory.html">server/<wbr>Base<wbr>Http<wbr>Server<wbr>Factory</a>
</li>
@@ -886,6 +777,12 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/storage_conversion_conversionutil.html">storage/conversion/<wbr>Conversion<wbr>Util</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/storage_conversion_errortoquadconverter.html">storage/conversion/<wbr>Error<wbr>ToQuad<wbr>Converter</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/storage_conversion_errortotemplateconverter.html">storage/conversion/<wbr>Error<wbr>ToTemplate<wbr>Converter</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/storage_conversion_ifneededconverter.html">storage/conversion/<wbr>IfNeeded<wbr>Converter</a>
</li>
@@ -937,6 +834,9 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/storage_mapping_subdomainextensionbasedmapper.html">storage/mapping/<wbr>Subdomain<wbr>Extension<wbr>Based<wbr>Mapper</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/storage_patch_convertingpatchhandler.html">storage/patch/<wbr>Converting<wbr>Patch<wbr>Handler</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/storage_patch_patchhandler.html">storage/patch/<wbr>Patch<wbr>Handler</a>
</li>
@@ -991,9 +891,6 @@ INSERT DATA {
<li class=" tsd-kind-module">
<a href="modules/util_errors_badrequesthttperror.html">util/errors/<wbr>Bad<wbr>Request<wbr>Http<wbr>Error</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/util_errors_configurationerror.html">util/errors/<wbr>Configuration<wbr>Error</a>
</li>
<li class=" tsd-kind-module">
<a href="modules/util_errors_conflicthttperror.html">util/errors/<wbr>Conflict<wbr>Http<wbr>Error</a>
</li>