This commit is contained in:
Tanner Nelson 2017-10-04 13:35:31 -04:00
parent 0aec3b0d20
commit a66c687728
7 changed files with 190 additions and 132 deletions

View File

@ -1965,16 +1965,16 @@
<h2 id="advanced-configurations">Advanced Configurations<a class="headerlink" href="#advanced-configurations" title="Permanent link">&para;</a></h2>
<p>Having the default <code>servers.json</code> is great, but what about more complex scenarios. For example, what if we want a different host in production and in development? These complex scenarios can be achieved by adding additional folders to our <code>Config/</code> directory. Here's an example of a folder structure that's setup for production and development environments.</p>
<p>Having the default <code>server.json</code> is great, but what about more complex scenarios. For example, what if we want a different host in production and in development? These complex scenarios can be achieved by adding additional folders to our <code>Config/</code> directory. Here's an example of a folder structure that's setup for production and development environments.</p>
<div class="codehilite"><pre><span></span>WorkingDirectory/
├── Config/
│ ├── servers.json
│ ├── server.json
│ ├── production/
│ │ └── servers.json
│ │ └── server.json
│ ├── development/
│ │ └── servers.json
│ │ └── server.json
│ └── secrets/
│ └── servers.json
│ └── server.json
</pre></div>

View File

@ -1148,6 +1148,13 @@
Content
</a>
</li>
<li class="md-nav__item">
<a href="#form-data" title="Form Data" class="md-nav__link">
Form Data
</a>
</li>
<li class="md-nav__item">
@ -1813,6 +1820,13 @@
Content
</a>
</li>
<li class="md-nav__item">
<a href="#form-data" title="Form Data" class="md-nav__link">
Form Data
</a>
</li>
<li class="md-nav__item">
@ -2003,6 +2017,20 @@
</blockquote>
<p>This also applies to multi-part requests and can even be extended to new types such as XML or YAML through middleware.</p>
<p>If you'd prefer to access given types more explicitly, that's totally fine. The <code>data</code> variable is purely opt-in convenience for those who want it.</p>
<h2 id="form-data">Form Data<a class="headerlink" href="#form-data" title="Permanent link">&para;</a></h2>
<p>It is common in many applications to receive forms submitted from a Web browser. Vapor provides support for several common encodings:</p>
<div class="codehilite"><pre><span></span><span class="c1">// Node? from application/x-www-form-urlencoded</span>
<span class="kd">let</span> <span class="nv">formData</span> <span class="p">=</span> <span class="n">request</span><span class="p">.</span><span class="n">formURLEncoded</span>
<span class="c1">// [String:Field]? from multipart/form-data</span>
<span class="kd">let</span> <span class="nv">multipartFormData</span> <span class="p">=</span> <span class="n">request</span><span class="p">.</span><span class="n">formData</span>
<span class="c1">// [Part]? from multipart/mixed</span>
<span class="kd">let</span> <span class="nv">multipartMixedData</span> <span class="p">=</span> <span class="n">request</span><span class="p">.</span><span class="n">multipart</span>
</pre></div>
<p>These accessors will return <code>nil</code> if the request's <code>Content-Type</code> does not match what they expect.</p>
<h2 id="json">JSON<a class="headerlink" href="#json" title="Permanent link">&para;</a></h2>
<p>To access JSON directly on a given request, use the following:</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span> <span class="nv">json</span> <span class="p">=</span> <span class="n">request</span><span class="p">.</span><span class="n">json</span><span class="p">[</span><span class="s">&quot;hello&quot;</span><span class="p">]</span>

View File

@ -2012,32 +2012,34 @@
<h3 id="community">Community<a class="headerlink" href="#community" title="Permanent link">&para;</a></h3>
<p>These are packages maintained by community members that work great with Vapor.</p>
<ul>
<li><a href="https://github.com/vapor/postgresql">PostgreSQL</a>: Robust PostgreSQL interface for Swift.<ul>
<li><a href="https://github.com/vapor/postgresql-driver">PostgreSQL Driver</a>: PostgreSQL driver for Fluent.</li>
<li><a href="https://github.com/vapor/postgresql-provider">PostgreSQL Provider</a>: PostgreSQL provider for Vapor.</li>
<li><a href="https://github.com/matthijs2704/vapor-apns">APNS</a>: Simple APNS Library for Vapor (Swift).</li>
<li><a href="https://github.com/jakeheis/Flock">Flock</a>: Automated deployment of Swift projects to servers<ul>
<li><a href="https://github.com/jakeheis/VaporFlock">VaporFlock</a>: Use Flock to deploy Vapor applications</li>
</ul>
</li>
<li><a href="https://github.com/himani93/heimdall">Heimdall</a>: An easy to use HTTP request logger.</li>
<li><a href="https://github.com/BrettRToomey/Jobs">Jobs</a>: A minimalistic job/background-task system for Swift.</li>
<li><a href="https://github.com/vapor/kitura-provider">Kitura Provider</a>: Use IBM's Kitura HTTP server in Vapor.</li>
<li><a href="https://github.com/brokenhandsio/leaf-error-middleware">Leaf Error Middleware</a> - Custom 404 and error views for your website</li>
<li><a href="https://github.com/vapor-community/markdown-provider">MarkdownProvider</a> - Easily use Markdown from Leaf.</li>
<li><a href="https://github.com/OpenKitten/MongoKitten">MongoKitten</a>: Native MongoDB driver for Swift, written in Swift<ul>
<li><a href="https://github.com/vapor/mongo-driver">Mongo Driver</a>: MongoKitten driver for Fluent.</li>
<li><a href="https://github.com/vapor/mongo-provider">Mongo Provider</a>: MongoKitten provider for Vapor.</li>
</ul>
</li>
<li><a href="https://github.com/vapor/kitura-provider">Kitura Provider</a>: Use IBM's Kitura HTTP server in Vapor.</li>
<li><a href="https://github.com/vapor-community/swiftybeaver-provider">SwiftyBeaver</a>: Adds the powerful logging of SwiftyBeaver to Vapor.</li>
<li><a href="https://github.com/matthijs2704/vapor-apns">APNS</a>: Simple APNS Library for Vapor (Swift).</li>
<li><a href="https://github.com/mdab121/vapor-fcm">VaporFCM</a>: Simple FCM (iOS + Android Push Notifications) library built for Vapor in Swift.</li>
<li><a href="https://github.com/JustinM1/VaporS3Signer">VaporS3Signer</a>: Generate V4 Auth Header/Pre-Signed URL for AWS S3 REST API</li>
<li><a href="https://github.com/jakeheis/Flock">Flock</a>: Automated deployment of Swift projects to servers<ul>
<li><a href="https://github.com/jakeheis/VaporFlock">VaporFlock</a>: Use Flock to deploy Vapor applications</li>
<li><a href="https://github.com/vapor/postgresql">PostgreSQL</a>: Robust PostgreSQL interface for Swift.<ul>
<li><a href="https://github.com/vapor/postgresql-driver">PostgreSQL Driver</a>: PostgreSQL driver for Fluent.</li>
<li><a href="https://github.com/vapor/postgresql-provider">PostgreSQL Provider</a>: PostgreSQL provider for Vapor.</li>
</ul>
</li>
<li><a href="https://github.com/bygri/vapor-forms">VaporForms</a>: Brings simple, dynamic and re-usable web form handling to Vapor.</li>
<li><a href="https://github.com/BrettRToomey/Jobs">Jobs</a>: A minimalistic job/background-task system for Swift.</li>
<li><a href="https://github.com/himani93/heimdall">Heimdall</a>: An easy to use HTTP request logger.</li>
<li><a href="https://github.com/gperdomor/sanitize">Sanitize</a>: Powerful model extraction from JSON requests.</li>
<li><a href="https://github.com/brokenhandsio/SteamPress">SteamPress</a>: A blogging engine for Vapor.</li>
<li><a href="https://github.com/brokenhandsio/VaporSecurityHeaders">Vapor Security Headers</a>: Add common security headers to your Vapor Application.</li>
<li><a href="https://github.com/vapor-community/markdown-provider">MarkdownProvider</a> - Easily use Markdown from Leaf.</li>
<li><a href="https://github.com/vapor-community/swiftybeaver-provider">SwiftyBeaver</a>: Adds the powerful logging of SwiftyBeaver to Vapor.</li>
<li><a href="https://github.com/mdab121/vapor-fcm">VaporFCM</a>: Simple FCM (iOS + Android Push Notifications) library built for Vapor in Swift.</li>
<li><a href="https://github.com/bygri/vapor-forms">VaporForms</a>: Brings simple, dynamic and re-usable web form handling to Vapor.</li>
<li><a href="https://github.com/JustinM1/VaporS3Signer">VaporS3Signer</a>: Generate V4 Auth Header/Pre-Signed URL for AWS S3 REST API</li>
<li><a href="https://github.com/brokenhandsio/vapor-oauth">Vapor OAuth</a> - An OAuth2 Provider library for Vapor</li>
<li><a href="https://github.com/brokenhandsio/VaporSecurityHeaders">Vapor Security Headers</a>: Add common security headers to your Vapor Application.</li>
</ul>
<h3 id="providers_1">Providers<a class="headerlink" href="#providers_1" title="Permanent link">&para;</a></h3>
<p>Vapor providers are a convenient way to add functionality to your Vapor projects. For a full list of providers, check out the <a href="https://github.com/search?utf8=✓&amp;q=topic%3Avapor-provider&amp;type=Repositories"><code>vapor-provider</code></a> tag on GitHub.</p>

View File

@ -1731,13 +1731,19 @@
<h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">&para;</a></h2>
<p><code>JWTProvider</code> can be configured in <strong>3</strong> different ways:</p>
<ul>
<li>Custom signers defined in <code>jwt.json</code></li>
<li>Custom signers defined in <code>jwt.json</code><ul>
<li>Supports (private/public): <code>hmac</code>, <code>rsa</code>, <code>esdca</code>.</li>
<li>Legacy custom signer defined in <code>jwt.json</code>. </li>
</ul>
</li>
<li>Legacy custom signer defined in <code>jwt.json</code>. <ul>
<li>Supports (private/public): <code>hmac</code>, <code>rsa</code>, <code>esdca</code>.</li>
<li>Remote JSON Web Key Set (<code>jwks.json</code>) URL</li>
</ul>
</li>
<li>Remote JSON Web Key Set (<code>jwks.json</code>) URL<ul>
<li>Supports (private/public): <code>rsa</code>.</li>
</ul>
</li>
</ul>
<p>If your Vapor app is acting as an Authentication Provider, you may want to use either the <code>Legacy custom signer</code> setup, or the <code>Custom signers</code> setup, which is great if you want to perform certificates rotation.</p>
<p>The only difference is that with <code>Custom signers</code> the <code>kid</code> value in the <code>JWT</code> header is not ignored, and it must match an associated signer in order to verify the signature.</p>
<p>If your Vapor app is a Resource Provider that delegates Authentication to a 3rd party (auth0, stormpath, etc), you may want to use the <code>Remote JSON Web Key Set</code> setup. In this configuration the JWT token is generated by a 3rd party that provides the public key in JSON Web Key Set format.
@ -1756,11 +1762,13 @@ Custom signers are not backward compatible and must specify an additional <code>
<ul>
<li>type: <code>unsigned</code>, <code>hmac</code>, <code>rsa</code>, <code>esdca</code></li>
<li>kid: an unique identifier</li>
<li>algorithm:</li>
<li>algorithm:<ul>
<li>type[<code>hmac</code>]: <code>hs256</code>, <code>hs384</code>, <code>hs512</code></li>
<li>type[<code>rsa</code>]: <code>rs256</code>, <code>rs384</code>, <code>rs512</code></li>
<li>type[<code>esdca</code>]: <code>es256</code>, <code>es384</code>, <code>es512</code></li>
</ul>
</li>
</ul>
<p><code>Config/jwt.json</code></p>
<div class="codehilite"><pre><span></span><span class="p">{</span>
<span class="nt">&quot;signers&quot;</span><span class="p">:</span> <span class="p">{</span>
@ -1778,11 +1786,13 @@ Custom signers are not backward compatible and must specify an additional <code>
<p>This is backwards compatible with the previous implementation.</p>
<ul>
<li>type: <code>unsigned</code>, <code>hmac</code>, <code>rsa</code>, <code>esdca</code></li>
<li>algorithm:</li>
<li>algorithm:<ul>
<li>type[<code>hmac</code>]: <code>hs256</code>, <code>hs384</code>, <code>hs512</code></li>
<li>type[<code>rsa</code>]: <code>rs256</code>, <code>rs384</code>, <code>rs512</code></li>
<li>type[<code>esdca</code>]: <code>es256</code>, <code>es384</code>, <code>es512</code></li>
</ul>
</li>
</ul>
<p><code>Config/jwt.json</code></p>
<div class="codehilite"><pre><span></span><span class="p">{</span>
<span class="nt">&quot;signer&quot;</span><span class="p">:</span> <span class="p">{</span>

View File

@ -1324,15 +1324,15 @@
</li>
<li class="md-nav__item">
<a href="#loop-loopobject-index" title="Loop: #loop(object, "index")" class="md-nav__link">
Loop: #loop(object, "index")
<a href="#loop-looparray-item" title="Loop: #loop(array, "item") {}" class="md-nav__link">
Loop: #loop(array, "item") {}
</a>
</li>
<li class="md-nav__item">
<a href="#index-indexobject-_-index-intstring" title="Index: #index(object, _ index: Int|String)" class="md-nav__link">
Index: #index(object, _ index: Int|String)
<a href="#index-indexarray-_-index-string" title="Index: #index(array, _ index: String)" class="md-nav__link">
Index: #index(array, _ index: String)
</a>
</li>
@ -1895,15 +1895,15 @@
</li>
<li class="md-nav__item">
<a href="#loop-loopobject-index" title="Loop: #loop(object, "index")" class="md-nav__link">
Loop: #loop(object, "index")
<a href="#loop-looparray-item" title="Loop: #loop(array, "item") {}" class="md-nav__link">
Loop: #loop(array, "item") {}
</a>
</li>
<li class="md-nav__item">
<a href="#index-indexobject-_-index-intstring" title="Index: #index(object, _ index: Int|String)" class="md-nav__link">
Index: #index(object, _ index: Int|String)
<a href="#index-indexarray-_-index-string" title="Index: #index(array, _ index: String)" class="md-nav__link">
Index: #index(array, _ index: String)
</a>
</li>
@ -2021,7 +2021,7 @@
<p>This section may contain outdated information.</p>
</div>
<h1 id="leaf">Leaf<a class="headerlink" href="#leaf" title="Permanent link">&para;</a></h1>
<p>Welcome to Leaf. Leaf's goal is to be a simple templating language that can make generating views easier. There's a lot of great templating languages, use what's best for you, maybe that's Leaf! The goals of Leaf are as follows:</p>
<p>Welcome to Leaf. Leaf's goal is to be a simple templating language that can make generating views easier. There are plenty of great templating languages, so use what's best for you -- maybe that's Leaf! The goals of Leaf are:</p>
<ul>
<li>Small set of strictly enforced rules</li>
<li>Consistency</li>
@ -2084,19 +2084,21 @@
</pre></div>
<h4 id="loop-loopobject-index">Loop: <code>#loop(object, "index")</code><a class="headerlink" href="#loop-loopobject-index" title="Permanent link">&para;</a></h4>
<h4 id="loop-looparray-item">Loop: <code>#loop(array, "item") {}</code><a class="headerlink" href="#loop-looparray-item" title="Permanent link">&para;</a></h4>
<div class="codehilite"><pre><span></span>#loop(friends, &quot;friend&quot;) {
Hello, #(friend.name)!
#(offset). #(friend.name)
}
</pre></div>
<h4 id="index-indexobject-_-index-intstring">Index: <code>#index(object, _ index: Int|String)</code><a class="headerlink" href="#index-indexobject-_-index-intstring" title="Permanent link">&para;</a></h4>
<div class="codehilite"><pre><span></span>Hello, #index(friends, 0)!
<p>The body of a <code>#loop</code> can access an <code>index</code> variable corresponding to the index of the array. There is also an <code>offset</code> variable which is the index plus 1.</p>
<h4 id="index-indexarray-_-index-string">Index: <code>#index(array, _ index: String)</code><a class="headerlink" href="#index-indexarray-_-index-string" title="Permanent link">&para;</a></h4>
<div class="codehilite"><pre><span></span>Hello, #index(friends, &quot;0&quot;)!
Hello, #index(friends, &quot;best&quot;)!
</pre></div>
<p>Note: array indexes are always strings.</p>
<h4 id="if-else-ifbool-else-this">If - Else: <code>#if(bool) ##else() { this }</code><a class="headerlink" href="#if-else-ifbool-else-this" title="Permanent link">&para;</a></h4>
<div class="codehilite"><pre><span></span>#if(entering) {
Hello, there!
@ -2108,6 +2110,17 @@ Hello, #index(friends, &quot;best&quot;)!
</pre></div>
<p>Note that <code>#if</code> requires a boolean variable. If you need to do a comparison then <code>#equal</code> is more appropriate. You can chain <code>#equal</code> in the same way as <code>#if</code>:</p>
<div class="codehilite"><pre><span></span>#equal(state, &quot;0&quot;) {
&lt;span class=&quot;green&quot;&gt;Normal&lt;/span&gt;
} ##equal(state, &quot;1&quot;) {
&lt;span class=&quot;orange&quot;&gt;Warning&lt;/span&gt;
} ##else() {
&lt;span class=&quot;red&quot;&gt;Alert&lt;/span&gt;
}
</pre></div>
<h4 id="import-importtemplate">Import: <code>#import("template")</code><a class="headerlink" href="#import-importtemplate" title="Permanent link">&para;</a></h4>
<h4 id="export-exporttemplate-leafhtml">Export: <code>#export("template") { Leaf/HTML }</code><a class="headerlink" href="#export-exporttemplate-leafhtml" title="Permanent link">&para;</a></h4>
<h4 id="extend-extendtemplate">Extend: <code>#extend("template")</code><a class="headerlink" href="#extend-extendtemplate" title="Permanent link">&para;</a></h4>

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
<url>
<loc>/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -13,37 +13,37 @@
<url>
<loc>/getting-started/install-on-macos/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/getting-started/install-on-ubuntu/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/getting-started/toolbox/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/getting-started/hello-world/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/getting-started/manual/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/getting-started/xcode/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -53,49 +53,49 @@
<url>
<loc>/vapor/folder-structure/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/vapor/droplet/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/vapor/views/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/vapor/controllers/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/vapor/provider/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/vapor/hash/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/vapor/log/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/vapor/commands/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -105,7 +105,7 @@
<url>
<loc>/configs/config/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -115,13 +115,13 @@
<url>
<loc>/json/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/json/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -131,31 +131,31 @@
<url>
<loc>/routing/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/routing/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/routing/parameters/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/routing/group/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/routing/collection/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -165,37 +165,37 @@
<url>
<loc>/fluent/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/fluent/getting-started/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/fluent/model/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/fluent/database/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/fluent/query/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/fluent/relations/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -205,13 +205,13 @@
<url>
<loc>/cache/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/cache/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -221,19 +221,19 @@
<url>
<loc>/mysql/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/mysql/provider/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/mysql/driver/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -243,13 +243,13 @@
<url>
<loc>/redis/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/redis/provider/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -259,43 +259,43 @@
<url>
<loc>/auth/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/auth/provider/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/auth/getting-started/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/auth/helper/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/auth/password/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/auth/persist/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/auth/redirect-middleware/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -305,13 +305,13 @@
<url>
<loc>/jwt/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/jwt/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -321,13 +321,13 @@
<url>
<loc>/sessions/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/sessions/sessions/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -337,61 +337,61 @@
<url>
<loc>/http/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/request/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/response/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/middleware/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/body/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/response-representable/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/responder/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/client/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/server/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/http/cors/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -401,19 +401,19 @@
<url>
<loc>/leaf/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/leaf/provider/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/leaf/leaf/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -423,13 +423,13 @@
<url>
<loc>/validation/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/validation/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -439,13 +439,13 @@
<url>
<loc>/node/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/node/getting-started/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -455,13 +455,13 @@
<url>
<loc>/core/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/core/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -471,13 +471,13 @@
<url>
<loc>/bits/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/bits/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -487,13 +487,13 @@
<url>
<loc>/debugging/package/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/debugging/overview/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -503,19 +503,19 @@
<url>
<loc>/deploy/nginx/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/deploy/apache2/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/deploy/supervisor/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
@ -525,19 +525,19 @@
<url>
<loc>/version/1_5/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/version/2_0/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>/version/support/</loc>
<lastmod>2017-08-23</lastmod>
<lastmod>2017-10-04</lastmod>
<changefreq>daily</changefreq>
</url>