v7.2.0: Use new format for new tokens
ci/woodpecker/push/woodpecker Pipeline failed Details
ci/woodpecker/tag/woodpecker Pipeline failed Details

This commit is contained in:
Administrator 2022-11-01 23:25:24 +00:00
parent d8043414a8
commit 28892e8ff3
6 changed files with 21 additions and 12 deletions

View File

@ -23,10 +23,6 @@ repos:
hooks: hooks:
- id: pyupgrade - id: pyupgrade
args: [--py37-plus] args: [--py37-plus]
- repo: https://github.com/asottile/setup-cfg-fmt
rev: ce506f9063be3e882d391cdf7b6a3d5f8359add8 # frozen: v1.20.1
hooks:
- id: setup-cfg-fmt
- repo: https://github.com/jackdewinter/pymarkdown - repo: https://github.com/jackdewinter/pymarkdown
rev: be56696256d5491e8a907b72e5a3852034546adb # frozen: v0.9.5 rev: be56696256d5491e8a907b72e5a3852034546adb # frozen: v0.9.5
hooks: hooks:

View File

@ -3,7 +3,7 @@ pipeline:
group: test group: test
image: python:3.7-alpine image: python:3.7-alpine
commands: commands:
- pip install pipenv==2022.9.4 - pip install pipenv==2022.10.25
- pipenv install --dev --deploy - pipenv install --dev --deploy
- pipenv run almake test-pytest # We only test with pytest on 3.7 - pipenv run almake test-pytest # We only test with pytest on 3.7
@ -22,7 +22,7 @@ pipeline:
group: test group: test
image: python:3.9-alpine image: python:3.9-alpine
commands: commands:
- pip install pipenv==2022.9.4 pre-commit==2.22.0 - pip install pipenv==2022.10.25 pre-commit==2.22.0
- pre-commit run --all-files - pre-commit run --all-files
- pipenv install --dev --deploy - pipenv install --dev --deploy
- pipenv run almake test - pipenv run almake test
@ -33,7 +33,7 @@ pipeline:
group: test group: test
image: python:3.10-alpine image: python:3.10-alpine
commands: commands:
- pip install pipenv==2022.9.4 pre-commit==2.22.0 - pip install pipenv==2022.10.25 pre-commit==2.22.0
- pre-commit run --all-files - pre-commit run --all-files
- pipenv install --dev --deploy - pipenv install --dev --deploy
- pipenv run almake test - pipenv run almake test

View File

@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [7.2.0 - 2022-11-01]
### Changed
- Use new format for new tokens.
## [7.1.2 - 2022-11-01] ## [7.1.2 - 2022-11-01]
### Changed ### Changed

View File

@ -1,5 +1,5 @@
"""SporeStack API and CLI for launching servers with Bitcoin or Monero""" """SporeStack API and CLI for launching servers with Monero or Bitcoin"""
__all__ = ["api", "api_client", "exceptions"] __all__ = ["api", "api_client", "exceptions"]
__version__ = "7.1.2" __version__ = "7.2.0"

View File

@ -14,7 +14,7 @@ def checksum(to_hash: str) -> str:
def random_machine_id() -> str: def random_machine_id() -> str:
""" """
These used to be 64 hex characters. Now they have a new format. Machine IDs have a 32 character format with a checksum.
""" """
to_hash = f"ss_m_{secrets.token_hex(11)}" to_hash = f"ss_m_{secrets.token_hex(11)}"
return f"{to_hash}_{checksum(to_hash)}" return f"{to_hash}_{checksum(to_hash)}"
@ -22,6 +22,7 @@ def random_machine_id() -> str:
def random_token() -> str: def random_token() -> str:
""" """
64 hex characters. Tokens have a 32 character format with a checksum.
""" """
return secrets.token_hex(32) to_hash = f"ss_t_{secrets.token_hex(11)}"
return f"{to_hash}_{checksum(to_hash)}"

View File

@ -7,5 +7,11 @@ def test_random_machine_id() -> None:
assert utils.random_machine_id().startswith("ss_m_") assert utils.random_machine_id().startswith("ss_m_")
def test_random_token() -> None:
assert utils.random_token() != utils.random_token()
assert len(utils.random_token()) == 32
assert utils.random_token().startswith("ss_t_")
def test_hash() -> None: def test_hash() -> None:
assert utils.checksum("ss_m_1deadbeefcafedeadbeef1") == "0892" assert utils.checksum("ss_m_1deadbeefcafedeadbeef1") == "0892"