toolframe-auth 0.3.0__tar.gz → 0.3.2__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.
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/.github/workflows/ci.yml +2 -2
- toolframe_auth-0.3.2/.github/workflows/compatibility.yml +85 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/.github/workflows/publish.yml +6 -20
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/PKG-INFO +9 -6
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/README.md +7 -4
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/docs/ci.md +6 -7
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/docs/releasing.md +12 -11
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/pyproject.toml +3 -3
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/scripts/ci.py +3 -3
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/uv.lock +4 -3
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/.github/workflows/quality.yml +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/.gitignore +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/.pre-commit-config.yaml +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/CONTRIBUTING.md +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/LICENSE +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/NOTICE +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/cchk.toml +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/scripts/check_branch_name.py +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/__init__.py +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/crypto.py +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/identities.py +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/migrations/v1.postgresql.sql +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/migrations/v2.postgresql.sql +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/plugin.py +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/tests/test_auth.py +0 -0
- {toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/tests/test_identities.py +0 -0
|
@@ -38,7 +38,7 @@ jobs:
|
|
|
38
38
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
39
39
|
with:
|
|
40
40
|
repository: ${{ vars.TOOLFRAME_REPOSITORY_OWNER || github.repository_owner }}/toolframe-sdk
|
|
41
|
-
ref:
|
|
41
|
+
ref: 539ced4dbdf9e303ec0f0205a35d65287a480b2a
|
|
42
42
|
path: toolframe-sdk
|
|
43
43
|
token: ${{ secrets.TOOLFRAME_READ_TOKEN || secrets.TOOLFRAME_DEPENDENCIES_TOKEN || github.token }}
|
|
44
44
|
persist-credentials: false
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
48
48
|
with:
|
|
49
49
|
repository: ${{ vars.TOOLFRAME_REPOSITORY_OWNER || github.repository_owner }}/toolframe-sql-sqlite
|
|
50
|
-
ref:
|
|
50
|
+
ref: d4f3fcf9d8145fd0dab3d57aad8a452fb5aa527b
|
|
51
51
|
path: toolframe-sql-sqlite
|
|
52
52
|
token: ${{ secrets.TOOLFRAME_READ_TOKEN || secrets.TOOLFRAME_DEPENDENCIES_TOKEN || github.token }}
|
|
53
53
|
persist-credentials: false
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: SDK compatibility
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
schedule:
|
|
8
|
+
- cron: '17 4 * * *'
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
workflow_call:
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
wheel:
|
|
17
|
+
name: Build the shared plugin wheel
|
|
18
|
+
runs-on: ubuntu-24.04
|
|
19
|
+
timeout-minutes: 10
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
22
|
+
with:
|
|
23
|
+
persist-credentials: false
|
|
24
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
25
|
+
with:
|
|
26
|
+
python-version: '3.14.7'
|
|
27
|
+
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
|
|
28
|
+
with:
|
|
29
|
+
version: '0.12.8'
|
|
30
|
+
enable-cache: false
|
|
31
|
+
- run: uv build --no-sources --wheel --out-dir build/compatibility-wheel
|
|
32
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
33
|
+
with:
|
|
34
|
+
name: compatibility-wheel
|
|
35
|
+
path: build/compatibility-wheel/*.whl
|
|
36
|
+
if-no-files-found: error
|
|
37
|
+
retention-days: 7
|
|
38
|
+
|
|
39
|
+
compatibility:
|
|
40
|
+
name: SDK ${{ matrix.sdk }}
|
|
41
|
+
needs: wheel
|
|
42
|
+
runs-on: ubuntu-24.04
|
|
43
|
+
timeout-minutes: 20
|
|
44
|
+
strategy:
|
|
45
|
+
fail-fast: false
|
|
46
|
+
matrix:
|
|
47
|
+
sdk: [minimum, latest]
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: false
|
|
52
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
53
|
+
with:
|
|
54
|
+
python-version: '3.14.7'
|
|
55
|
+
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
|
|
56
|
+
with:
|
|
57
|
+
version: '0.12.8'
|
|
58
|
+
enable-cache: false
|
|
59
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
60
|
+
with:
|
|
61
|
+
name: compatibility-wheel
|
|
62
|
+
path: build/compatibility-wheel
|
|
63
|
+
- name: Select the unchanged wheel
|
|
64
|
+
id: wheels
|
|
65
|
+
shell: bash
|
|
66
|
+
run: |
|
|
67
|
+
plugin=(build/compatibility-wheel/toolframe_auth-*.whl)
|
|
68
|
+
test "${#plugin[@]}" = 1
|
|
69
|
+
echo "plugin=${plugin[0]}" >> "$GITHUB_OUTPUT"
|
|
70
|
+
- name: Verify installed wheel and package tests
|
|
71
|
+
uses: toolframe/toolframe-sdk/.github/actions/plugin-compatibility@2e2a3d79f35fbdb04249e8351fe9c75fc2164269
|
|
72
|
+
with:
|
|
73
|
+
mode: ${{ matrix.sdk }}
|
|
74
|
+
wheel: ${{ steps.wheels.outputs.plugin }}
|
|
75
|
+
output: build/compatibility-${{ matrix.sdk }}
|
|
76
|
+
- name: Retain compatibility evidence
|
|
77
|
+
if: always()
|
|
78
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
79
|
+
with:
|
|
80
|
+
name: compatibility-${{ matrix.sdk }}
|
|
81
|
+
path: |
|
|
82
|
+
build/compatibility-${{ matrix.sdk }}/report.json
|
|
83
|
+
build/compatibility-${{ matrix.sdk }}/pytest.xml
|
|
84
|
+
if-no-files-found: warn
|
|
85
|
+
retention-days: 14
|
|
@@ -2,21 +2,12 @@ name: Publish Python package
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_dispatch:
|
|
5
|
-
inputs:
|
|
6
|
-
repository:
|
|
7
|
-
description: Package index (run this workflow on a v<project.version> tag)
|
|
8
|
-
type: choice
|
|
9
|
-
options:
|
|
10
|
-
- testpypi
|
|
11
|
-
- pypi
|
|
12
|
-
default: testpypi
|
|
13
|
-
required: true
|
|
14
5
|
|
|
15
6
|
permissions:
|
|
16
7
|
contents: read
|
|
17
8
|
|
|
18
9
|
concurrency:
|
|
19
|
-
group: publish-${{ github.repository }}-${{ github.ref }}
|
|
10
|
+
group: publish-${{ github.repository }}-${{ github.ref }}-pypi
|
|
20
11
|
cancel-in-progress: false
|
|
21
12
|
|
|
22
13
|
jobs:
|
|
@@ -26,12 +17,15 @@ jobs:
|
|
|
26
17
|
with:
|
|
27
18
|
release-ref: ${{ github.ref }}
|
|
28
19
|
|
|
20
|
+
compatibility:
|
|
21
|
+
uses: ./.github/workflows/compatibility.yml
|
|
22
|
+
|
|
29
23
|
publish:
|
|
30
|
-
needs: validate
|
|
24
|
+
needs: [validate, compatibility]
|
|
31
25
|
runs-on: ubuntu-24.04
|
|
32
26
|
timeout-minutes: 10
|
|
33
27
|
environment:
|
|
34
|
-
name:
|
|
28
|
+
name: pypi
|
|
35
29
|
permissions:
|
|
36
30
|
id-token: write
|
|
37
31
|
steps:
|
|
@@ -41,15 +35,7 @@ jobs:
|
|
|
41
35
|
name: toolframe-auth-dist
|
|
42
36
|
path: dist
|
|
43
37
|
|
|
44
|
-
- name: Publish to TestPyPI
|
|
45
|
-
if: inputs.repository == 'testpypi'
|
|
46
|
-
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
47
|
-
with:
|
|
48
|
-
repository-url: https://test.pypi.org/legacy/
|
|
49
|
-
packages-dir: dist/
|
|
50
|
-
|
|
51
38
|
- name: Publish to PyPI
|
|
52
|
-
if: inputs.repository == 'pypi'
|
|
53
39
|
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
54
40
|
with:
|
|
55
41
|
packages-dir: dist/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: toolframe-auth
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2
|
|
4
4
|
Summary: Managed access passwords and sessions for Toolframe
|
|
5
5
|
Project-URL: Homepage, https://github.com/toolframe/toolframe-auth
|
|
6
6
|
Project-URL: Repository, https://github.com/toolframe/toolframe-auth
|
|
@@ -11,21 +11,21 @@ License-Expression: Apache-2.0
|
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
License-File: NOTICE
|
|
13
13
|
Requires-Python: >=3.14
|
|
14
|
-
Requires-Dist: toolframe-sdk
|
|
14
|
+
Requires-Dist: toolframe-sdk<1,>=0.4.0
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
|
|
17
17
|
# Toolframe Auth
|
|
18
18
|
|
|
19
19
|
Authentication and grant decisions for access passwords, federated users and
|
|
20
20
|
revocable agent delegation. This provider owns `auth`'s managed SQL store; it never opens
|
|
21
|
-
database files itself. It requires SDK 0.4
|
|
21
|
+
database files itself. It requires SDK 0.4 and `toolframe.sql`.
|
|
22
22
|
|
|
23
23
|
## Install
|
|
24
24
|
|
|
25
25
|
With a running Toolframe application and an active SQL storage provider:
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
|
-
toolframe --home APP plugin add pypi:toolframe-auth==0.3.
|
|
28
|
+
toolframe --home APP plugin add pypi:toolframe-auth==0.3.2 --enable
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
The [Entry Register template](https://github.com/toolframe/toolframe-core#readme)
|
|
@@ -107,7 +107,7 @@ uv build --wheel
|
|
|
107
107
|
|
|
108
108
|
For the same isolated lint, tests, distribution and wheel-install checks used by
|
|
109
109
|
GitHub Actions, run `python3.14 scripts/ci.py`. See [CI and publishing](docs/ci.md)
|
|
110
|
-
for pinned sibling sources, local requirements and
|
|
110
|
+
for pinned sibling sources, local requirements and PyPI setup.
|
|
111
111
|
|
|
112
112
|
Core owns access policy. Its compatible OIDC integration supports
|
|
113
113
|
`access.failure_mode = "closed"` for protected deployments; the default preserves
|
|
@@ -122,10 +122,13 @@ Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) and [NOTI
|
|
|
122
122
|
|
|
123
123
|
## PostgreSQL storage
|
|
124
124
|
|
|
125
|
-
Version 0.
|
|
125
|
+
Version 0.3 requires SDK 0.4 and declares PostgreSQL migration SQL alongside the
|
|
126
126
|
unchanged SQLite history. Provision this plugin’s stable store owner with the
|
|
127
127
|
PostgreSQL provider before enabling it. The application still runs one Core;
|
|
128
128
|
retain its private keys and configuration with the application home. Existing
|
|
129
129
|
SQLite records are not imported automatically.
|
|
130
130
|
|
|
131
131
|
For development hooks and contribution rules, see [Contributing](CONTRIBUTING.md).
|
|
132
|
+
|
|
133
|
+
Plugin dependencies allow compatible SDK 0.x updates from the declared minimum.
|
|
134
|
+
See the [SDK compatibility policy](https://github.com/toolframe/toolframe-sdk/blob/main/docs/compatibility.md) for API guarantees and minimum/latest verification.
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Authentication and grant decisions for access passwords, federated users and
|
|
4
4
|
revocable agent delegation. This provider owns `auth`'s managed SQL store; it never opens
|
|
5
|
-
database files itself. It requires SDK 0.4
|
|
5
|
+
database files itself. It requires SDK 0.4 and `toolframe.sql`.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
With a running Toolframe application and an active SQL storage provider:
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
toolframe --home APP plugin add pypi:toolframe-auth==0.3.
|
|
12
|
+
toolframe --home APP plugin add pypi:toolframe-auth==0.3.2 --enable
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
The [Entry Register template](https://github.com/toolframe/toolframe-core#readme)
|
|
@@ -91,7 +91,7 @@ uv build --wheel
|
|
|
91
91
|
|
|
92
92
|
For the same isolated lint, tests, distribution and wheel-install checks used by
|
|
93
93
|
GitHub Actions, run `python3.14 scripts/ci.py`. See [CI and publishing](docs/ci.md)
|
|
94
|
-
for pinned sibling sources, local requirements and
|
|
94
|
+
for pinned sibling sources, local requirements and PyPI setup.
|
|
95
95
|
|
|
96
96
|
Core owns access policy. Its compatible OIDC integration supports
|
|
97
97
|
`access.failure_mode = "closed"` for protected deployments; the default preserves
|
|
@@ -106,10 +106,13 @@ Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) and [NOTI
|
|
|
106
106
|
|
|
107
107
|
## PostgreSQL storage
|
|
108
108
|
|
|
109
|
-
Version 0.
|
|
109
|
+
Version 0.3 requires SDK 0.4 and declares PostgreSQL migration SQL alongside the
|
|
110
110
|
unchanged SQLite history. Provision this plugin’s stable store owner with the
|
|
111
111
|
PostgreSQL provider before enabling it. The application still runs one Core;
|
|
112
112
|
retain its private keys and configuration with the application home. Existing
|
|
113
113
|
SQLite records are not imported automatically.
|
|
114
114
|
|
|
115
115
|
For development hooks and contribution rules, see [Contributing](CONTRIBUTING.md).
|
|
116
|
+
|
|
117
|
+
Plugin dependencies allow compatible SDK 0.x updates from the declared minimum.
|
|
118
|
+
See the [SDK compatibility policy](https://github.com/toolframe/toolframe-sdk/blob/main/docs/compatibility.md) for API guarantees and minimum/latest verification.
|
|
@@ -14,8 +14,8 @@ never used or modified.
|
|
|
14
14
|
|
|
15
15
|
| Repository | Required commit |
|
|
16
16
|
| --- | --- |
|
|
17
|
-
| `toolframe-sdk` | `
|
|
18
|
-
| `toolframe-sql-sqlite` | `
|
|
17
|
+
| `toolframe-sdk` | `539ced4dbdf9e303ec0f0205a35d65287a480b2a` |
|
|
18
|
+
| `toolframe-sql-sqlite` | `d4f3fcf9d8145fd0dab3d57aad8a452fb5aa527b` |
|
|
19
19
|
|
|
20
20
|
By default, both repositories are siblings of this checkout. Use `--sdk-repo`
|
|
21
21
|
and `--storage-repo` to point to other local clones. Internet access is required
|
|
@@ -68,14 +68,13 @@ the default `GITHUB_TOKEN` cannot read another private repository. Fork pull
|
|
|
68
68
|
requests cannot access that secret and require publicly readable dependencies
|
|
69
69
|
to pass. Checkout credentials are not persisted.
|
|
70
70
|
|
|
71
|
-
`publish.yml`
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
the version gate. The reusable CI workflow validates the selected `github.sha`,
|
|
71
|
+
`publish.yml` publishes to PyPI on manual dispatch only. Run it on an existing
|
|
72
|
+
tag named exactly `v<project.version>`. A branch ref or mismatched tag fails the
|
|
73
|
+
version gate. The reusable CI workflow validates the selected `github.sha`,
|
|
75
74
|
and publishing downloads only that run's validated artifact. The publishing
|
|
76
75
|
job has a 10-minute timeout and is the only job with `id-token: write`. It does
|
|
77
76
|
not rebuild the distributions. Duplicate uploads fail; existing files are not
|
|
78
|
-
silently skipped. Publish runs for the same tag
|
|
77
|
+
silently skipped. Publish runs for the same tag are serialized without
|
|
79
78
|
cancelling an in-progress run.
|
|
80
79
|
|
|
81
80
|
## Publication
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Releasing toolframe-auth
|
|
2
2
|
|
|
3
|
-
The distribution name is `toolframe-auth
|
|
3
|
+
The distribution name is `toolframe-auth`. The version is defined in `pyproject.toml`.
|
|
4
4
|
Release tags must exactly match `v<project.version>`. Ordinary CI never uploads
|
|
5
5
|
packages. The manual `publish.yml` workflow reruns validation and publishes only
|
|
6
6
|
artifacts produced by that successful run.
|
|
@@ -10,13 +10,14 @@ artifacts produced by that successful run.
|
|
|
10
10
|
Run the repository's existing validation workflow; its local commands and
|
|
11
11
|
integration coverage are described in [CI](ci.md).
|
|
12
12
|
|
|
13
|
-
Publish
|
|
13
|
+
Publish any newly required SDK version before the plugin. Compatible Core or SDK
|
|
14
|
+
updates alone do not require a plugin release. The coordinated order and native CLI channels are documented in
|
|
14
15
|
[Toolframe's release guide](https://github.com/toolframe/toolframe-core/blob/main/docs/releasing.md).
|
|
15
16
|
|
|
16
17
|
## Trusted Publishers
|
|
17
18
|
|
|
18
|
-
Create GitHub
|
|
19
|
-
|
|
19
|
+
Create a GitHub environment named `pypi`. On PyPI, configure a normal or
|
|
20
|
+
pending Trusted Publisher with these values:
|
|
20
21
|
|
|
21
22
|
| Field | Value |
|
|
22
23
|
| --- | --- |
|
|
@@ -24,7 +25,7 @@ package index, configure a normal or pending Trusted Publisher with these values
|
|
|
24
25
|
| GitHub owner | `toolframe` |
|
|
25
26
|
| GitHub repository | `toolframe-auth` |
|
|
26
27
|
| Workflow filename | `publish.yml` |
|
|
27
|
-
| Environment | `
|
|
28
|
+
| Environment | `pypi` |
|
|
28
29
|
|
|
29
30
|
If publishing from another owner, use that actual owner in the publisher binding.
|
|
30
31
|
Follow [PyPI's Trusted Publishing guide](https://docs.pypi.org/trusted-publishers/using-a-publisher/).
|
|
@@ -40,7 +41,7 @@ sibling owner where the workflow exposes that variable.
|
|
|
40
41
|
## Publish and verify
|
|
41
42
|
|
|
42
43
|
After the release commit and matching tag are available remotely, manually run
|
|
43
|
-
`publish.yml` at `
|
|
44
|
+
`publish.yml` at the matching `v<project.version>` tag to publish to PyPI.
|
|
44
45
|
A branch or mismatched tag is rejected. Downloaded files are the artifacts from
|
|
45
46
|
that run; the publishing job does not rebuild them. Published files cannot be
|
|
46
47
|
replaced under the same version.
|
|
@@ -49,11 +50,11 @@ After PyPI publication, verify a clean installation:
|
|
|
49
50
|
|
|
50
51
|
```sh
|
|
51
52
|
uv venv --python 3.14.7 build/consumer
|
|
52
|
-
uv pip install --python build/consumer/bin/python 'toolframe-auth==0.3.
|
|
53
|
+
uv pip install --python build/consumer/bin/python 'toolframe-auth==0.3.2'
|
|
53
54
|
uv pip check --python build/consumer/bin/python
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
Test the specific artifact with dependencies from PyPI. Local artifact checks
|
|
58
|
+
alone do not demonstrate that the published package resolves correctly from
|
|
59
|
+
PyPI. Keep logs, hashes and exact revisions in CI artifacts or ignored local
|
|
60
|
+
evidence directories.
|
|
@@ -4,14 +4,14 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "toolframe-auth"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.2"
|
|
8
8
|
description = "Managed access passwords and sessions for Toolframe"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
11
11
|
license-files = ["LICENSE", "NOTICE"]
|
|
12
12
|
authors = [{ name = "byfb", email = "62798989+byfb@users.noreply.github.com" }]
|
|
13
13
|
requires-python = ">=3.14"
|
|
14
|
-
dependencies = ["toolframe-sdk
|
|
14
|
+
dependencies = ["toolframe-sdk<1,>=0.4.0"]
|
|
15
15
|
|
|
16
16
|
[project.urls]
|
|
17
17
|
Homepage = "https://github.com/toolframe/toolframe-auth"
|
|
@@ -23,7 +23,7 @@ Issues = "https://github.com/toolframe/toolframe-auth/issues"
|
|
|
23
23
|
auth = "toolframe_auth.plugin:plugin"
|
|
24
24
|
|
|
25
25
|
[dependency-groups]
|
|
26
|
-
dev = ["pytest>=8,<10", "pytest-asyncio>=1,<2", "ruff>=0.12,<1", "toolframe-sql-sqlite
|
|
26
|
+
dev = ["pytest>=8,<10", "pytest-asyncio>=1,<2", "ruff>=0.12,<1", "toolframe-sql-sqlite>=0.4.1,<0.5"]
|
|
27
27
|
|
|
28
28
|
[tool.uv.sources]
|
|
29
29
|
toolframe-sdk = { path = "../toolframe-sdk", editable = true }
|
|
@@ -16,8 +16,8 @@ from pathlib import Path
|
|
|
16
16
|
|
|
17
17
|
ROOT = Path(__file__).resolve().parents[1]
|
|
18
18
|
DEPENDENCIES = {
|
|
19
|
-
"toolframe-sdk": "
|
|
20
|
-
"toolframe-sql-sqlite": "
|
|
19
|
+
"toolframe-sdk": "539ced4dbdf9e303ec0f0205a35d65287a480b2a",
|
|
20
|
+
"toolframe-sql-sqlite": "d4f3fcf9d8145fd0dab3d57aad8a452fb5aa527b",
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
|
|
@@ -229,7 +229,7 @@ from toolframe_auth.crypto import new_verifier, verifier
|
|
|
229
229
|
location = pathlib.Path(toolframe_auth.__file__).resolve()
|
|
230
230
|
assert location.is_relative_to(pathlib.Path(sys.prefix).resolve())
|
|
231
231
|
assert metadata.version("toolframe-auth") == sys.argv[1]
|
|
232
|
-
assert metadata.version("toolframe-sdk") == "0.4.
|
|
232
|
+
assert metadata.version("toolframe-sdk") == "0.4.1"
|
|
233
233
|
entry_point, = metadata.distribution("toolframe-auth").entry_points
|
|
234
234
|
assert entry_point.group == "toolframe.plugins" and entry_point.name == "auth"
|
|
235
235
|
assert entry_point.load() is plugin
|
|
@@ -282,7 +282,7 @@ wheels = [
|
|
|
282
282
|
|
|
283
283
|
[[package]]
|
|
284
284
|
name = "toolframe-auth"
|
|
285
|
-
version = "0.3.
|
|
285
|
+
version = "0.3.2"
|
|
286
286
|
source = { editable = "." }
|
|
287
287
|
dependencies = [
|
|
288
288
|
{ name = "toolframe-sdk" },
|
|
@@ -309,7 +309,7 @@ dev = [
|
|
|
309
309
|
|
|
310
310
|
[[package]]
|
|
311
311
|
name = "toolframe-sdk"
|
|
312
|
-
version = "0.4.
|
|
312
|
+
version = "0.4.1"
|
|
313
313
|
source = { editable = "../toolframe-sdk" }
|
|
314
314
|
dependencies = [
|
|
315
315
|
{ name = "jsonschema" },
|
|
@@ -332,11 +332,12 @@ dev = [
|
|
|
332
332
|
{ name = "pytest", specifier = ">=8,<10" },
|
|
333
333
|
{ name = "pytest-asyncio", specifier = ">=1,<2" },
|
|
334
334
|
{ name = "ruff", specifier = ">=0.12,<1" },
|
|
335
|
+
{ name = "tomlkit", specifier = ">=0.13,<1" },
|
|
335
336
|
]
|
|
336
337
|
|
|
337
338
|
[[package]]
|
|
338
339
|
name = "toolframe-sql-sqlite"
|
|
339
|
-
version = "0.4.
|
|
340
|
+
version = "0.4.1"
|
|
340
341
|
source = { editable = "../toolframe-sql-sqlite" }
|
|
341
342
|
dependencies = [
|
|
342
343
|
{ name = "toolframe-sdk" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/migrations/v1.postgresql.sql
RENAMED
|
File without changes
|
{toolframe_auth-0.3.0 → toolframe_auth-0.3.2}/src/toolframe_auth/migrations/v2.postgresql.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|