mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
Deployed 9a5fc67 to 5.x with MkDocs 1.3.1 and mike 1.1.2
This commit is contained in:
parent
7c43e55d5c
commit
12e9256884
@ -967,7 +967,7 @@ or they will not get a component file.</p>
|
|||||||
All the community server configurations can be found in
|
All the community server configurations can be found in
|
||||||
the <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/tree/main/config/"><code>config</code> folder</a>.
|
the <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/tree/main/config/"><code>config</code> folder</a>.
|
||||||
That folder also contains information about how different pre-defined configurations can be used.</p>
|
That folder also contains information about how different pre-defined configurations can be used.</p>
|
||||||
<p>A single component in such a configuration file might look as follows:
|
<p>A single component in such a configuration file might look as follows:</p>
|
||||||
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
|
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"comment"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Storage used for account management."</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"comment"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Storage used for account management."</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"@id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"urn:solid-server:default:AccountStorage"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"@id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"urn:solid-server:default:AccountStorage"</span><span class="p">,</span><span class="w"></span>
|
||||||
@ -976,14 +976,17 @@ That folder also contains information about how different pre-defined configurat
|
|||||||
<span class="w"> </span><span class="nt">"baseUrl"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"@id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"urn:solid-server:default:variable:baseUrl"</span><span class="w"> </span><span class="p">},</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"baseUrl"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"@id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"urn:solid-server:default:variable:baseUrl"</span><span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"container"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/.internal/accounts/"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"container"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/.internal/accounts/"</span><span class="w"></span>
|
||||||
<span class="p">}</span><span class="w"></span>
|
<span class="p">}</span><span class="w"></span>
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>With the corresponding constructor of the <code>JsonResourceStorage</code> class:
|
<p>With the corresponding constructor of the <code>JsonResourceStorage</code> class:</p>
|
||||||
<div class="highlight"><pre><span></span><code><span class="k">public</span><span class="w"> </span><span class="kr">constructor</span><span class="p">(</span><span class="nx">source</span><span class="o">:</span><span class="w"> </span><span class="kt">ResourceStore</span><span class="p">,</span><span class="w"> </span><span class="nx">baseUrl</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">,</span><span class="w"> </span><span class="nx">container</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">)</span><span class="w"></span>
|
<div class="highlight"><pre><span></span><code><span class="k">public</span><span class="w"> </span><span class="kr">constructor</span><span class="p">(</span><span class="nx">source</span><span class="o">:</span><span class="w"> </span><span class="kt">ResourceStore</span><span class="p">,</span><span class="w"> </span><span class="nx">baseUrl</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">,</span><span class="w"> </span><span class="nx">container</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">)</span><span class="w"></span>
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>The important elements here are the following:
|
<p>The important elements here are the following:</p>
|
||||||
* <code>"comment"</code>: <em>(optional)</em> A description of this component.
|
<ul>
|
||||||
* <code>"@id"</code>: <em>(optional)</em> A unique identifier of this component, which allows it to be used as parameter values in different places.
|
<li><code>"comment"</code>: <em>(optional)</em> A description of this component.</li>
|
||||||
* <code>"@type"</code>: The class name of the component. This must be a TypeScript class name that is exported via <code>index.ts</code>.</p>
|
<li><code>"@id"</code>: <em>(optional)</em> A unique identifier of this component, which allows it to be used as parameter values in
|
||||||
|
different places.</li>
|
||||||
|
<li><code>"@type"</code>: The class name of the component. This must be a TypeScript class name that is exported via <code>index.ts</code>.</li>
|
||||||
|
</ul>
|
||||||
<p>As you can see from the constructor, the other fields are direct mappings from the constructor parameters.
|
<p>As you can see from the constructor, the other fields are direct mappings from the constructor parameters.
|
||||||
<code>source</code> references another object, which we refer to using its identifier <code>urn:solid-server:default:ResourceStore</code>.
|
<code>source</code> references another object, which we refer to using its identifier <code>urn:solid-server:default:ResourceStore</code>.
|
||||||
<code>baseUrl</code> is just a string, but here we use a variable that was set before calling Components.js
|
<code>baseUrl</code> is just a string, but here we use a variable that was set before calling Components.js
|
||||||
|
@ -1004,7 +1004,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<h1 id="handling-http-requests">Handling HTTP requests<a class="headerlink" href="#handling-http-requests" title="Permanent link">¶</a></h1>
|
<h1 id="handling-http-requests">Handling HTTP requests<a class="headerlink" href="#handling-http-requests" title="Permanent link">¶</a></h1>
|
||||||
<p>The direction of the arrows was changed slightly here to make the graph readable.
|
<p>The direction of the arrows was changed slightly here to make the graph readable.</p>
|
||||||
<pre class="mermaid"><code>flowchart LR
|
<pre class="mermaid"><code>flowchart LR
|
||||||
HttpHandler("<strong>HttpHandler</strong><br>SequenceHandler")
|
HttpHandler("<strong>HttpHandler</strong><br>SequenceHandler")
|
||||||
HttpHandler --> HttpHandlerArgs
|
HttpHandler --> HttpHandlerArgs
|
||||||
@ -1032,7 +1032,7 @@
|
|||||||
SetupHandler --> OidcHandler
|
SetupHandler --> OidcHandler
|
||||||
OidcHandler --> AuthResourceHttpHandler
|
OidcHandler --> AuthResourceHttpHandler
|
||||||
AuthResourceHttpHandler --> IdentityProviderHttpHandler
|
AuthResourceHttpHandler --> IdentityProviderHttpHandler
|
||||||
IdentityProviderHttpHandler --> LdpHandler</code></pre></p>
|
IdentityProviderHttpHandler --> LdpHandler</code></pre>
|
||||||
<p>The <code>HttpHandler</code> is responsible for handling an incoming HTTP request.
|
<p>The <code>HttpHandler</code> is responsible for handling an incoming HTTP request.
|
||||||
The request will always first go through the <code>Middleware</code>,
|
The request will always first go through the <code>Middleware</code>,
|
||||||
where certain required headers will be added such as CORS headers.</p>
|
where certain required headers will be added such as CORS headers.</p>
|
||||||
|
@ -1040,7 +1040,7 @@ while the <code>WorkerInitializer</code> will trigger for every worker thread.
|
|||||||
Although if your server setup is single-threaded, which is the default,
|
Although if your server setup is single-threaded, which is the default,
|
||||||
there is no relevant difference between those two.</p>
|
there is no relevant difference between those two.</p>
|
||||||
<h3 id="primaryinitializer">PrimaryInitializer<a class="headerlink" href="#primaryinitializer" title="Permanent link">¶</a></h3>
|
<h3 id="primaryinitializer">PrimaryInitializer<a class="headerlink" href="#primaryinitializer" title="Permanent link">¶</a></h3>
|
||||||
<p><pre class="mermaid"><code>flowchart TD
|
<pre class="mermaid"><code>flowchart TD
|
||||||
PrimaryInitializer("<strong>PrimaryInitializer</strong><br>ProcessHandler")
|
PrimaryInitializer("<strong>PrimaryInitializer</strong><br>ProcessHandler")
|
||||||
PrimaryInitializer --> PrimarySequenceInitializer("<strong>PrimarySequenceInitializer</strong><br>SequenceHandler")
|
PrimaryInitializer --> PrimarySequenceInitializer("<strong>PrimarySequenceInitializer</strong><br>SequenceHandler")
|
||||||
PrimarySequenceInitializer --> PrimarySequenceInitializerArgs
|
PrimarySequenceInitializer --> PrimarySequenceInitializerArgs
|
||||||
@ -1054,7 +1054,7 @@ there is no relevant difference between those two.</p>
|
|||||||
|
|
||||||
CleanupInitializer --> PrimaryParallelInitializer
|
CleanupInitializer --> PrimaryParallelInitializer
|
||||||
PrimaryParallelInitializer --> WorkerManager</code></pre>
|
PrimaryParallelInitializer --> WorkerManager</code></pre>
|
||||||
The above is a simplification of all the initializers that are present in the <code>PrimaryInitializer</code>
|
<p>The above is a simplification of all the initializers that are present in the <code>PrimaryInitializer</code>
|
||||||
as there are several smaller initializers that also trigger but are less relevant here.</p>
|
as there are several smaller initializers that also trigger but are less relevant here.</p>
|
||||||
<p>The <code>CleanupInitializer</code> is an initializer that cleans up anything
|
<p>The <code>CleanupInitializer</code> is an initializer that cleans up anything
|
||||||
that might have remained from a previous server start
|
that might have remained from a previous server start
|
||||||
@ -1065,7 +1065,7 @@ An example of this is file-based locking components which might need to remove a
|
|||||||
This makes it easier for users to add initializers by being able to append to its handlers.</p>
|
This makes it easier for users to add initializers by being able to append to its handlers.</p>
|
||||||
<p>The <code>WorkerManager</code> is responsible for setting up the worker threads, if any.</p>
|
<p>The <code>WorkerManager</code> is responsible for setting up the worker threads, if any.</p>
|
||||||
<h3 id="workerinitializer">WorkerInitializer<a class="headerlink" href="#workerinitializer" title="Permanent link">¶</a></h3>
|
<h3 id="workerinitializer">WorkerInitializer<a class="headerlink" href="#workerinitializer" title="Permanent link">¶</a></h3>
|
||||||
<p><pre class="mermaid"><code>flowchart TD
|
<pre class="mermaid"><code>flowchart TD
|
||||||
WorkerInitializer("<strong>WorkerInitializer</strong><br>ProcessHandler")
|
WorkerInitializer("<strong>WorkerInitializer</strong><br>ProcessHandler")
|
||||||
WorkerInitializer --> WorkerSequenceInitializer("<strong>WorkerSequenceInitializer</strong><br>SequenceHandler")
|
WorkerInitializer --> WorkerSequenceInitializer("<strong>WorkerSequenceInitializer</strong><br>SequenceHandler")
|
||||||
WorkerSequenceInitializer --> WorkerSequenceInitializerArgs
|
WorkerSequenceInitializer --> WorkerSequenceInitializerArgs
|
||||||
@ -1077,13 +1077,13 @@ This makes it easier for users to add initializers by being able to append to it
|
|||||||
end
|
end
|
||||||
|
|
||||||
WorkerParallelInitializer --> ServerInitializer</code></pre>
|
WorkerParallelInitializer --> ServerInitializer</code></pre>
|
||||||
The <code>WorkerInitializer</code> is quite similar to the <code>PrimaryInitializer</code> but triggers once per worker thread.
|
<p>The <code>WorkerInitializer</code> is quite similar to the <code>PrimaryInitializer</code> but triggers once per worker thread.
|
||||||
Like the <code>PrimaryParallelInitializer</code>, the <code>WorkerParallelInitializer</code> can be used
|
Like the <code>PrimaryParallelInitializer</code>, the <code>WorkerParallelInitializer</code> can be used
|
||||||
to add any custom initializers that need to run.</p>
|
to add any custom initializers that need to run.</p>
|
||||||
<h3 id="serverinitializer">ServerInitializer<a class="headerlink" href="#serverinitializer" title="Permanent link">¶</a></h3>
|
<h3 id="serverinitializer">ServerInitializer<a class="headerlink" href="#serverinitializer" title="Permanent link">¶</a></h3>
|
||||||
<p>The <code>ServerInitializer</code> is the initializer that finally starts up the server by listening to the relevant port,
|
<p>The <code>ServerInitializer</code> is the initializer that finally starts up the server by listening to the relevant port,
|
||||||
once all the initialization described above is finished.
|
once all the initialization described above is finished.
|
||||||
This is an example of a component that differs based on some of the choices made during configuration.
|
This is an example of a component that differs based on some of the choices made during configuration.</p>
|
||||||
<pre class="mermaid"><code>flowchart TD
|
<pre class="mermaid"><code>flowchart TD
|
||||||
ServerInitializer("<strong>ServerInitializer</strong><br>ServerInitializer")
|
ServerInitializer("<strong>ServerInitializer</strong><br>ServerInitializer")
|
||||||
ServerInitializer --> WebSocketServerFactory("<strong>ServerFactory</strong><br>WebSocketServerFactory")
|
ServerInitializer --> WebSocketServerFactory("<strong>ServerFactory</strong><br>WebSocketServerFactory")
|
||||||
@ -1092,7 +1092,7 @@ This is an example of a component that differs based on some of the choices made
|
|||||||
|
|
||||||
ServerInitializer2("<strong>ServerInitializer</strong><br>ServerInitializer")
|
ServerInitializer2("<strong>ServerInitializer</strong><br>ServerInitializer")
|
||||||
ServerInitializer2 ---> BaseHttpServerFactory2("<strong>ServerFactory</strong><br>BaseHttpServerFactory")
|
ServerInitializer2 ---> BaseHttpServerFactory2("<strong>ServerFactory</strong><br>BaseHttpServerFactory")
|
||||||
BaseHttpServerFactory2 --> HttpHandler2("<strong>HttpHandler</strong><br><i>HttpHandler</i>")</code></pre></p>
|
BaseHttpServerFactory2 --> HttpHandler2("<strong>HttpHandler</strong><br><i>HttpHandler</i>")</code></pre>
|
||||||
<p>Depending on if the configurations necessary for websockets are imported or not,
|
<p>Depending on if the configurations necessary for websockets are imported or not,
|
||||||
the <code>urn:solid-server:default:ServerFactory</code> identifier will point to a different resource.
|
the <code>urn:solid-server:default:ServerFactory</code> identifier will point to a different resource.
|
||||||
There will always be a <code>BaseHttpServerFactory</code> that starts the HTTP(S) server,
|
There will always be a <code>BaseHttpServerFactory</code> that starts the HTTP(S) server,
|
||||||
|
@ -1019,7 +1019,7 @@ making a requesting agent have multiple credentials.</p>
|
|||||||
DPoPWebIdExtractor("<br>DPoPWebIdExtractor") --> BearerWebIdExtractor("<br>BearerWebIdExtractor")
|
DPoPWebIdExtractor("<br>DPoPWebIdExtractor") --> BearerWebIdExtractor("<br>BearerWebIdExtractor")
|
||||||
end</code></pre>
|
end</code></pre>
|
||||||
<p>Both of the WebID extractors make use of
|
<p>Both of the WebID extractors make use of
|
||||||
the (<code>access-token-verifier</code>)[https://github.com/CommunitySolidServer/access-token-verifier] library
|
the <a href="https://github.com/CommunitySolidServer/access-token-verifier"><code>access-token-verifier</code></a> library
|
||||||
to parse incoming tokens based on the <a href="https://solid.github.io/solid-oidc/">Solid-OIDC specification</a>.
|
to parse incoming tokens based on the <a href="https://solid.github.io/solid-oidc/">Solid-OIDC specification</a>.
|
||||||
Besides those there are always the public credentials, which everyone has.
|
Besides those there are always the public credentials, which everyone has.
|
||||||
All these credentials then get combined into a single union object.</p>
|
All these credentials then get combined into a single union object.</p>
|
||||||
@ -1042,7 +1042,8 @@ based on the request contents.</p>
|
|||||||
PatchModesExtractor("<strong>PatchModesExtractor</strong><br><i>ModesExtractor</i>") --> MethodModesExtractor("<br>MethodModesExtractor")
|
PatchModesExtractor("<strong>PatchModesExtractor</strong><br><i>ModesExtractor</i>") --> MethodModesExtractor("<br>MethodModesExtractor")
|
||||||
end</code></pre>
|
end</code></pre>
|
||||||
<p>The <code>IntermediateCreateExtractor</code> is responsible if requests try to create intermediate containers with a single request.
|
<p>The <code>IntermediateCreateExtractor</code> is responsible if requests try to create intermediate containers with a single request.
|
||||||
E.g., a PUT request to <code>/foo/bar/baz</code> should create both the <code>/foo/</code> and <code>/foo/bar/</code> containers in case they do not exist yet.
|
E.g., a PUT request to <code>/foo/bar/baz</code> should create both the <code>/foo/</code> and <code>/foo/bar/</code> containers in case they do not
|
||||||
|
exist yet.
|
||||||
This extractor makes sure that <code>create</code> permissions are also checked on those containers.</p>
|
This extractor makes sure that <code>create</code> permissions are also checked on those containers.</p>
|
||||||
<p>Modes can usually be determined based on just the HTTP methods,
|
<p>Modes can usually be determined based on just the HTTP methods,
|
||||||
which is what the <code>MethodModesExtractor</code> does.
|
which is what the <code>MethodModesExtractor</code> does.
|
||||||
|
@ -1047,12 +1047,14 @@ It follows these 3 steps:</p>
|
|||||||
<ol>
|
<ol>
|
||||||
<li>Use the <code>RequestParser</code> to convert the incoming data into an <code>Operation</code>.</li>
|
<li>Use the <code>RequestParser</code> to convert the incoming data into an <code>Operation</code>.</li>
|
||||||
<li>Send the <code>Operation</code> to the <code>AuthorizingHttpHandler</code> to receive either a <code>Representation</code> if the operation was a success,
|
<li>Send the <code>Operation</code> to the <code>AuthorizingHttpHandler</code> to receive either a <code>Representation</code> if the operation was a success,
|
||||||
or an <code>Error</code> in case something went wrong.</li>
|
or an <code>Error</code> in case something went wrong.<ul>
|
||||||
<li>In case of an error the <code>ErrorHandler</code> will convert the <code>Error</code> into a <code>ResponseDescription</code>.</li>
|
<li>In case of an error the <code>ErrorHandler</code> will convert the <code>Error</code> into a <code>ResponseDescription</code>.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li>Use the <code>ResponseWriter</code> to output the <code>ResponseDescription</code> as an HTTP response.</li>
|
<li>Use the <code>ResponseWriter</code> to output the <code>ResponseDescription</code> as an HTTP response.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<h2 id="parsing-the-request">Parsing the request<a class="headerlink" href="#parsing-the-request" title="Permanent link">¶</a></h2>
|
<h2 id="parsing-the-request">Parsing the request<a class="headerlink" href="#parsing-the-request" title="Permanent link">¶</a></h2>
|
||||||
<p><pre class="mermaid"><code>flowchart TD
|
<pre class="mermaid"><code>flowchart TD
|
||||||
RequestParser("<strong>RequestParser</strong><br>BasicRequestParser") --> RequestParserArgs
|
RequestParser("<strong>RequestParser</strong><br>BasicRequestParser") --> RequestParserArgs
|
||||||
subgraph RequestParserArgs[" "]
|
subgraph RequestParserArgs[" "]
|
||||||
TargetExtractor("<strong>TargetExtractor</strong><br>OriginalUrlExtractor")
|
TargetExtractor("<strong>TargetExtractor</strong><br>OriginalUrlExtractor")
|
||||||
@ -1063,7 +1065,7 @@ It follows these 3 steps:</p>
|
|||||||
end
|
end
|
||||||
|
|
||||||
OriginalUrlExtractor --> IdentifierStrategy("<strong>IdentifierStrategy</strong><br><i>IdentifierStrategy</i>")</code></pre>
|
OriginalUrlExtractor --> IdentifierStrategy("<strong>IdentifierStrategy</strong><br><i>IdentifierStrategy</i>")</code></pre>
|
||||||
The <code>BasicRequestParser</code> is mostly an aggregator of multiple smaller parsers that each handle a very specific part.</p>
|
<p>The <code>BasicRequestParser</code> is mostly an aggregator of multiple smaller parsers that each handle a very specific part.</p>
|
||||||
<h3 id="url">URL<a class="headerlink" href="#url" title="Permanent link">¶</a></h3>
|
<h3 id="url">URL<a class="headerlink" href="#url" title="Permanent link">¶</a></h3>
|
||||||
<p>This is a single class, the <code>OriginalUrlExtractor</code>, but fulfills the very important role
|
<p>This is a single class, the <code>OriginalUrlExtractor</code>, but fulfills the very important role
|
||||||
of making sure input URLs are handled consistently.</p>
|
of making sure input URLs are handled consistently.</p>
|
||||||
|
@ -1031,15 +1031,18 @@ The default configurations come with the following stores:</p>
|
|||||||
and all the entries in <code>config/storage/backend</code>.</p>
|
and all the entries in <code>config/storage/backend</code>.</p>
|
||||||
<h2 id="monitoringstore">MonitoringStore<a class="headerlink" href="#monitoringstore" title="Permanent link">¶</a></h2>
|
<h2 id="monitoringstore">MonitoringStore<a class="headerlink" href="#monitoringstore" title="Permanent link">¶</a></h2>
|
||||||
<p>This store emits the events that are necessary to emit notifications when resources change.</p>
|
<p>This store emits the events that are necessary to emit notifications when resources change.</p>
|
||||||
<p>There are 4 different events that can be emitted:
|
<p>There are 4 different events that can be emitted:</p>
|
||||||
- <code>this.emit('changed', identifier, activity)</code>: is emitted for every resource that was changed/effected by a call to the store.
|
<ul>
|
||||||
With activity being undefined or one of the available ActivityStream terms.
|
<li><code>this.emit('changed', identifier, activity)</code>: is emitted for every resource that was changed/effected by a
|
||||||
- <code>this.emit(AS.Create, identifier)</code>: is emitted for every resource that was created by the call to the store.
|
call to the store.
|
||||||
- <code>this.emit(AS.Update, identifier)</code>: is emitted for every resource that was updated by the call to the store.
|
With activity being undefined or one of the available ActivityStream terms.</li>
|
||||||
- <code>this.emit(AS.Delete, identifier)</code>: is emitted for every resource that was deleted by the call to the store.</p>
|
<li><code>this.emit(AS.Create, identifier)</code>: is emitted for every resource that was created by the call to the store.</li>
|
||||||
|
<li><code>this.emit(AS.Update, identifier)</code>: is emitted for every resource that was updated by the call to the store.</li>
|
||||||
|
<li><code>this.emit(AS.Delete, identifier)</code>: is emitted for every resource that was deleted by the call to the store.</li>
|
||||||
|
</ul>
|
||||||
<p>A <code>changed</code> event will always be emitted if a resource was changed.
|
<p>A <code>changed</code> event will always be emitted if a resource was changed.
|
||||||
If the correct metadata was set by the source <code>ResourceStore</code>, an additional field will be sent along indicating the type of change,
|
If the correct metadata was set by the source <code>ResourceStore</code>, an additional field will be sent along indicating the
|
||||||
and an additional corresponding event will be emitted, depending on what the change is.</p>
|
type of change, and an additional corresponding event will be emitted, depending on what the change is.</p>
|
||||||
<h2 id="indexrepresentationstore">IndexRepresentationStore<a class="headerlink" href="#indexrepresentationstore" title="Permanent link">¶</a></h2>
|
<h2 id="indexrepresentationstore">IndexRepresentationStore<a class="headerlink" href="#indexrepresentationstore" title="Permanent link">¶</a></h2>
|
||||||
<p>When doing a GET request on a container <code>/container/</code>,
|
<p>When doing a GET request on a container <code>/container/</code>,
|
||||||
this container returns the contents of <code>/container/index.html</code> instead if HTML is the preferred response type.
|
this container returns the contents of <code>/container/index.html</code> instead if HTML is the preferred response type.
|
||||||
@ -1070,15 +1073,13 @@ the SPARQL backend only accepts triples for example,
|
|||||||
that is also handled here</p>
|
that is also handled here</p>
|
||||||
<h2 id="dataaccessorbasedstore">DataAccessorBasedStore<a class="headerlink" href="#dataaccessorbasedstore" title="Permanent link">¶</a></h2>
|
<h2 id="dataaccessorbasedstore">DataAccessorBasedStore<a class="headerlink" href="#dataaccessorbasedstore" title="Permanent link">¶</a></h2>
|
||||||
<p>Large parts of the requirements of the Solid protocol specification are resolved by the <code>DataAccessorBasedStore</code>:
|
<p>Large parts of the requirements of the Solid protocol specification are resolved by the <code>DataAccessorBasedStore</code>:
|
||||||
POST only working on containers,
|
POST only working on containers, DELETE not working on non-empty containers,
|
||||||
DELETE not working on non-empty containers,
|
|
||||||
generating <code>ldp:contains</code> triples for containers, etc.
|
generating <code>ldp:contains</code> triples for containers, etc.
|
||||||
Most of this behaviour is independent of how the data is stored which is why it can be generalized here.
|
Most of this behaviour is independent of how the data is stored which is why it can be generalized here.
|
||||||
The store's name comes from the fact that it makes use of <code>DataAccessor</code>s to handle the read/write of resources.
|
The store's name comes from the fact that it makes use of <code>DataAccessor</code>s to handle the read/write of resources.
|
||||||
A <code>DataAccessor</code> is a simple interface that only focuses on handling the data.
|
A <code>DataAccessor</code> is a simple interface that only focuses on handling the data.
|
||||||
It does not concern itself with any of the necessary Solid checks as it assumes those have already been made.
|
It does not concern itself with any of the necessary Solid checks as it assumes those have already been made.
|
||||||
This means that if a storage method needs to be supported,
|
This means that if a storage method needs to be supported, only a new <code>DataAccessor</code> needs to be made,
|
||||||
only a new <code>DataAccessor</code> needs to be made,
|
|
||||||
after which it can be plugged into the rest of the server.</p>
|
after which it can be plugged into the rest of the server.</p>
|
||||||
|
|
||||||
|
|
||||||
|
@ -572,6 +572,13 @@
|
|||||||
Architecture diagrams
|
Architecture diagrams
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#features" class="md-nav__link">
|
||||||
|
Features
|
||||||
|
</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
@ -915,6 +922,13 @@
|
|||||||
Architecture diagrams
|
Architecture diagrams
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#features" class="md-nav__link">
|
||||||
|
Features
|
||||||
|
</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
@ -961,7 +975,7 @@ We will use an example below to explain the formatting used throughout the archi
|
|||||||
end</code></pre>
|
end</code></pre>
|
||||||
<p>Below is a summary of how to interpret such diagrams:</p>
|
<p>Below is a summary of how to interpret such diagrams:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Rounded red box: component instantiated in the Components.js <a href="../dependency-injection/">configuration</a>.</li>
|
<li>Rounded red box: component instantiated in the Components.js <a href="../dependency-injection/">configuration</a>.<ul>
|
||||||
<li>First line:<ul>
|
<li>First line:<ul>
|
||||||
<li><strong>Bold text</strong>: shorthand of the instance identifier. In case the full URI is not specified,
|
<li><strong>Bold text</strong>: shorthand of the instance identifier. In case the full URI is not specified,
|
||||||
it can usually be found by prepending <code>urn:solid-server:default:</code> to the shorthand identifier.</li>
|
it can usually be found by prepending <code>urn:solid-server:default:</code> to the shorthand identifier.</li>
|
||||||
@ -974,13 +988,15 @@ We will use an example below to explain the formatting used throughout the archi
|
|||||||
Will be used if the actual class is not relevant for the explanation or can differ.</li>
|
Will be used if the actual class is not relevant for the explanation or can differ.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li>Square grey box: the parameters of the linked instance.</li>
|
<li>Square grey box: the parameters of the linked instance.</li>
|
||||||
<li>Arrow: links an instance to its parameters. Can also be used to indicate the order of parameters if relevant.</li>
|
<li>Arrow: links an instance to its parameters. Can also be used to indicate the order of parameters if relevant.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>For example, in the above, <strong>LdpHandler</strong> is a shorthand for the actual identifier <code>urn:solid-server:default:LdpHandler</code>
|
<p>For example, in the above, <strong>LdpHandler</strong> is a shorthand for the actual identifier <code>urn:solid-server:default:LdpHandler</code>
|
||||||
and is an instance of <code>ParsingHttpHandler</code>. It has 4 parameters,
|
and is an instance of <code>ParsingHttpHandler</code>. It has 4 parameters,
|
||||||
one of which has no identifier but is an instance of <code>AuthorizingHttpHandler</code>.</p>
|
one of which has no identifier but is an instance of <code>AuthorizingHttpHandler</code>.</p>
|
||||||
<h1 id="features">Features<a class="headerlink" href="#features" title="Permanent link">¶</a></h1>
|
<h2 id="features">Features<a class="headerlink" href="#features" title="Permanent link">¶</a></h2>
|
||||||
<p>Below are the sections that go deeper into the features of the server and how those work.</p>
|
<p>Below are the sections that go deeper into the features of the server and how those work.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="../features/cli/">How Command Line Arguments are parsed and used</a></li>
|
<li><a href="../features/cli/">How Command Line Arguments are parsed and used</a></li>
|
||||||
|
@ -899,14 +899,18 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>Verify that the <code>RELEASE_NOTES.md</code> are correct.</li>
|
<li>Verify that the <code>RELEASE_NOTES.md</code> are correct.</li>
|
||||||
<li><code>npm run release -- -r major</code><ul>
|
<li><code>npm run release -- -r major</code><ul>
|
||||||
<li>Automatically updates Components.js references to the new version. Committed with <code>chore(release): Update configs to vx.0.0</code>.</li>
|
<li>Automatically updates Components.js references to the new version.
|
||||||
<li>Updates the <code>package.json</code>, and generates the new entries in <code>CHANGELOG.md</code>. Commited with <code>chore(release): Release version vx.0.0 of the npm package</code></li>
|
Committed with <code>chore(release): Update configs to vx.0.0</code>.</li>
|
||||||
<li>Optionally run <code>npx commit-and-tag-version -r major --dry-run</code> to preview the commands that will be run and the changes to <code>CHANGELOG.md</code>.</li>
|
<li>Updates the <code>package.json</code>, and generates the new entries in <code>CHANGELOG.md</code>.
|
||||||
|
Commited with <code>chore(release): Release version vx.0.0 of the npm package</code></li>
|
||||||
|
<li>Optionally run <code>npx commit-and-tag-version -r major --dry-run</code> to preview the commands that will be run
|
||||||
|
and the changes to <code>CHANGELOG.md</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>The <code>postrelease</code> script will now prompt you to manually edit the <code>CHANGELOG.md</code>.<ul>
|
<li>The <code>postrelease</code> script will now prompt you to manually edit the <code>CHANGELOG.md</code>.<ul>
|
||||||
<li>All entries are added in separate sections of the new release according to their commit prefixes.</li>
|
<li>All entries are added in separate sections of the new release according to their commit prefixes.</li>
|
||||||
<li>Re-organize the entries accordingly, referencing previous releases. Most of the entries in Chores and Documentation can be removed.</li>
|
<li>Re-organize the entries accordingly, referencing previous releases. Most of the entries in Chores and
|
||||||
|
Documentation can be removed.</li>
|
||||||
<li>Press any key in your terminal when your changes are ready.</li>
|
<li>Press any key in your terminal when your changes are ready.</li>
|
||||||
<li>The <code>postrelease</code> script will amend the release commit, create an annotated tag and push changes to origin.</li>
|
<li>The <code>postrelease</code> script will amend the release commit, create an annotated tag and push changes to origin.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -2,92 +2,92 @@
|
|||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/core/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/core/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/dependency-injection/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/dependency-injection/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/overview/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/overview/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/cli/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/cli/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/http-handler/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/http-handler/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/initialization/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/initialization/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/authorization/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/authorization/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/overview/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/overview/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/parsing/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/parsing/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/resource-store/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/resource-store/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/contributing/making-changes/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/contributing/making-changes/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/contributing/release/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/contributing/release/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/client-credentials/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/client-credentials/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/example-requests/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/example-requests/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/identity-provider/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/identity-provider/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/metadata/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/metadata/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/seeding-pods/</loc>
|
<loc>https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/seeding-pods/</loc>
|
||||||
<lastmod>2022-08-22</lastmod>
|
<lastmod>2022-08-25</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
</urlset>
|
</urlset>
|
Binary file not shown.
@ -427,6 +427,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||||||
Example request
|
Example request
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
@ -443,20 +445,14 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
<label class="md-nav__title" for="__toc">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
Table of contents
|
Table of contents
|
||||||
</label>
|
</label>
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#interacting-with-the-server" class="md-nav__link">
|
|
||||||
Interacting with the server
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<nav class="md-nav" aria-label="Interacting with the server">
|
|
||||||
<ul class="md-nav__list">
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="#put-creating-resources-for-a-given-url" class="md-nav__link">
|
<a href="#put-creating-resources-for-a-given-url" class="md-nav__link">
|
||||||
PUT: Creating resources for a given URL
|
PUT: Creating resources for a given URL
|
||||||
@ -504,11 +500,6 @@
|
|||||||
OPTIONS: Retrieve resources communication options
|
OPTIONS: Retrieve resources communication options
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
@ -953,20 +944,14 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__title" for="__toc">
|
<label class="md-nav__title" for="__toc">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
Table of contents
|
Table of contents
|
||||||
</label>
|
</label>
|
||||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="#interacting-with-the-server" class="md-nav__link">
|
|
||||||
Interacting with the server
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<nav class="md-nav" aria-label="Interacting with the server">
|
|
||||||
<ul class="md-nav__list">
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="#put-creating-resources-for-a-given-url" class="md-nav__link">
|
<a href="#put-creating-resources-for-a-given-url" class="md-nav__link">
|
||||||
PUT: Creating resources for a given URL
|
PUT: Creating resources for a given URL
|
||||||
@ -1014,11 +999,6 @@
|
|||||||
OPTIONS: Retrieve resources communication options
|
OPTIONS: Retrieve resources communication options
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
@ -1035,49 +1015,47 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Example request</h1>
|
<h1 id="interacting-with-the-server">Interacting with the server<a class="headerlink" href="#interacting-with-the-server" title="Permanent link">¶</a></h1>
|
||||||
|
<h2 id="put-creating-resources-for-a-given-url"><code>PUT</code>: Creating resources for a given URL<a class="headerlink" href="#put-creating-resources-for-a-given-url" title="Permanent link">¶</a></h2>
|
||||||
<h2 id="interacting-with-the-server">Interacting with the server<a class="headerlink" href="#interacting-with-the-server" title="Permanent link">¶</a></h2>
|
<p>Create a plain text file:</p>
|
||||||
<h3 id="put-creating-resources-for-a-given-url"><code>PUT</code>: Creating resources for a given URL<a class="headerlink" href="#put-creating-resources-for-a-given-url" title="Permanent link">¶</a></h3>
|
|
||||||
<p>Create a plain text file:
|
|
||||||
<div class="highlight"><pre><span></span><code>curl -X PUT -H <span class="s2">"Content-Type: text/plain"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -X PUT -H <span class="s2">"Content-Type: text/plain"</span> <span class="se">\</span>
|
||||||
-d <span class="s2">"abc"</span> <span class="se">\</span>
|
-d <span class="s2">"abc"</span> <span class="se">\</span>
|
||||||
http://localhost:3000/myfile.txt
|
http://localhost:3000/myfile.txt
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>Create a turtle file:
|
<p>Create a turtle file:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X PUT -H <span class="s2">"Content-Type: text/turtle"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -X PUT -H <span class="s2">"Content-Type: text/turtle"</span> <span class="se">\</span>
|
||||||
-d <span class="s2">"<ex:s> <ex:p> <ex:o>."</span> <span class="se">\</span>
|
-d <span class="s2">"<ex:s> <ex:p> <ex:o>."</span> <span class="se">\</span>
|
||||||
http://localhost:3000/myfile.ttl
|
http://localhost:3000/myfile.ttl
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<h3 id="post-creating-resources-at-a-generated-url"><code>POST</code>: Creating resources at a generated URL<a class="headerlink" href="#post-creating-resources-at-a-generated-url" title="Permanent link">¶</a></h3>
|
<h2 id="post-creating-resources-at-a-generated-url"><code>POST</code>: Creating resources at a generated URL<a class="headerlink" href="#post-creating-resources-at-a-generated-url" title="Permanent link">¶</a></h2>
|
||||||
<p>Create a plain text file:
|
<p>Create a plain text file:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X POST -H <span class="s2">"Content-Type: text/plain"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -X POST -H <span class="s2">"Content-Type: text/plain"</span> <span class="se">\</span>
|
||||||
-d <span class="s2">"abc"</span> <span class="se">\</span>
|
-d <span class="s2">"abc"</span> <span class="se">\</span>
|
||||||
http://localhost:3000/
|
http://localhost:3000/
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>Create a turtle file:
|
<p>Create a turtle file:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X POST -H <span class="s2">"Content-Type: text/turtle"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -X POST -H <span class="s2">"Content-Type: text/turtle"</span> <span class="se">\</span>
|
||||||
-d <span class="s2">"<ex:s> <ex:p> <ex:o>."</span> <span class="se">\</span>
|
-d <span class="s2">"<ex:s> <ex:p> <ex:o>."</span> <span class="se">\</span>
|
||||||
http://localhost:3000/
|
http://localhost:3000/
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>The response's <code>Location</code> header will contain the URL of the created resource.</p>
|
<p>The response's <code>Location</code> header will contain the URL of the created resource.</p>
|
||||||
<h3 id="get-retrieving-resources"><code>GET</code>: Retrieving resources<a class="headerlink" href="#get-retrieving-resources" title="Permanent link">¶</a></h3>
|
<h2 id="get-retrieving-resources"><code>GET</code>: Retrieving resources<a class="headerlink" href="#get-retrieving-resources" title="Permanent link">¶</a></h2>
|
||||||
<p>Retrieve a plain text file:
|
<p>Retrieve a plain text file:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -H <span class="s2">"Accept: text/plain"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -H <span class="s2">"Accept: text/plain"</span> <span class="se">\</span>
|
||||||
http://localhost:3000/myfile.txt
|
http://localhost:3000/myfile.txt
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>Retrieve a turtle file:
|
<p>Retrieve a turtle file:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -H <span class="s2">"Accept: text/turtle"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -H <span class="s2">"Accept: text/turtle"</span> <span class="se">\</span>
|
||||||
http://localhost:3000/myfile.ttl
|
http://localhost:3000/myfile.ttl
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>Retrieve a turtle file in a different serialization:
|
<p>Retrieve a turtle file in a different serialization:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -H <span class="s2">"Accept: application/ld+json"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -H <span class="s2">"Accept: application/ld+json"</span> <span class="se">\</span>
|
||||||
http://localhost:3000/myfile.ttl
|
http://localhost:3000/myfile.ttl
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<h3 id="delete-deleting-resources"><code>DELETE</code>: Deleting resources<a class="headerlink" href="#delete-deleting-resources" title="Permanent link">¶</a></h3>
|
<h2 id="delete-deleting-resources"><code>DELETE</code>: Deleting resources<a class="headerlink" href="#delete-deleting-resources" title="Permanent link">¶</a></h2>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X DELETE http://localhost:3000/myfile.txt
|
<div class="highlight"><pre><span></span><code>curl -X DELETE http://localhost:3000/myfile.txt
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h3 id="patch-modifying-resources"><code>PATCH</code>: Modifying resources<a class="headerlink" href="#patch-modifying-resources" title="Permanent link">¶</a></h3>
|
<h2 id="patch-modifying-resources"><code>PATCH</code>: Modifying resources<a class="headerlink" href="#patch-modifying-resources" title="Permanent link">¶</a></h2>
|
||||||
<p>Modify a resource using <a href="https://solidproject.org/TR/protocol#n3-patch">N3 Patch</a>:</p>
|
<p>Modify a resource using <a href="https://solidproject.org/TR/protocol#n3-patch">N3 Patch</a>:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X PATCH -H <span class="s2">"Content-Type: text/n3"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -X PATCH -H <span class="s2">"Content-Type: text/n3"</span> <span class="se">\</span>
|
||||||
--data-raw <span class="s2">"@prefix solid: <http://www.w3.org/ns/solid/terms#>. _:rename a solid:InsertDeletePatch; solid:inserts { <ex:s2> <ex:p2> <ex:o2>. }."</span> <span class="se">\</span>
|
--data-raw <span class="s2">"@prefix solid: <http://www.w3.org/ns/solid/terms#>. _:rename a solid:InsertDeletePatch; solid:inserts { <ex:s2> <ex:p2> <ex:o2>. }."</span> <span class="se">\</span>
|
||||||
@ -1088,11 +1066,11 @@
|
|||||||
-d <span class="s2">"INSERT DATA { <ex:s2> <ex:p2> <ex:o2> }"</span> <span class="se">\</span>
|
-d <span class="s2">"INSERT DATA { <ex:s2> <ex:p2> <ex:o2> }"</span> <span class="se">\</span>
|
||||||
http://localhost:3000/myfile.ttl
|
http://localhost:3000/myfile.ttl
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h3 id="head-retrieve-resources-headers"><code>HEAD</code>: Retrieve resources headers<a class="headerlink" href="#head-retrieve-resources-headers" title="Permanent link">¶</a></h3>
|
<h2 id="head-retrieve-resources-headers"><code>HEAD</code>: Retrieve resources headers<a class="headerlink" href="#head-retrieve-resources-headers" title="Permanent link">¶</a></h2>
|
||||||
<div class="highlight"><pre><span></span><code>curl -I -H <span class="s2">"Accept: text/plain"</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -I -H <span class="s2">"Accept: text/plain"</span> <span class="se">\</span>
|
||||||
http://localhost:3000/myfile.txt
|
http://localhost:3000/myfile.txt
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<h3 id="options-retrieve-resources-communication-options"><code>OPTIONS</code>: Retrieve resources communication options<a class="headerlink" href="#options-retrieve-resources-communication-options" title="Permanent link">¶</a></h3>
|
<h2 id="options-retrieve-resources-communication-options"><code>OPTIONS</code>: Retrieve resources communication options<a class="headerlink" href="#options-retrieve-resources-communication-options" title="Permanent link">¶</a></h2>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X OPTIONS -i http://localhost:3000/myfile.txt
|
<div class="highlight"><pre><span></span><code>curl -X OPTIONS -i http://localhost:3000/myfile.txt
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
|
|
||||||
|
@ -1190,7 +1190,7 @@ By default, the server uses the templates found in <code>/templates/identity/ema
|
|||||||
but different templates can be used through configuration.</p>
|
but different templates can be used through configuration.</p>
|
||||||
<p>These templates all make use of a JSON API exposed by the server.
|
<p>These templates all make use of a JSON API exposed by the server.
|
||||||
For example, when doing a GET request to <code>http://localhost:3000/idp/register/</code>
|
For example, when doing a GET request to <code>http://localhost:3000/idp/register/</code>
|
||||||
with a JSON accept header, the following JSON is returned:
|
with a JSON accept header, the following JSON is returned:</p>
|
||||||
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
|
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span><span class="w"></span>
|
||||||
@ -1216,9 +1216,9 @@ with a JSON accept header, the following JSON is returned:
|
|||||||
<span class="w"> </span><span class="nt">"apiVersion"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.3"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"apiVersion"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.3"</span><span class="w"></span>
|
||||||
<span class="p">}</span><span class="w"></span>
|
<span class="p">}</span><span class="w"></span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
The <code>required</code> and <code>optional</code> fields indicate which input fields are expected by the API.
|
<p>The <code>required</code> and <code>optional</code> fields indicate which input fields are expected by the API.
|
||||||
These correspond to the fields of the HTML registration page.
|
These correspond to the fields of the HTML registration page.
|
||||||
To register a user, you can do a POST request with a JSON body containing the correct fields:
|
To register a user, you can do a POST request with a JSON body containing the correct fields:</p>
|
||||||
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
|
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test@example.com"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test@example.com"</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"secret"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"secret"</span><span class="p">,</span><span class="w"></span>
|
||||||
@ -1230,7 +1230,7 @@ To register a user, you can do a POST request with a JSON body containing the co
|
|||||||
<span class="w"> </span><span class="nt">"podName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"podName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test"</span><span class="w"></span>
|
||||||
<span class="p">}</span><span class="w"></span>
|
<span class="p">}</span><span class="w"></span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
Two fields here that are not covered on the HTML page above are <code>rootPod</code> and <code>template</code>.
|
<p>Two fields here that are not covered on the HTML page above are <code>rootPod</code> and <code>template</code>.
|
||||||
<code>rootPod</code> tells the server to put the pod in the root of the server instead of a location based on the <code>podName</code>.
|
<code>rootPod</code> tells the server to put the pod in the root of the server instead of a location based on the <code>podName</code>.
|
||||||
By default the server will reject requests where this is <code>true</code>, except during setup.
|
By default the server will reject requests where this is <code>true</code>, except during setup.
|
||||||
<code>template</code> is only used by servers running the <code>config/dynamic.json</code> configuration,
|
<code>template</code> is only used by servers running the <code>config/dynamic.json</code> configuration,
|
||||||
|
@ -1044,7 +1044,8 @@ The CSS will throw an error (409 <code>ConflictHttpError</code>) when trying to
|
|||||||
<p><code>PUT</code> requests on a resource will reset the description resource.
|
<p><code>PUT</code> requests on a resource will reset the description resource.
|
||||||
There is however a way to keep the contents of description resource prior to the <code>PUT</code> request:
|
There is however a way to keep the contents of description resource prior to the <code>PUT</code> request:
|
||||||
adding the HTTP <code>Link</code> header targeting the description resource with <code>rel="preserve"</code>.</p>
|
adding the HTTP <code>Link</code> header targeting the description resource with <code>rel="preserve"</code>.</p>
|
||||||
<p>When the resource URL is <code>http://localhost:3000/foobar</code>, preserving its description resource when updating its contents can be achieved like in the following example:</p>
|
<p>When the resource URL is <code>http://localhost:3000/foobar</code>, preserving its description resource when updating its contents
|
||||||
|
can be achieved like in the following example:</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X PUT <span class="s1">'http://localhost:3000/foobar'</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -X PUT <span class="s1">'http://localhost:3000/foobar'</span> <span class="se">\</span>
|
||||||
-H <span class="s1">'Content-Type: text/turtle'</span> <span class="se">\</span>
|
-H <span class="s1">'Content-Type: text/turtle'</span> <span class="se">\</span>
|
||||||
-H <span class="s1">'Link: <http://localhost:3000/foobar.meta>;rel="preserve"'</span> <span class="se">\</span>
|
-H <span class="s1">'Link: <http://localhost:3000/foobar.meta>;rel="preserve"'</span> <span class="se">\</span>
|
||||||
@ -1066,10 +1067,10 @@ we first send a <code>HEAD</code> request to the resource to obtain the URL of i
|
|||||||
<div class="highlight"><pre><span></span><code>curl --head <span class="s1">'http://localhost:3000/foo/'</span>
|
<div class="highlight"><pre><span></span><code>curl --head <span class="s1">'http://localhost:3000/foo/'</span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>which will produce a response with at least these headers:</p>
|
<p>which will produce a response with at least these headers:</p>
|
||||||
<p><div class="highlight"><pre><span></span><code>HTTP/1.1 <span class="m">200</span> OK
|
<div class="highlight"><pre><span></span><code>HTTP/1.1 <span class="m">200</span> OK
|
||||||
Link: <http://localhost:3000/foo/.meta><span class="p">;</span> <span class="nv">rel</span><span class="o">=</span><span class="s2">"describedby"</span>
|
Link: <http://localhost:3000/foo/.meta><span class="p">;</span> <span class="nv">rel</span><span class="o">=</span><span class="s2">"describedby"</span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
Now that we have the URL of the description resource,
|
<p>Now that we have the URL of the description resource,
|
||||||
we create a patch for adding the inbox in the description of the resource.</p>
|
we create a patch for adding the inbox in the description of the resource.</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -X PATCH <span class="s1">'http://localhost:3000/foo/.meta'</span> <span class="se">\</span>
|
<div class="highlight"><pre><span></span><code>curl -X PATCH <span class="s1">'http://localhost:3000/foo/.meta'</span> <span class="se">\</span>
|
||||||
-H <span class="s1">'Content-Type: text/n3'</span> <span class="se">\</span>
|
-H <span class="s1">'Content-Type: text/n3'</span> <span class="se">\</span>
|
||||||
@ -1078,9 +1079,9 @@ we create a patch for adding the inbox in the description of the resource.</p>
|
|||||||
<span class="s1">solid:inserts { <http://localhost:3000/foo/> <http://www.w3.org/ns/ldp#inbox> <http://localhost:3000/inbox/>. }.'</span>
|
<span class="s1">solid:inserts { <http://localhost:3000/foo/> <http://www.w3.org/ns/ldp#inbox> <http://localhost:3000/inbox/>. }.'</span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>After this update, we can verify that the inbox is added by performing a GET request to the description resource</p>
|
<p>After this update, we can verify that the inbox is added by performing a GET request to the description resource</p>
|
||||||
<p><div class="highlight"><pre><span></span><code>curl <span class="s1">'http://localhost:3000/foo/.meta'</span>
|
<div class="highlight"><pre><span></span><code>curl <span class="s1">'http://localhost:3000/foo/.meta'</span>
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
With as result for the body
|
<p>With as result for the body</p>
|
||||||
<div class="highlight"><pre><span></span><code><span class="k">@prefix</span><span class="w"> </span><span class="nn">dc:</span><span class="w"> </span><span class="nv"><http://purl.org/dc/terms/></span><span class="p">.</span>
|
<div class="highlight"><pre><span></span><code><span class="k">@prefix</span><span class="w"> </span><span class="nn">dc:</span><span class="w"> </span><span class="nv"><http://purl.org/dc/terms/></span><span class="p">.</span>
|
||||||
<span class="k">@prefix</span><span class="w"> </span><span class="nn">ldp:</span><span class="w"> </span><span class="nv"><http://www.w3.org/ns/ldp#></span><span class="p">.</span>
|
<span class="k">@prefix</span><span class="w"> </span><span class="nn">ldp:</span><span class="w"> </span><span class="nv"><http://www.w3.org/ns/ldp#></span><span class="p">.</span>
|
||||||
<span class="k">@prefix</span><span class="w"> </span><span class="nn">posix:</span><span class="w"> </span><span class="nv"><http://www.w3.org/ns/posix/stat#></span><span class="p">.</span>
|
<span class="k">@prefix</span><span class="w"> </span><span class="nn">posix:</span><span class="w"> </span><span class="nv"><http://www.w3.org/ns/posix/stat#></span><span class="p">.</span>
|
||||||
@ -1089,7 +1090,7 @@ With as result for the body
|
|||||||
<span class="nv"><http://localhost:3000/foo/></span> <span class="kt">a</span> <span class="nn">ldp</span><span class="p">:</span><span class="nt">Container</span><span class="p">,</span> <span class="nn">ldp</span><span class="p">:</span><span class="nt">BasicContainer</span><span class="p">,</span> <span class="nn">ldp</span><span class="p">:</span><span class="nt">Resource</span><span class="p">;</span>
|
<span class="nv"><http://localhost:3000/foo/></span> <span class="kt">a</span> <span class="nn">ldp</span><span class="p">:</span><span class="nt">Container</span><span class="p">,</span> <span class="nn">ldp</span><span class="p">:</span><span class="nt">BasicContainer</span><span class="p">,</span> <span class="nn">ldp</span><span class="p">:</span><span class="nt">Resource</span><span class="p">;</span>
|
||||||
<span class="nn">dc</span><span class="p">:</span><span class="nt">modified</span> <span class="s">"2022-06-09T08:17:07.000Z"</span><span class="p">^^</span><span class="nn">xsd</span><span class="p">:</span><span class="nt">dateTime</span><span class="p">;</span>
|
<span class="nn">dc</span><span class="p">:</span><span class="nt">modified</span> <span class="s">"2022-06-09T08:17:07.000Z"</span><span class="p">^^</span><span class="nn">xsd</span><span class="p">:</span><span class="nt">dateTime</span><span class="p">;</span>
|
||||||
<span class="nn">ldp</span><span class="p">:</span><span class="nt">inbox</span> <span class="nv"><http://localhost:3000/inbox/></span><span class="p">;.</span>
|
<span class="nn">ldp</span><span class="p">:</span><span class="nt">inbox</span> <span class="nv"><http://localhost:3000/inbox/></span><span class="p">;.</span>
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>This can also be verified by sending a GET request to the subject resource itself.
|
<p>This can also be verified by sending a GET request to the subject resource itself.
|
||||||
The inbox location can also be found in the Link headers.</p>
|
The inbox location can also be found in the Link headers.</p>
|
||||||
<div class="highlight"><pre><span></span><code>curl -v <span class="s1">'http://localhost:3000/foo/'</span>
|
<div class="highlight"><pre><span></span><code>curl -v <span class="s1">'http://localhost:3000/foo/'</span>
|
||||||
|
@ -891,7 +891,7 @@ the <code>--seededPodConfigJson</code> command line option can be used
|
|||||||
with as value the path to a JSON file containing configurations for every required pod.
|
with as value the path to a JSON file containing configurations for every required pod.
|
||||||
The file needs to contain an array of JSON objects,
|
The file needs to contain an array of JSON objects,
|
||||||
with each object containing at least a <code>podName</code>, <code>email</code>, and <code>password</code> field.</p>
|
with each object containing at least a <code>podName</code>, <code>email</code>, and <code>password</code> field.</p>
|
||||||
<p>For example:
|
<p>For example:</p>
|
||||||
<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="w"></span>
|
<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"podName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"example"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"podName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"example"</span><span class="p">,</span><span class="w"></span>
|
||||||
@ -899,10 +899,10 @@ with each object containing at least a <code>podName</code>, <code>email</code>,
|
|||||||
<span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"abc123"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">"abc123"</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||||
<span class="p">]</span><span class="w"></span>
|
<span class="p">]</span><span class="w"></span>
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>You may optionally specify other parameters
|
<p>You may optionally specify other parameters
|
||||||
as described in the <a href="../identity-provider/#json-api">Identity Provider documentation</a>.</p>
|
as described in the <a href="../identity-provider/#json-api">Identity Provider documentation</a>.</p>
|
||||||
<p>For example, to set up a pod without registering the generated WebID with the Identity Provider:
|
<p>For example, to set up a pod without registering the generated WebID with the Identity Provider:</p>
|
||||||
<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="w"></span>
|
<div class="highlight"><pre><span></span><code><span class="p">[</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"podName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"example"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"podName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"example"</span><span class="p">,</span><span class="w"></span>
|
||||||
@ -912,7 +912,7 @@ as described in the <a href="../identity-provider/#json-api">Identity Provider d
|
|||||||
<span class="w"> </span><span class="nt">"register"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"register"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||||
<span class="p">]</span><span class="w"></span>
|
<span class="p">]</span><span class="w"></span>
|
||||||
</code></pre></div></p>
|
</code></pre></div>
|
||||||
<p>This feature cannot be used to register pods with pre-existing WebIDs,
|
<p>This feature cannot be used to register pods with pre-existing WebIDs,
|
||||||
which requires an interactive validation step.</p>
|
which requires an interactive validation step.</p>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user