paskia 0.7.1__py3-none-any.whl → 0.7.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
paskia/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.7.1'
32
- __version_tuple__ = version_tuple = (0, 7, 1)
31
+ __version__ = version = '0.7.2'
32
+ __version_tuple__ = version_tuple = (0, 7, 2)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -0,0 +1,98 @@
1
+ Metadata-Version: 2.4
2
+ Name: paskia
3
+ Version: 0.7.2
4
+ Summary: Passkey Auth made easy: all sites and APIs can be guarded even without any changes on the protected site.
5
+ Project-URL: Homepage, https://git.zi.fi/LeoVasanko/paskia
6
+ Project-URL: Repository, https://github.com/LeoVasanko/paskia
7
+ Author: Leo Vasanko
8
+ Keywords: FastAPI,auth_request,forward_auth
9
+ Requires-Python: >=3.10
10
+ Requires-Dist: aiosqlite>=0.19.0
11
+ Requires-Dist: base64url>=1.0.0
12
+ Requires-Dist: fastapi[standard]>=0.104.1
13
+ Requires-Dist: pyjwt>=2.8.0
14
+ Requires-Dist: sqlalchemy[asyncio]>=2.0.0
15
+ Requires-Dist: user-agents>=2.2.0
16
+ Requires-Dist: uuid7-standard>=1.0.0
17
+ Requires-Dist: webauthn>=1.11.1
18
+ Requires-Dist: websockets>=12.0
19
+ Provides-Extra: dev
20
+ Requires-Dist: coverage[toml]>=7.0.0; extra == 'dev'
21
+ Requires-Dist: httpx>=0.27.0; extra == 'dev'
22
+ Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
23
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
24
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
25
+ Description-Content-Type: text/markdown
26
+
27
+ # Paskia
28
+
29
+ An easy to install passkey-based authentication service that protects any web application with strong passwordless login.
30
+
31
+ ## What is Paskia?
32
+
33
+ - Easy to use fully featured auth&auth system (login and permissions)
34
+ - Organization and role-based access control (optional)
35
+ * Org admins control their users and roles
36
+ * Master admin can create multiple independent orgs
37
+ * Master admin makes permissions available for orgs to assign
38
+ - User Profile and Administration by API and web interface.
39
+ under `/auth/` or `auth.example.com`
40
+ - Reset tokens and additional device linking via QR code or codewords.
41
+ - Pure Python, FastAPI, packaged with prebuilt Vue frontend
42
+
43
+ Two interfaces:
44
+ - API fetch: auth checks and login without leaving your app
45
+ - Forward-auth proxy: protect any unprotected site or service (Caddy, Nginx)
46
+
47
+ The API mode is useful for applications that can be customized to run with Paskia. Forward auth can also protect your javascript and other assets. Each provides fine-grained permission control and reauthentication requests where needed, and both can be mixed where needed.
48
+
49
+ Single Sign-On (SSO): Users register once and authenticate across all applications under your domain name (configured rp-id).
50
+
51
+ ## Quick Start
52
+
53
+ Install [UV](https://docs.astral.sh/uv/getting-started/installation/) and run:
54
+
55
+ ```fish
56
+ uvx paskia serve --rp-id example.com
57
+ ```
58
+
59
+ On the first run it downloads the software and prints a registration link for the Admin. If you are going to be connecting `localhost` directly, for testing, leave out the rp-id.
60
+
61
+ The server will start up on [localhost:4401](http://localhost:4401) "for authentication required", serving for `*.example.com`.
62
+
63
+ Otherwise you will need a web server such as [Caddy](https://caddyserver.com/) to serve HTTPS on your actual domain names and proxy requests to Paskia and your backend apps.
64
+
65
+ A quick example without any config file:
66
+ ```fish
67
+ sudo caddy reverse-proxy --from example.com --to :4401
68
+ ```
69
+
70
+ For a permanent install of `paskia` CLI command, not needing `uvx`:
71
+
72
+ ```fish
73
+ uv tool install paskia
74
+ ```
75
+
76
+ ## Configuration
77
+
78
+ There is no config file. Pass only the options on CLI:
79
+
80
+ ```text
81
+ paskia serve [options]
82
+ ```
83
+
84
+ Optional options:
85
+
86
+ - Listen address (one of):
87
+ * `[host]:port`: Address and port (default: `localhost:4401`)
88
+ * `unix:/path.sock`: Unix socket
89
+ - `--rp-id <domain>`: Main domain (required for production)
90
+ - `--rp-name "<text>"`: Name of your company or site (default: same as rp-id)
91
+ - `--origin <url>`: Explicit single site (default: `https://<rp-id>`)
92
+ - `--auth-host <domain>`: Dedicated authentication site (e.g., `auth.example.com`)
93
+
94
+ ## Documentation
95
+
96
+ - `API.md`: Complete HTTP and WebSocket API reference
97
+ - `Caddy.md`: Caddy configuration examples
98
+ - `Headers.md`: HTTP headers passed to protected applications
@@ -1,5 +1,5 @@
1
1
  paskia/__init__.py,sha256=6eopO87IOFA2zfOuqt8Jj8Tdtp93HBMOgUBtTzMRweM,57
2
- paskia/_version.py,sha256=az9tfX88VBVbBBILFx2zOlpMh1RBTXIwP6baQTMKtHc,704
2
+ paskia/_version.py,sha256=69rtUS5MR_8CGRaNqkaDM6V4ZDI_8FTMw2vDLxrWg0Q,704
3
3
  paskia/authsession.py,sha256=H9C_lPBEp4AmpNjLYQFQkAveG9lFVQGliyq35RXONkk,3901
4
4
  paskia/bootstrap.py,sha256=xT_Qx4FdTiA7_eMGzctja_BHkt36M4I3D3HBfq3vqp0,5799
5
5
  paskia/config.py,sha256=U_HGzZab-HEVPuoMXxy2mrpoiZYW4jy_jiWDnhf0wBA,749
@@ -58,7 +58,7 @@ paskia/util/tokens.py,sha256=KGgVz7LXZYHz_7deX6qT7MtHmO3yify7O5ncv-8BYgE,1335
58
58
  paskia/util/useragent.py,sha256=wOeueToxKHdJ91vT5jMVBoIhelNwxD5u7vgWQGSjImA,325
59
59
  paskia/util/userinfo.py,sha256=CEV-IYFoiTqBeKnqm_SJlXowy1R6Jc6t2t9EDpKnhvM,5182
60
60
  paskia/util/wordlist.py,sha256=EKwrABkqRO1f59--muegOoluPydPJAHlWJNXwV0IFyA,6069
61
- paskia-0.7.1.dist-info/METADATA,sha256=Gh-LyfaqS81Mx3Cg2-VWXtdpv5ay0lcVWI1GvhuFSGY,825
62
- paskia-0.7.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
63
- paskia-0.7.1.dist-info/entry_points.txt,sha256=8jB3Hhf5N_HPouTcfdyTFTkM9bz5q7cOAz2PmkxKmuU,56
64
- paskia-0.7.1.dist-info/RECORD,,
61
+ paskia-0.7.2.dist-info/METADATA,sha256=3MGyzbO3IZ_NEPm_5XpOG8mNclR6BJO35qPnNQaPjXw,3788
62
+ paskia-0.7.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
63
+ paskia-0.7.2.dist-info/entry_points.txt,sha256=8jB3Hhf5N_HPouTcfdyTFTkM9bz5q7cOAz2PmkxKmuU,56
64
+ paskia-0.7.2.dist-info/RECORD,,
@@ -1,22 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: paskia
3
- Version: 0.7.1
4
- Summary: Passkey Auth made easy: all sites and APIs can be guarded even without any changes on the protected site.
5
- Author: Leo Vasanko
6
- Keywords: FastAPI,auth_request,forward_auth
7
- Requires-Python: >=3.10
8
- Requires-Dist: aiosqlite>=0.19.0
9
- Requires-Dist: base64url>=1.0.0
10
- Requires-Dist: fastapi[standard]>=0.104.1
11
- Requires-Dist: pyjwt>=2.8.0
12
- Requires-Dist: sqlalchemy[asyncio]>=2.0.0
13
- Requires-Dist: user-agents>=2.2.0
14
- Requires-Dist: uuid7-standard>=1.0.0
15
- Requires-Dist: webauthn>=1.11.1
16
- Requires-Dist: websockets>=12.0
17
- Provides-Extra: dev
18
- Requires-Dist: coverage[toml]>=7.0.0; extra == 'dev'
19
- Requires-Dist: httpx>=0.27.0; extra == 'dev'
20
- Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
21
- Requires-Dist: pytest>=8.0.0; extra == 'dev'
22
- Requires-Dist: ruff>=0.1.0; extra == 'dev'
File without changes