[doc] premonition, oauth

This commit is contained in:
les
2020-01-21 22:14:46 +01:00
parent ff82780eaf
commit 6db3836c35
39 changed files with 822 additions and 651 deletions

View File

@@ -5,13 +5,15 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<title>Support a new language - Gancio</title>
<title>Internationalization - Gancio</title>
<link rel="shortcut icon" href="https://gancio.org/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="https://gancio.org/assets/css/just-the-docs.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/style.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/premonition.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/fa.min.css">
<script type="text/javascript" src="https://gancio.org/assets/js/vendor/lunr.min.js"></script>
@@ -26,9 +28,9 @@
<script src="https://gancio.org/assets/js/jquery.fancybox.min.js"></script>
<!-- Begin Jekyll SEO tag v2.6.1 -->
<title>Support a new language | Gancio</title>
<title>Internationalization | Gancio</title>
<meta name="generator" content="Jekyll v3.8.6" />
<meta property="og:title" content="Support a new language" />
<meta property="og:title" content="Internationalization" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="A shared agenda for local communities with AP support" />
<meta property="og:description" content="A shared agenda for local communities with AP support" />
@@ -36,7 +38,7 @@
<meta property="og:url" content="https://gancio.org/dev/locales" />
<meta property="og:site_name" content="Gancio" />
<script type="application/ld+json">
{"@type":"WebPage","url":"https://gancio.org/dev/locales","headline":"Support a new language","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
{"@type":"WebPage","headline":"Internationalization","url":"https://gancio.org/dev/locales","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
</head>
@@ -67,18 +69,6 @@
@@ -98,6 +88,10 @@
<li class="navigation-list-item">
<a href="https://gancio.org/install" class="navigation-list-link">Install</a>
@@ -124,10 +118,6 @@
<li class="navigation-list-item ">
<a href="https://gancio.org/install/nginx" class="navigation-list-link">Nginx</a>
@@ -150,6 +140,10 @@
@@ -173,6 +167,10 @@
<li class="navigation-list-item active">
<a href="https://gancio.org/dev" class="navigation-list-link">Hacking</a>
@@ -187,20 +185,6 @@
<li class="navigation-list-item active">
<a href="https://gancio.org/dev/locales" class="navigation-list-link active">Support a new language</a>
</li>
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/migration" class="navigation-list-link">Migration</a>
</li>
@@ -217,12 +201,26 @@
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/oauth" class="navigation-list-link">OAuth</a>
</li>
<li class="navigation-list-item active">
<a href="https://gancio.org/dev/locales" class="navigation-list-link active">Internationalization</a>
</li>
@@ -248,6 +246,10 @@
<li class="navigation-list-item">
<a href="https://gancio.org/about" class="navigation-list-link">About</a>
@@ -260,7 +262,7 @@
<li class="navigation-list-item">
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
<a href="https://gancio.org/contacts" class="navigation-list-link">Contacts</a>
</li>
@@ -270,7 +272,7 @@
<li class="navigation-list-item">
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
</li>
@@ -313,7 +315,9 @@
<li class="d-inline-block my-0 mr-2"><a href="https://framagit.org/les/gancio">Source</a></li>
<li class="d-inline-block my-0"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
<li class="d-inline-block my-0 mr-2"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
<li class="d-inline-block my-0"><a href="https://mastodon.cisti.org/@gancio">Mastodon</a></li>
</ul>
@@ -327,14 +331,15 @@
<li class="breadcrumb-nav-list-item"><a href="https://gancio.org/dev">Hacking</a></li>
<li class="breadcrumb-nav-list-item"><span>Support a new language</span></li>
<li class="breadcrumb-nav-list-item"><span>Internationalization</span></li>
</ol>
</nav>
<div id="main-content" class="page-content" role="main">
<h3 id="add-a-new-locale">Add a new locale</h3>
<p>watch <a href="https://framagit.org/les/gancio/commit/cd95c7eb3b9e4bc4832a7b33d8d79b4fd3cbda2d">this commit</a></p>
<h2 id="internationalization">Internationalization</h2>
<p>Were self-hosting an instance of <a href="https://weblate.gancio.org">weblate</a> you can use to help us with translations.</p>

View File

@@ -5,13 +5,15 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<title>Migration - Gancio</title>
<title>OAuth - Gancio</title>
<link rel="shortcut icon" href="https://gancio.org/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="https://gancio.org/assets/css/just-the-docs.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/style.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/premonition.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/fa.min.css">
<script type="text/javascript" src="https://gancio.org/assets/js/vendor/lunr.min.js"></script>
@@ -26,17 +28,17 @@
<script src="https://gancio.org/assets/js/jquery.fancybox.min.js"></script>
<!-- Begin Jekyll SEO tag v2.6.1 -->
<title>Migration | Gancio</title>
<title>OAuth | Gancio</title>
<meta name="generator" content="Jekyll v3.8.6" />
<meta property="og:title" content="Migration" />
<meta property="og:title" content="OAuth" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="A shared agenda for local communities with AP support" />
<meta property="og:description" content="A shared agenda for local communities with AP support" />
<link rel="canonical" href="https://gancio.org/dev/migration" />
<meta property="og:url" content="https://gancio.org/dev/migration" />
<link rel="canonical" href="https://gancio.org/dev/oauth" />
<meta property="og:url" content="https://gancio.org/dev/oauth" />
<meta property="og:site_name" content="Gancio" />
<script type="application/ld+json">
{"@type":"WebPage","url":"https://gancio.org/dev/migration","headline":"Migration","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
{"@type":"WebPage","headline":"OAuth","url":"https://gancio.org/dev/oauth","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
</head>
@@ -67,18 +69,6 @@
@@ -98,6 +88,10 @@
<li class="navigation-list-item">
<a href="https://gancio.org/install" class="navigation-list-link">Install</a>
@@ -124,10 +118,6 @@
<li class="navigation-list-item ">
<a href="https://gancio.org/install/nginx" class="navigation-list-link">Nginx</a>
@@ -150,6 +140,10 @@
@@ -173,6 +167,10 @@
<li class="navigation-list-item active">
<a href="https://gancio.org/dev" class="navigation-list-link">Hacking</a>
@@ -187,20 +185,6 @@
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/locales" class="navigation-list-link">Support a new language</a>
</li>
<li class="navigation-list-item active">
<a href="https://gancio.org/dev/migration" class="navigation-list-link active">Migration</a>
</li>
@@ -217,12 +201,26 @@
<li class="navigation-list-item active">
<a href="https://gancio.org/dev/oauth" class="navigation-list-link active">OAuth</a>
</li>
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/locales" class="navigation-list-link">Internationalization</a>
</li>
@@ -248,6 +246,10 @@
<li class="navigation-list-item">
<a href="https://gancio.org/about" class="navigation-list-link">About</a>
@@ -260,7 +262,7 @@
<li class="navigation-list-item">
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
<a href="https://gancio.org/contacts" class="navigation-list-link">Contacts</a>
</li>
@@ -270,7 +272,7 @@
<li class="navigation-list-item">
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
</li>
@@ -313,7 +315,9 @@
<li class="d-inline-block my-0 mr-2"><a href="https://framagit.org/les/gancio">Source</a></li>
<li class="d-inline-block my-0"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
<li class="d-inline-block my-0 mr-2"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
<li class="d-inline-block my-0"><a href="https://mastodon.cisti.org/@gancio">Mastodon</a></li>
</ul>
@@ -327,14 +331,157 @@
<li class="breadcrumb-nav-list-item"><a href="https://gancio.org/dev">Hacking</a></li>
<li class="breadcrumb-nav-list-item"><span>Migration</span></li>
<li class="breadcrumb-nav-list-item"><span>OAuth</span></li>
</ol>
</nav>
<div id="main-content" class="page-content" role="main">
<p>If you need to modify the dbs structure while hacking, just change <code class="highlighter-rouge">server/api/models/</code> and
remember to create a migration, to understand how things works <a href="https://sequelize.org/master/manual/migrations.html">check the sequelize documentation</a></p>
<div class="premonition error"><div class="fa fa-exclamation-triangle"></div><div class="content"><p class="header">BETA FEATURE</p><p>Expect bad behavior and open <a href="https://framagit.org/les/gancio/issues">issues</a></p>
</div></div>
<h2 class="no_toc" id="oauth">OAuth</h2>
<p>An open standard for token-based authentication and authorization on the Internet.</p>
<p>Gancio supports OAuth 2.0, an authorization framework described in <a href="https://tools.ietf.org/html/rfc6749">RFC 6749</a> that allows third-party applications to obtain limited access to an HTTP service on behalf of a resource owner, through the use of a standardized authorization flow that generates a client access token to be used with HTTP requests.</p>
<p>To obtain an OAuth token for a Gancio instance, make sure that you allow your users to specify the domain they want to connect to before login. Use that domain to <a href="#create-client">acquire a client id/secret</a> and then proceed with normal OAuth 2.</p>
<hr />
<h2 id="create-client">Create client</h2>
<p>Create a new application to obtain OAuth2 credentials.</p>
<p class="label label-yellow">POST</p>
<p><code class="highlighter-rouge">/api/client</code></p>
<h4 id="request-parameters">Request parameters</h4>
<table>
<tbody>
<tr>
<td>client_name</td>
<td><code class="highlighter-rouge">string</code></td>
<td>A name for your application</td>
</tr>
<tr>
<td>redirect_uris</td>
<td><code class="highlighter-rouge">string</code></td>
<td>Where the user should be redirected after authorization</td>
</tr>
<tr>
<td>scopes</td>
<td><code class="highlighter-rouge">string</code></td>
<td>Space separated list of scopes. If none is provided, defaults to <code class="highlighter-rouge">event:write</code> as its the only supported scope!</td>
</tr>
<tr>
<td>website</td>
<td><code class="highlighter-rouge">string</code></td>
<td>A URL to the homepage of your app</td>
</tr>
</tbody>
</table>
<h4 id="example">Example</h4>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-X</span> POST <span class="se">\</span>
<span class="nt">-d</span> <span class="s1">'client_name=Wordpress Event Manager'</span> <span class="se">\</span>
<span class="nt">-d</span> <span class="s1">'redirect_uris=https://noblogs.org/'</span> <span class="se">\</span>
<span class="nt">-d</span> <span class="s1">'website=https://myapp.example'</span> <span class="se">\</span>
http://localhost:13120/api/client
</code></pre></div></div>
<h4 id="returns">Returns</h4>
<p>Application, with <code class="highlighter-rouge">client_id</code> and <code class="highlighter-rouge">client_secret</code></p>
<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
</span><span class="s2">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"Wordpress Event Manager"</span><span class="p">,</span><span class="w">
</span><span class="s2">"scopes"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"event:write"</span><span class="p">,</span><span class="w">
</span><span class="s2">"website"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"https://myapp.example"</span><span class="p">,</span><span class="w">
</span><span class="s2">"client_secret"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"909029fa12797e6bdfb5baf5e379675dfa4e3ad4"</span><span class="p">,</span><span class="w">
</span><span class="s2">"redirect_uris"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"https://noblogs.org"</span><span class="p">,</span><span class="w">
</span><span class="s2">"client_id"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"0f377e34b2aaf517f7db534f32d26b0dd938fb6d"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>
<h4 id="list-of-scopes">List of scopes</h4>
<ul>
<li><code class="highlighter-rouge">event:write</code><br />
Grant access to add/update events.</li>
</ul>
<h2 id="authorize-a-user">Authorize a user</h2>
<p>Displays an authorization form to the user. If approved, it will create and return an authorization code, then redirect to the desired <code class="highlighter-rouge">redirect_uri</code>.
The authorization code can be used while requesting a token to obtain access to user-level methods.</p>
<p><a href="assets/oauth_auth.png" data-fancybox="group" data-caption="OAuth authorization form"><img src="assets/thumbs/oauth_auth.png" alt="assets/thumbs/oauth_auth.png" /></a></p>
<p class="label label-green">GET</p>
<p><code class="highlighter-rouge">/authorize</code></p>
<h4 id="request-parameters-1">Request parameters</h4>
<table>
<tbody>
<tr>
<td>response_type</td>
<td><code class="highlighter-rouge">string</code></td>
<td>Should be set equal to <code class="highlighter-rouge">code</code></td>
</tr>
<tr>
<td>redirect_uri</td>
<td><code class="highlighter-rouge">string</code></td>
<td>Where the user should be redirected after authorization</td>
</tr>
<tr>
<td>scope</td>
<td><code class="highlighter-rouge">string</code></td>
<td>Should be <code class="highlighter-rouge">event:write</code></td>
</tr>
<tr>
<td>client_id</td>
<td><code class="highlighter-rouge">string</code></td>
<td><code class="highlighter-rouge">client_id</code>, obtained during app registration.</td>
</tr>
</tbody>
</table>
<h2 id="obtain-a-token">Obtain a token</h2>
<p class="label label-yellow">POST</p>
<p><code class="highlighter-rouge">/oauth/token</code></p>
<h4 id="request-parameters-2">Request parameters</h4>
<table>
<tbody>
<tr>
<td>client_id</td>
<td><code class="highlighter-rouge">string</code></td>
<td><code class="highlighter-rouge">client_id</code> obtained during <a href="#create-client">client registration</a></td>
</tr>
<tr>
<td>client_secret</td>
<td><code class="highlighter-rouge">string</code></td>
<td><code class="highlighter-rouge">client_secret</code> obtained during <a href="#create-client">client registration</a></td>
</tr>
<tr>
<td>scope</td>
<td><code class="highlighter-rouge">string</code></td>
<td>Should be <code class="highlighter-rouge">event:write</code></td>
</tr>
<tr>
<td>grant_type</td>
<td><code class="highlighter-rouge">string</code></td>
<td>Set equal to <code class="highlighter-rouge">authorization_code</code></td>
</tr>
<tr>
<td>code</td>
<td><code class="highlighter-rouge">string</code></td>
<td>A user authorization code, obtained via <a href="#authorize-a-user">/authorize</a></td>
</tr>
</tbody>
</table>

View File

@@ -12,6 +12,8 @@
<link rel="shortcut icon" href="https://gancio.org/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="https://gancio.org/assets/css/just-the-docs.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/style.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/premonition.css">
<link rel="stylesheet" href="https://gancio.org/assets/css/fa.min.css">
<script type="text/javascript" src="https://gancio.org/assets/js/vendor/lunr.min.js"></script>
@@ -36,7 +38,7 @@
<meta property="og:url" content="https://gancio.org/dev/structure" />
<meta property="og:site_name" content="Gancio" />
<script type="application/ld+json">
{"@type":"WebPage","url":"https://gancio.org/dev/structure","headline":"Project Structure","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
{"@type":"WebPage","headline":"Project Structure","url":"https://gancio.org/dev/structure","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
</head>
@@ -67,18 +69,6 @@
@@ -98,6 +88,10 @@
<li class="navigation-list-item">
<a href="https://gancio.org/install" class="navigation-list-link">Install</a>
@@ -124,10 +118,6 @@
<li class="navigation-list-item ">
<a href="https://gancio.org/install/nginx" class="navigation-list-link">Nginx</a>
@@ -150,6 +140,10 @@
@@ -173,6 +167,10 @@
<li class="navigation-list-item active">
<a href="https://gancio.org/dev" class="navigation-list-link">Hacking</a>
@@ -187,20 +185,6 @@
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/locales" class="navigation-list-link">Support a new language</a>
</li>
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/migration" class="navigation-list-link">Migration</a>
</li>
@@ -217,12 +201,26 @@
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/oauth" class="navigation-list-link">OAuth</a>
</li>
<li class="navigation-list-item ">
<a href="https://gancio.org/dev/locales" class="navigation-list-link">Internationalization</a>
</li>
@@ -248,6 +246,10 @@
<li class="navigation-list-item">
<a href="https://gancio.org/about" class="navigation-list-link">About</a>
@@ -260,7 +262,7 @@
<li class="navigation-list-item">
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
<a href="https://gancio.org/contacts" class="navigation-list-link">Contacts</a>
</li>
@@ -270,7 +272,7 @@
<li class="navigation-list-item">
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
</li>
@@ -313,7 +315,9 @@
<li class="d-inline-block my-0 mr-2"><a href="https://framagit.org/les/gancio">Source</a></li>
<li class="d-inline-block my-0"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
<li class="d-inline-block my-0 mr-2"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
<li class="d-inline-block my-0"><a href="https://mastodon.cisti.org/@gancio">Mastodon</a></li>
</ul>