Files
spoolman2/pyproject.toml
tonym f63f70ce86
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Issue Manager / issue-manager (push) Has been cancelled
Make auth toggle a settings option instead of env var
- Auth enabled state now stored in database setting (auth_enabled)
- Add POST /auth/toggle endpoint to enable/disable auth from UI
- Add auth toggle section to Settings > General page
- Enabling auth without users prompts to create first admin
- Disabling auth requires admin password confirmation
- Auth setting cached in memory and loaded on startup

Removes need for SPOOLMAN_AUTH_ENABLED env var

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 01:01:14 -06:00

114 lines
2.2 KiB
TOML

[project]
name = "spoolman"
version = "0.23C.5"
description = "A web service that keeps track of 3D printing spools."
authors = [
{ name = "Tony", email = "tony@nastynas.xyz" },
{ name = "Donkie", email = "daniel.cf.hultgren@gmail.com" },
{ name = "Claude", email = "noreply@anthropic.com" },
]
dependencies = [
"uvicorn~=0.34",
"httptools>=0.6.4; platform_machine != \"armv7l\"",
"uvloop!=0.15.0,!=0.15.1,>=0.21.0; platform_machine != \"armv7l\" and sys_platform != \"win32\" and (sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\")",
"fastapi~=0.115",
"SQLAlchemy[aiomysql,aiosqlite,asyncio,postgresql_asyncpg]~=2.0",
"pydantic~=2.10",
"platformdirs~=4.3",
"alembic~=1.15",
"scheduler~=0.8",
"sqlalchemy-cockroachdb~=2.0",
"asyncpg~=0.30",
"psycopg2-binary~=2.9",
"setuptools~=76.0",
"WebSockets~=15.0",
"prometheus-client~=0.21",
"httpx~=0.28",
"hishel~=0.1",
"python-multipart~=0.0",
"passlib>=1.7",
"bcrypt>=4.0",
"python-jose[cryptography]>=3.3",
]
requires-python = ">=3.9,<3.13"
[project.license]
text = "MIT"
[tool.pdm.dev-dependencies]
dev = [
"ruff==0.11.0",
"black~=25.1.0",
"pre-commit~=4.1.0",
"pytest~=8.3.5",
"pytest-asyncio~=0.25.3",
"httpx~=0.28.1",
]
[tool.pdm.scripts.docs]
call = "spoolman.docs:generate_docs"
[tool.pdm.scripts.bump]
call = "spoolman.bump:bump"
[tool.pdm.scripts.app]
cmd = "uvicorn spoolman.main:app"
[tool.pdm.scripts.itest]
cmd = "python tests_integration/run.py"
[tool.ruff]
line-length = 120
target-version = "py39"
[tool.ruff.lint]
select = [
"ALL",
]
ignore = [
"A003",
"D101",
"D104",
"D203",
"D213",
"D406",
"D407",
"FA100",
"FIX002",
"S104",
"TRY201",
"TRY003",
"EM101",
"EM102",
"DTZ003",
"PLR0913",
"SIM108",
"TD002",
"TD003",
]
[tool.ruff.lint.per-file-ignores]
"tests*/*" = [
"ANN201",
"ASYNC210",
"S101",
"PLR2004",
"D103",
"TID252",
]
"migrations/versions/*" = [
"N999",
]
[tool.black]
line-length = 120
target-version = [
"py39",
]
[build-system]
requires = [
"pdm-backend",
]
build-backend = "pdm.backend"