feat: account sessions and usable template editors
This commit is contained in:
@@ -14,6 +14,7 @@ from fastapi.openapi.docs import get_swagger_ui_html
|
||||
from fastapi.responses import FileResponse, JSONResponse, Response
|
||||
from starlette.exceptions import HTTPException
|
||||
|
||||
from pigway_frame_flow.core.accounts import install_accounts, seed_accounts
|
||||
from pigway_frame_flow.core.auth import require, seed_client
|
||||
from pigway_frame_flow.core.registry import DeviceRegistry
|
||||
from pigway_frame_flow.display.service import DisplayService
|
||||
@@ -66,6 +67,7 @@ def create_app(settings=None, start_worker=True):
|
||||
service = DisplayService(db, settings, registry, assets, renderer)
|
||||
scheduler = Scheduler(service)
|
||||
seed_client(db, settings.api_token)
|
||||
seed_accounts(db, settings.config_dir)
|
||||
for name in ["urllib3", "requests", "httpx", "httpcore"]:
|
||||
logging.getLogger(name).setLevel(logging.CRITICAL)
|
||||
|
||||
@@ -88,6 +90,7 @@ def create_app(settings=None, start_worker=True):
|
||||
lifespan=lifespan,
|
||||
responses=error_responses,
|
||||
)
|
||||
install_accounts(app, db)
|
||||
app.state.service = service
|
||||
app.state.scheduler = scheduler
|
||||
app.add_middleware(
|
||||
@@ -99,6 +102,7 @@ def create_app(settings=None, start_worker=True):
|
||||
"Content-Type",
|
||||
"Idempotency-Key",
|
||||
"X-Request-ID",
|
||||
"X-CSRF-Token",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -221,6 +225,7 @@ def create_app(settings=None, start_worker=True):
|
||||
"scheduler": scheduler.healthy() if start_worker else True,
|
||||
"authentication": bool(
|
||||
db.one("SELECT client_id FROM clients WHERE enabled=1")
|
||||
or db.one("SELECT username FROM users WHERE enabled=1")
|
||||
),
|
||||
}
|
||||
good = all(checks.values())
|
||||
@@ -616,6 +621,16 @@ def create_app(settings=None, start_worker=True):
|
||||
)
|
||||
return TemplateConfig(data=settings.sanitize(payload.data))
|
||||
|
||||
@app.delete(
|
||||
"/api/v1/templates/{template_id}/config",
|
||||
status_code=204,
|
||||
tags=["Templates"],
|
||||
dependencies=[Depends(require("settings:write"))],
|
||||
)
|
||||
def reset_template_config(template_id: str):
|
||||
renderer.info(template_id)
|
||||
db.execute("DELETE FROM template_config WHERE template_id=?", (template_id,))
|
||||
|
||||
@app.get(
|
||||
"/api/v1/jobs",
|
||||
response_model=list[Job],
|
||||
|
||||
Reference in New Issue
Block a user