bump version to 0.7.0
20
CHANGELOG.md
@ -1,5 +1,25 @@
|
|||||||
# Change log
|
# Change log
|
||||||
|
|
||||||
|
## Version 0.7.0 (2022/09/19)
|
||||||
|
|
||||||
|
### Features and enhancements
|
||||||
|
|
||||||
|
* [#88](https://github.com/SamR1/FitTrackee/issues/88) - OAuth 2.0 access token for api access
|
||||||
|
* [#231](https://github.com/SamR1/FitTrackee/issues/231) - Invalidate token on logout
|
||||||
|
* [PR#236](https://github.com/SamR1/FitTrackee/issues/236) - Add API rate limits
|
||||||
|
|
||||||
|
### Bugs Fixed
|
||||||
|
|
||||||
|
* [#232](https://github.com/SamR1/FitTrackee/issues/232) - Speed chart can not be hidden
|
||||||
|
* [#237](https://github.com/SamR1/FitTrackee/issues/237) - Can not edit a workout when notes value is null
|
||||||
|
|
||||||
|
### Translations
|
||||||
|
|
||||||
|
* [PR#212](https://github.com/SamR1/FitTrackee/issues/212) - Translations update from Hosted Weblate (thanks to J. Lavoie)
|
||||||
|
|
||||||
|
**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/installation.html#upgrade))
|
||||||
|
|
||||||
|
|
||||||
## Version 0.6.12 (2022/09/14)
|
## Version 0.6.12 (2022/09/14)
|
||||||
|
|
||||||
### Issues Closed
|
### Issues Closed
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Sphinx build info version 1
|
# Sphinx build info version 1
|
||||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: 46c4d8b5fa7946f979002cf919b92752
|
config: 0fd6e5b14109ac1347607ea7ecf55a9e
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
Before Width: | Height: | Size: 550 KiB After Width: | Height: | Size: 550 KiB |
Before Width: | Height: | Size: 371 KiB After Width: | Height: | Size: 371 KiB |
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
@ -9,9 +9,6 @@ To allow a third-party application to interact with API endpoints, an
|
|||||||
`OAuth2 <https://datatracker.ietf.org/doc/html/rfc6749>`_ client can be created
|
`OAuth2 <https://datatracker.ietf.org/doc/html/rfc6749>`_ client can be created
|
||||||
in user settings ('apps' tab).
|
in user settings ('apps' tab).
|
||||||
|
|
||||||
.. note::
|
|
||||||
OAuth2 support is implemented with `Authlib <https://docs.authlib.org/en/latest/>`_ library.
|
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
OAuth2 endpoints requiring authentication are not accessible by third-party
|
OAuth2 endpoints requiring authentication are not accessible by third-party
|
||||||
applications (`documentation <api/oauth2.html>`__), only by FitTrackee
|
applications (`documentation <api/oauth2.html>`__), only by FitTrackee
|
||||||
@ -20,6 +17,7 @@ in user settings ('apps' tab).
|
|||||||
FitTrackee supports only `Authorization Code <https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1>`_
|
FitTrackee supports only `Authorization Code <https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1>`_
|
||||||
flow (with PKCE support).
|
flow (with PKCE support).
|
||||||
It allows to exchange an authorization code for an access token.
|
It allows to exchange an authorization code for an access token.
|
||||||
|
The client ID and secret must be sent in the POST body.
|
||||||
It is recommended to use `PKCE <https://datatracker.ietf.org/doc/html/rfc7636>`_
|
It is recommended to use `PKCE <https://datatracker.ietf.org/doc/html/rfc7636>`_
|
||||||
to provide a better security.
|
to provide a better security.
|
||||||
|
|
||||||
@ -36,7 +34,20 @@ The following scopes are available:
|
|||||||
.. figure:: _images/fittrackee_screenshot-07.png
|
.. figure:: _images/fittrackee_screenshot-07.png
|
||||||
:alt: OAuth2 client creation on FitTrackee
|
:alt: OAuth2 client creation on FitTrackee
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
OAuth2 support is implemented with `Authlib <https://docs.authlib.org/en/latest/>`_ library.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
| If FitTrackee is running behind a proxy, the ``X-Forwarded-Proto`` header must be set.
|
||||||
|
| For instance for `nginx`:
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
Some resources about OAuth 2.0:
|
Some resources about OAuth 2.0:
|
||||||
|
|
||||||
- `OAuth 2.0 Simplified <https://www.oauth.com>`_ by `Aaron Parecki <https://aaronparecki.com>`_
|
- `OAuth 2.0 Simplified <https://www.oauth.com>`_ by `Aaron Parecki <https://aaronparecki.com>`_
|
||||||
- `Web App Example of OAuth 2 web application flow <https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html>`_ with Requests-OAuthlib
|
- `Web App Example of OAuth 2 web application flow <https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html>`_ with Requests-OAuthlib (python)
|
||||||
|
- `OAuth 2 Session <https://docs.authlib.org/en/latest/client/oauth2.html#oauth-2-session>`_ with Authlib (python)
|
||||||
|
- `Minimal example of an application interacting with FitTrackee <https://codeberg.org/SamR1/ft-oauth-client>`_ (python)
|
@ -1,5 +1,25 @@
|
|||||||
# Change log
|
# Change log
|
||||||
|
|
||||||
|
## Version 0.7.0 (2022/09/19)
|
||||||
|
|
||||||
|
### Features and enhancements
|
||||||
|
|
||||||
|
* [#88](https://github.com/SamR1/FitTrackee/issues/88) - OAuth 2.0 access token for api access
|
||||||
|
* [#231](https://github.com/SamR1/FitTrackee/issues/231) - Invalidate token on logout
|
||||||
|
* [PR#236](https://github.com/SamR1/FitTrackee/issues/236) - Add API rate limits
|
||||||
|
|
||||||
|
### Bugs Fixed
|
||||||
|
|
||||||
|
* [#232](https://github.com/SamR1/FitTrackee/issues/232) - Speed chart can not be hidden
|
||||||
|
* [#237](https://github.com/SamR1/FitTrackee/issues/237) - Can not edit a workout when notes value is null
|
||||||
|
|
||||||
|
### Translations
|
||||||
|
|
||||||
|
* [PR#212](https://github.com/SamR1/FitTrackee/issues/212) - Translations update from Hosted Weblate (thanks to J. Lavoie)
|
||||||
|
|
||||||
|
**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/installation.html#upgrade))
|
||||||
|
|
||||||
|
|
||||||
## Version 0.6.12 (2022/09/14)
|
## Version 0.6.12 (2022/09/14)
|
||||||
|
|
||||||
### Issues Closed
|
### Issues Closed
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Command line interface
|
Command line interface
|
||||||
######################
|
######################
|
||||||
|
|
||||||
A command line interface (CLI) is available to manage database and users.
|
A command line interface (CLI) is available to manage database, OAuth2 tokens and users.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
Features
|
Features
|
||||||
########
|
########
|
||||||
|
|
||||||
|
| **FitTrackee** allows you to store and display gpx files and some statistics from your outdoor activities.
|
||||||
|
| For now, this app is kind of a single-user application. Even if several users can register, a user can only view his own workouts.
|
||||||
|
|
||||||
|
Gpx files are stored in an upload directory (without encryption).
|
||||||
|
|
||||||
|
With the default configuration, `Open Street Map <https://www.openstreetmap.org>`__ is used as tile server in Workout detail and for static map generation.
|
||||||
|
|
||||||
|
|
||||||
Workouts
|
Workouts
|
||||||
^^^^^^^^
|
^^^^^^^^
|
||||||
- 11 sports are supported:
|
- 11 sports are supported:
|
||||||
|
@ -60,7 +60,7 @@ deployment method.
|
|||||||
|
|
||||||
**FitTrackee** host.
|
**FitTrackee** host.
|
||||||
|
|
||||||
:default: 0.0.0.0
|
:default: 127.0.0.1
|
||||||
|
|
||||||
|
|
||||||
.. envvar:: PORT
|
.. envvar:: PORT
|
||||||
@ -477,13 +477,13 @@ Production environment
|
|||||||
.. warning::
|
.. warning::
|
||||||
| Note that FitTrackee is under heavy development, some features may be unstable.
|
| Note that FitTrackee is under heavy development, some features may be unstable.
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.6.12):
|
- Download the last release (for now, it is the release v0.7.0):
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.12.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.0.tar.gz
|
||||||
$ tar -xzf v0.6.12.tar.gz
|
$ tar -xzf v0.7.0.tar.gz
|
||||||
$ mv FitTrackee-0.6.12 FitTrackee
|
$ mv FitTrackee-0.7.0 FitTrackee
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Create **.env** from example and update it
|
- Create **.env** from example and update it
|
||||||
@ -603,13 +603,13 @@ Prod environment
|
|||||||
|
|
||||||
- Change to the directory where FitTrackee directory is located
|
- Change to the directory where FitTrackee directory is located
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.6.12) and overwrite existing files:
|
- Download the last release (for now, it is the release v0.7.0) and overwrite existing files:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.12.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.0.tar.gz
|
||||||
$ tar -xzf v0.6.12.tar.gz
|
$ tar -xzf v0.7.0.tar.gz
|
||||||
$ cp -R FitTrackee-0.6.12/* FitTrackee/
|
$ cp -R FitTrackee-0.7.0/* FitTrackee/
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
||||||
|
2
docs/_static/documentation_options.js
vendored
@ -1,6 +1,6 @@
|
|||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||||
VERSION: '0.6.12',
|
VERSION: '0.7.0',
|
||||||
LANGUAGE: 'en',
|
LANGUAGE: 'en',
|
||||||
COLLAPSE_INDEX: false,
|
COLLAPSE_INDEX: false,
|
||||||
BUILDER: 'html',
|
BUILDER: 'html',
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Authentication — FitTrackee 0.6.12
|
<title>Authentication — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Configuration — FitTrackee 0.6.12
|
<title>Configuration — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -153,7 +153,7 @@
|
|||||||
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.6.12"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.7.0"</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">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
||||||
<span class="p">}</span><span class="w"></span>
|
<span class="p">}</span><span class="w"></span>
|
||||||
@ -194,7 +194,7 @@
|
|||||||
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.6.12"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.7.0"</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">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
||||||
<span class="p">}</span><span class="w"></span>
|
<span class="p">}</span><span class="w"></span>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>API documentation — FitTrackee 0.6.12
|
<title>API documentation — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>OAuth2 — FitTrackee 0.6.12
|
<title>OAuth2 — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Records — FitTrackee 0.6.12
|
<title>Records — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Sports — FitTrackee 0.6.12
|
<title>Sports — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Statistics — FitTrackee 0.6.12
|
<title>Statistics — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Users — FitTrackee 0.6.12
|
<title>Users — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Workouts — FitTrackee 0.6.12
|
<title>Workouts — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Third-party applications — FitTrackee 0.6.12
|
<title>Third-party applications — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -136,10 +136,6 @@ most endpoints require authorization/authentication.</p>
|
|||||||
<p>To allow a third-party application to interact with API endpoints, an
|
<p>To allow a third-party application to interact with API endpoints, an
|
||||||
<a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749">OAuth2</a> client can be created
|
<a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749">OAuth2</a> client can be created
|
||||||
in user settings (‘apps’ tab).</p>
|
in user settings (‘apps’ tab).</p>
|
||||||
<div class="admonition note">
|
|
||||||
<p class="admonition-title">Note</p>
|
|
||||||
<p>OAuth2 support is implemented with <a class="reference external" href="https://docs.authlib.org/en/latest/">Authlib</a> library.</p>
|
|
||||||
</div>
|
|
||||||
<div class="admonition warning">
|
<div class="admonition warning">
|
||||||
<p class="admonition-title">Warning</p>
|
<p class="admonition-title">Warning</p>
|
||||||
<p>OAuth2 endpoints requiring authentication are not accessible by third-party
|
<p>OAuth2 endpoints requiring authentication are not accessible by third-party
|
||||||
@ -149,6 +145,7 @@ client (first-party application).</p>
|
|||||||
<p>FitTrackee supports only <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1">Authorization Code</a>
|
<p>FitTrackee supports only <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1">Authorization Code</a>
|
||||||
flow (with PKCE support).
|
flow (with PKCE support).
|
||||||
It allows to exchange an authorization code for an access token.
|
It allows to exchange an authorization code for an access token.
|
||||||
|
The client ID and secret must be sent in the POST body.
|
||||||
It is recommended to use <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc7636">PKCE</a>
|
It is recommended to use <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc7636">PKCE</a>
|
||||||
to provide a better security.</p>
|
to provide a better security.</p>
|
||||||
<p>The following scopes are available:</p>
|
<p>The following scopes are available:</p>
|
||||||
@ -164,10 +161,26 @@ to provide a better security.</p>
|
|||||||
<figure class="align-default">
|
<figure class="align-default">
|
||||||
<img alt="OAuth2 client creation on FitTrackee" src="_images/fittrackee_screenshot-07.png" />
|
<img alt="OAuth2 client creation on FitTrackee" src="_images/fittrackee_screenshot-07.png" />
|
||||||
</figure>
|
</figure>
|
||||||
|
<div class="admonition note">
|
||||||
|
<p class="admonition-title">Note</p>
|
||||||
|
<p>OAuth2 support is implemented with <a class="reference external" href="https://docs.authlib.org/en/latest/">Authlib</a> library.</p>
|
||||||
|
</div>
|
||||||
|
<div class="admonition warning">
|
||||||
|
<p class="admonition-title">Warning</p>
|
||||||
|
<div class="line-block">
|
||||||
|
<div class="line">If FitTrackee is running behind a proxy, the <code class="docutils literal notranslate"><span class="pre">X-Forwarded-Proto</span></code> header must be set.</div>
|
||||||
|
<div class="line">For instance for <cite>nginx</cite>:</div>
|
||||||
|
</div>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<p>Some resources about OAuth 2.0:</p>
|
<p>Some resources about OAuth 2.0:</p>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><a class="reference external" href="https://www.oauth.com">OAuth 2.0 Simplified</a> by <a class="reference external" href="https://aaronparecki.com">Aaron Parecki</a></p></li>
|
<li><p><a class="reference external" href="https://www.oauth.com">OAuth 2.0 Simplified</a> by <a class="reference external" href="https://aaronparecki.com">Aaron Parecki</a></p></li>
|
||||||
<li><p><a class="reference external" href="https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html">Web App Example of OAuth 2 web application flow</a> with Requests-OAuthlib</p></li>
|
<li><p><a class="reference external" href="https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html">Web App Example of OAuth 2 web application flow</a> with Requests-OAuthlib (python)</p></li>
|
||||||
|
<li><p><a class="reference external" href="https://docs.authlib.org/en/latest/client/oauth2.html#oauth-2-session">OAuth 2 Session</a> with Authlib (python)</p></li>
|
||||||
|
<li><p><a class="reference external" href="https://codeberg.org/SamR1/ft-oauth-client">Minimal example of an application interacting with FitTrackee</a> (python)</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Command line interface — FitTrackee 0.6.12
|
<title>Command line interface — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -146,7 +146,7 @@
|
|||||||
|
|
||||||
<section id="command-line-interface">
|
<section id="command-line-interface">
|
||||||
<h1>Command line interface<a class="headerlink" href="#command-line-interface" title="Permalink to this heading">¶</a></h1>
|
<h1>Command line interface<a class="headerlink" href="#command-line-interface" title="Permalink to this heading">¶</a></h1>
|
||||||
<p>A command line interface (CLI) is available to manage database and users.</p>
|
<p>A command line interface (CLI) is available to manage database, OAuth2 tokens and users.</p>
|
||||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ ftcli
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ ftcli
|
||||||
Usage: ftcli <span class="o">[</span>OPTIONS<span class="o">]</span> COMMAND <span class="o">[</span>ARGS<span class="o">]</span>...
|
Usage: ftcli <span class="o">[</span>OPTIONS<span class="o">]</span> COMMAND <span class="o">[</span>ARGS<span class="o">]</span>...
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Features — FitTrackee 0.6.12
|
<title>Features — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -144,6 +144,12 @@
|
|||||||
|
|
||||||
<section id="features">
|
<section id="features">
|
||||||
<h1>Features<a class="headerlink" href="#features" title="Permalink to this heading">¶</a></h1>
|
<h1>Features<a class="headerlink" href="#features" title="Permalink to this heading">¶</a></h1>
|
||||||
|
<div class="line-block">
|
||||||
|
<div class="line"><strong>FitTrackee</strong> allows you to store and display gpx files and some statistics from your outdoor activities.</div>
|
||||||
|
<div class="line">For now, this app is kind of a single-user application. Even if several users can register, a user can only view his own workouts.</div>
|
||||||
|
</div>
|
||||||
|
<p>Gpx files are stored in an upload directory (without encryption).</p>
|
||||||
|
<p>With the default configuration, <a class="reference external" href="https://www.openstreetmap.org">Open Street Map</a> is used as tile server in Workout detail and for static map generation.</p>
|
||||||
<section id="workouts">
|
<section id="workouts">
|
||||||
<h2>Workouts<a class="headerlink" href="#workouts" title="Permalink to this heading">¶</a></h2>
|
<h2>Workouts<a class="headerlink" href="#workouts" title="Permalink to this heading">¶</a></h2>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Index — FitTrackee 0.6.12
|
<title>Index — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -38,7 +38,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>HTTP Routing Table — FitTrackee 0.6.12
|
<title>HTTP Routing Table — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -45,7 +45,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>FitTrackee — FitTrackee 0.6.12
|
<title>FitTrackee — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -40,7 +40,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="#">
|
<a class="navbar-brand" href="#">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Installation — FitTrackee 0.6.12
|
<title>Installation — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ deployment method.</p>
|
|||||||
<dd><p><strong>FitTrackee</strong> host.</p>
|
<dd><p><strong>FitTrackee</strong> host.</p>
|
||||||
<dl class="field-list simple">
|
<dl class="field-list simple">
|
||||||
<dt class="field-odd">Default<span class="colon">:</span></dt>
|
<dt class="field-odd">Default<span class="colon">:</span></dt>
|
||||||
<dd class="field-odd"><p>0.0.0.0</p>
|
<dd class="field-odd"><p>127.0.0.1</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</dd></dl>
|
</dd></dl>
|
||||||
@ -787,11 +787,11 @@ $ make install-db
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>Download the last release (for now, it is the release v0.6.12):</p></li>
|
<li><p>Download the last release (for now, it is the release v0.7.0):</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.12.tar.gz
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.0.tar.gz
|
||||||
$ tar -xzf v0.6.12.tar.gz
|
$ tar -xzf v0.7.0.tar.gz
|
||||||
$ mv FitTrackee-0.6.12 FitTrackee
|
$ mv FitTrackee-0.7.0 FitTrackee
|
||||||
$ <span class="nb">cd</span> FitTrackee
|
$ <span class="nb">cd</span> FitTrackee
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
@ -911,11 +911,11 @@ $ <span class="nb">source</span> .env
|
|||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>Stop the application</p></li>
|
<li><p>Stop the application</p></li>
|
||||||
<li><p>Change to the directory where FitTrackee directory is located</p></li>
|
<li><p>Change to the directory where FitTrackee directory is located</p></li>
|
||||||
<li><p>Download the last release (for now, it is the release v0.6.12) and overwrite existing files:</p></li>
|
<li><p>Download the last release (for now, it is the release v0.7.0) and overwrite existing files:</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.12.tar.gz
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.0.tar.gz
|
||||||
$ tar -xzf v0.6.12.tar.gz
|
$ tar -xzf v0.7.0.tar.gz
|
||||||
$ cp -R FitTrackee-0.6.12/* FitTrackee/
|
$ cp -R FitTrackee-0.7.0/* FitTrackee/
|
||||||
$ <span class="nb">cd</span> FitTrackee
|
$ <span class="nb">cd</span> FitTrackee
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
|
BIN
docs/objects.inv
@ -4,7 +4,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Search — FitTrackee 0.6.12
|
<title>Search — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -45,7 +45,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Administrator — FitTrackee 0.6.12
|
<title>Administrator — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Troubleshooting — FitTrackee 0.6.12
|
<title>Troubleshooting — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>User — FitTrackee 0.6.12
|
<title>User — FitTrackee 0.7.0
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.6.12
|
<span class="navbar-text navbar-version pull-left"><b>0.7.0
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 550 KiB After Width: | Height: | Size: 550 KiB |
Before Width: | Height: | Size: 371 KiB After Width: | Height: | Size: 371 KiB |
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
@ -9,9 +9,6 @@ To allow a third-party application to interact with API endpoints, an
|
|||||||
`OAuth2 <https://datatracker.ietf.org/doc/html/rfc6749>`_ client can be created
|
`OAuth2 <https://datatracker.ietf.org/doc/html/rfc6749>`_ client can be created
|
||||||
in user settings ('apps' tab).
|
in user settings ('apps' tab).
|
||||||
|
|
||||||
.. note::
|
|
||||||
OAuth2 support is implemented with `Authlib <https://docs.authlib.org/en/latest/>`_ library.
|
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
OAuth2 endpoints requiring authentication are not accessible by third-party
|
OAuth2 endpoints requiring authentication are not accessible by third-party
|
||||||
applications (`documentation <api/oauth2.html>`__), only by FitTrackee
|
applications (`documentation <api/oauth2.html>`__), only by FitTrackee
|
||||||
@ -20,6 +17,7 @@ in user settings ('apps' tab).
|
|||||||
FitTrackee supports only `Authorization Code <https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1>`_
|
FitTrackee supports only `Authorization Code <https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1>`_
|
||||||
flow (with PKCE support).
|
flow (with PKCE support).
|
||||||
It allows to exchange an authorization code for an access token.
|
It allows to exchange an authorization code for an access token.
|
||||||
|
The client ID and secret must be sent in the POST body.
|
||||||
It is recommended to use `PKCE <https://datatracker.ietf.org/doc/html/rfc7636>`_
|
It is recommended to use `PKCE <https://datatracker.ietf.org/doc/html/rfc7636>`_
|
||||||
to provide a better security.
|
to provide a better security.
|
||||||
|
|
||||||
@ -36,7 +34,20 @@ The following scopes are available:
|
|||||||
.. figure:: _images/fittrackee_screenshot-07.png
|
.. figure:: _images/fittrackee_screenshot-07.png
|
||||||
:alt: OAuth2 client creation on FitTrackee
|
:alt: OAuth2 client creation on FitTrackee
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
OAuth2 support is implemented with `Authlib <https://docs.authlib.org/en/latest/>`_ library.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
| If FitTrackee is running behind a proxy, the ``X-Forwarded-Proto`` header must be set.
|
||||||
|
| For instance for `nginx`:
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
Some resources about OAuth 2.0:
|
Some resources about OAuth 2.0:
|
||||||
|
|
||||||
- `OAuth 2.0 Simplified <https://www.oauth.com>`_ by `Aaron Parecki <https://aaronparecki.com>`_
|
- `OAuth 2.0 Simplified <https://www.oauth.com>`_ by `Aaron Parecki <https://aaronparecki.com>`_
|
||||||
- `Web App Example of OAuth 2 web application flow <https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html>`_ with Requests-OAuthlib
|
- `Web App Example of OAuth 2 web application flow <https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html>`_ with Requests-OAuthlib (python)
|
||||||
|
- `OAuth 2 Session <https://docs.authlib.org/en/latest/client/oauth2.html#oauth-2-session>`_ with Authlib (python)
|
||||||
|
- `Minimal example of an application interacting with FitTrackee <https://codeberg.org/SamR1/ft-oauth-client>`_ (python)
|
@ -1,7 +1,7 @@
|
|||||||
Command line interface
|
Command line interface
|
||||||
######################
|
######################
|
||||||
|
|
||||||
A command line interface (CLI) is available to manage database and users.
|
A command line interface (CLI) is available to manage database, OAuth2 tokens and users.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
Features
|
Features
|
||||||
########
|
########
|
||||||
|
|
||||||
|
| **FitTrackee** allows you to store and display gpx files and some statistics from your outdoor activities.
|
||||||
|
| For now, this app is kind of a single-user application. Even if several users can register, a user can only view his own workouts.
|
||||||
|
|
||||||
|
Gpx files are stored in an upload directory (without encryption).
|
||||||
|
|
||||||
|
With the default configuration, `Open Street Map <https://www.openstreetmap.org>`__ is used as tile server in Workout detail and for static map generation.
|
||||||
|
|
||||||
|
|
||||||
Workouts
|
Workouts
|
||||||
^^^^^^^^
|
^^^^^^^^
|
||||||
- 11 sports are supported:
|
- 11 sports are supported:
|
||||||
|
@ -60,7 +60,7 @@ deployment method.
|
|||||||
|
|
||||||
**FitTrackee** host.
|
**FitTrackee** host.
|
||||||
|
|
||||||
:default: 0.0.0.0
|
:default: 127.0.0.1
|
||||||
|
|
||||||
|
|
||||||
.. envvar:: PORT
|
.. envvar:: PORT
|
||||||
@ -477,13 +477,13 @@ Production environment
|
|||||||
.. warning::
|
.. warning::
|
||||||
| Note that FitTrackee is under heavy development, some features may be unstable.
|
| Note that FitTrackee is under heavy development, some features may be unstable.
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.6.12):
|
- Download the last release (for now, it is the release v0.7.0):
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.12.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.0.tar.gz
|
||||||
$ tar -xzf v0.6.12.tar.gz
|
$ tar -xzf v0.7.0.tar.gz
|
||||||
$ mv FitTrackee-0.6.12 FitTrackee
|
$ mv FitTrackee-0.7.0 FitTrackee
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Create **.env** from example and update it
|
- Create **.env** from example and update it
|
||||||
@ -603,13 +603,13 @@ Prod environment
|
|||||||
|
|
||||||
- Change to the directory where FitTrackee directory is located
|
- Change to the directory where FitTrackee directory is located
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.6.12) and overwrite existing files:
|
- Download the last release (for now, it is the release v0.7.0) and overwrite existing files:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.12.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.0.tar.gz
|
||||||
$ tar -xzf v0.6.12.tar.gz
|
$ tar -xzf v0.7.0.tar.gz
|
||||||
$ cp -R FitTrackee-0.6.12/* FitTrackee/
|
$ cp -R FitTrackee-0.7.0/* FitTrackee/
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
||||||
|
@ -25,7 +25,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
|
|||||||
from fittrackee.emails.email import EmailService
|
from fittrackee.emails.email import EmailService
|
||||||
from fittrackee.request import CustomRequest
|
from fittrackee.request import CustomRequest
|
||||||
|
|
||||||
VERSION = __version__ = '0.6.12'
|
VERSION = __version__ = '0.7.0'
|
||||||
REDIS_URL = os.getenv('REDIS_URL', 'redis://')
|
REDIS_URL = os.getenv('REDIS_URL', 'redis://')
|
||||||
API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split(
|
API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split(
|
||||||
','
|
','
|
||||||
|
@ -48,7 +48,7 @@ def get_application_config() -> Union[Dict, HttpResponse]:
|
|||||||
"max_users": 0,
|
"max_users": 0,
|
||||||
"max_zip_file_size": 10485760,
|
"max_zip_file_size": 10485760,
|
||||||
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
||||||
"version": "0.6.12"
|
"version": "0.7.0"
|
||||||
},
|
},
|
||||||
"status": "success"
|
"status": "success"
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]:
|
|||||||
"max_users": 10,
|
"max_users": 10,
|
||||||
"max_zip_file_size": 10485760,
|
"max_zip_file_size": 10485760,
|
||||||
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
||||||
"version": "0.6.12"
|
"version": "0.7.0"
|
||||||
},
|
},
|
||||||
"status": "success"
|
"status": "success"
|
||||||
}
|
}
|
||||||
|
2
fittrackee/dist/index.html
vendored
@ -1 +1 @@
|
|||||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.e9c5b3a5.js"></script><script defer="defer" src="/static/js/app.487033cb.js"></script><link href="/static/css/app.eee1934d.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.e9c5b3a5.js"></script><script defer="defer" src="/static/js/app.4f3048de.js"></script><link href="/static/css/app.eee1934d.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
2
fittrackee/dist/service-worker.js
vendored
2
fittrackee/dist/service-worker.js.map
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "fittrackee_client",
|
"name": "fittrackee_client",
|
||||||
"version": "0.6.12",
|
"version": "0.7.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"serve": "vue-cli-service serve",
|
"serve": "vue-cli-service serve",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "fittrackee"
|
name = "fittrackee"
|
||||||
version = "0.6.12"
|
version = "0.7.0"
|
||||||
description = "Self-hosted outdoor workout/activity tracker"
|
description = "Self-hosted outdoor workout/activity tracker"
|
||||||
authors = ["SamR1"]
|
authors = ["SamR1"]
|
||||||
license = "AGPL-3.0"
|
license = "AGPL-3.0"
|
||||||
|