algovoi-keystone-control 0.4.0__tar.gz
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.
- algovoi_keystone_control-0.4.0/LICENSE +17 -0
- algovoi_keystone_control-0.4.0/NOTICE +6 -0
- algovoi_keystone_control-0.4.0/PKG-INFO +100 -0
- algovoi_keystone_control-0.4.0/README.md +74 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/__init__.py +2 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/api.py +709 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/cli.py +34 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/detect.py +491 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/licensing.py +86 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/store.py +86 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/tls.py +77 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control/verify.py +71 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control.egg-info/PKG-INFO +100 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control.egg-info/SOURCES.txt +21 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control.egg-info/dependency_links.txt +1 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control.egg-info/entry_points.txt +3 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control.egg-info/requires.txt +5 -0
- algovoi_keystone_control-0.4.0/algovoi_keystone_control.egg-info/top_level.txt +1 -0
- algovoi_keystone_control-0.4.0/pyproject.toml +41 -0
- algovoi_keystone_control-0.4.0/setup.cfg +4 -0
- algovoi_keystone_control-0.4.0/tests/test_api_auth_csrf.py +121 -0
- algovoi_keystone_control-0.4.0/tests/test_descriptor_trust.py +125 -0
- algovoi_keystone_control-0.4.0/tests/test_store_robustness.py +76 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
Copyright 2026 AlgoVoi Ltd
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: algovoi-keystone-control
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Summary: Open keystone settings control panel — discovers installed keystone steps via their algovoi.keystone.steps entry points, binds each to its canonical ref, and tunes policy without changing the hash
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
Project-URL: Homepage, https://www.algovoi.co.uk
|
|
7
|
+
Project-URL: Repository, https://github.com/chopmob-cloud/algovoi-keystone
|
|
8
|
+
Project-URL: Documentation, https://docs.algovoi.co.uk
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
License-File: NOTICE
|
|
20
|
+
Requires-Dist: fastapi>=0.110
|
|
21
|
+
Requires-Dist: uvicorn[standard]>=0.29
|
|
22
|
+
Requires-Dist: python-multipart>=0.0.9
|
|
23
|
+
Requires-Dist: cryptography>=42.0
|
|
24
|
+
Requires-Dist: algovoi-substrate>=0.4.0
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
|
|
27
|
+
# AlgoVoi Keystone Control
|
|
28
|
+
|
|
29
|
+
Browser panel for installed AlgoVoi keystone packages. Auto-detects which keystone steps are present in the environment, shows their current settings, and lets operators edit them with a pin-gated editor.
|
|
30
|
+
|
|
31
|
+
Runs over HTTPS out of the box. A self-signed TLS certificate is generated on first start and reused on subsequent runs. Bring your own cert by setting `ALGV_TLS_CERT` and `ALGV_TLS_KEY`.
|
|
32
|
+
|
|
33
|
+
## Requirements
|
|
34
|
+
|
|
35
|
+
- Python 3.11+, Linux x86_64
|
|
36
|
+
- At least one AlgoVoi keystone package installed in the same environment
|
|
37
|
+
|
|
38
|
+
## Install
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install algovoi-keystone-control
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Run
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
ALGV_ADMIN_TOKEN=<your-token> algv-keystone
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The panel starts on `https://0.0.0.0:8077`. Open it in a browser and accept the self-signed certificate, or point your browser at a trusted cert with `ALGV_TLS_CERT`.
|
|
51
|
+
|
|
52
|
+
### Environment variables
|
|
53
|
+
|
|
54
|
+
| Variable | Default | Purpose |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `ALGV_ADMIN_TOKEN` | (required) | Bearer token for panel access |
|
|
57
|
+
| `ALGV_PORT` | `8077` | Listening port |
|
|
58
|
+
| `ALGV_HOST` | `0.0.0.0` | Listening address |
|
|
59
|
+
| `ALGV_DATA_DIR` | `~/.algv/keystone` | TLS cert and settings storage |
|
|
60
|
+
| `ALGV_TLS_CERT` | (auto) | Path to a BYO TLS certificate |
|
|
61
|
+
| `ALGV_TLS_KEY` | (auto) | Path to a BYO TLS private key |
|
|
62
|
+
|
|
63
|
+
### Systemd example
|
|
64
|
+
|
|
65
|
+
```ini
|
|
66
|
+
[Unit]
|
|
67
|
+
Description=AlgoVoi Keystone Control
|
|
68
|
+
After=network.target
|
|
69
|
+
|
|
70
|
+
[Service]
|
|
71
|
+
User=algv
|
|
72
|
+
EnvironmentFile=/etc/algv/keystone.env
|
|
73
|
+
ExecStart=/opt/algv/.venv/bin/algv-keystone
|
|
74
|
+
Restart=on-failure
|
|
75
|
+
|
|
76
|
+
[Install]
|
|
77
|
+
WantedBy=multi-user.target
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`/etc/algv/keystone.env` (mode 0600):
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
ALGV_ADMIN_TOKEN=<your-token>
|
|
84
|
+
ALGV_DATA_DIR=/var/lib/algv/keystone
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## API
|
|
88
|
+
|
|
89
|
+
All endpoints require `Authorization: Bearer <token>`.
|
|
90
|
+
|
|
91
|
+
| Method | Path | Description |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| `GET` | `/v1/steps` | Installed keystone steps and their current settings |
|
|
94
|
+
| `GET` | `/v1/all-known` | All known keystone steps, installed and uninstalled |
|
|
95
|
+
| `PUT` | `/v1/settings/{step}` | Update settings for a step (pin-gated) |
|
|
96
|
+
| `POST` | `/v1/reset/{step}` | Reset a step to defaults (pin-gated) |
|
|
97
|
+
|
|
98
|
+
## License
|
|
99
|
+
|
|
100
|
+
Apache-2.0. See [NOTICE](NOTICE).
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# AlgoVoi Keystone Control
|
|
2
|
+
|
|
3
|
+
Browser panel for installed AlgoVoi keystone packages. Auto-detects which keystone steps are present in the environment, shows their current settings, and lets operators edit them with a pin-gated editor.
|
|
4
|
+
|
|
5
|
+
Runs over HTTPS out of the box. A self-signed TLS certificate is generated on first start and reused on subsequent runs. Bring your own cert by setting `ALGV_TLS_CERT` and `ALGV_TLS_KEY`.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
- Python 3.11+, Linux x86_64
|
|
10
|
+
- At least one AlgoVoi keystone package installed in the same environment
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install algovoi-keystone-control
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Run
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
ALGV_ADMIN_TOKEN=<your-token> algv-keystone
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The panel starts on `https://0.0.0.0:8077`. Open it in a browser and accept the self-signed certificate, or point your browser at a trusted cert with `ALGV_TLS_CERT`.
|
|
25
|
+
|
|
26
|
+
### Environment variables
|
|
27
|
+
|
|
28
|
+
| Variable | Default | Purpose |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| `ALGV_ADMIN_TOKEN` | (required) | Bearer token for panel access |
|
|
31
|
+
| `ALGV_PORT` | `8077` | Listening port |
|
|
32
|
+
| `ALGV_HOST` | `0.0.0.0` | Listening address |
|
|
33
|
+
| `ALGV_DATA_DIR` | `~/.algv/keystone` | TLS cert and settings storage |
|
|
34
|
+
| `ALGV_TLS_CERT` | (auto) | Path to a BYO TLS certificate |
|
|
35
|
+
| `ALGV_TLS_KEY` | (auto) | Path to a BYO TLS private key |
|
|
36
|
+
|
|
37
|
+
### Systemd example
|
|
38
|
+
|
|
39
|
+
```ini
|
|
40
|
+
[Unit]
|
|
41
|
+
Description=AlgoVoi Keystone Control
|
|
42
|
+
After=network.target
|
|
43
|
+
|
|
44
|
+
[Service]
|
|
45
|
+
User=algv
|
|
46
|
+
EnvironmentFile=/etc/algv/keystone.env
|
|
47
|
+
ExecStart=/opt/algv/.venv/bin/algv-keystone
|
|
48
|
+
Restart=on-failure
|
|
49
|
+
|
|
50
|
+
[Install]
|
|
51
|
+
WantedBy=multi-user.target
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`/etc/algv/keystone.env` (mode 0600):
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
ALGV_ADMIN_TOKEN=<your-token>
|
|
58
|
+
ALGV_DATA_DIR=/var/lib/algv/keystone
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## API
|
|
62
|
+
|
|
63
|
+
All endpoints require `Authorization: Bearer <token>`.
|
|
64
|
+
|
|
65
|
+
| Method | Path | Description |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| `GET` | `/v1/steps` | Installed keystone steps and their current settings |
|
|
68
|
+
| `GET` | `/v1/all-known` | All known keystone steps, installed and uninstalled |
|
|
69
|
+
| `PUT` | `/v1/settings/{step}` | Update settings for a step (pin-gated) |
|
|
70
|
+
| `POST` | `/v1/reset/{step}` | Reset a step to defaults (pin-gated) |
|
|
71
|
+
|
|
72
|
+
## License
|
|
73
|
+
|
|
74
|
+
Apache-2.0. See [NOTICE](NOTICE).
|