feat: access extension — NFC door access via boltcards SUN + Home Assistant

Promoted from the door-portal scratch repo to its own repo for install via the
aiolabs catalog. Authenticates a tapped Bolt Card via boltcards /verify,
authorizes against per-door grants, and fires the door's local Home Assistant
webhook to unlock a Z-Wave lock. Fails closed; logs every attempt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Patrick Mulligan 2026-08-07 22:47:41 +02:00
commit 40564f06ec
22 changed files with 986 additions and 0 deletions

24
__init__.py Normal file
View file

@ -0,0 +1,24 @@
from fastapi import APIRouter
from .crud import db
from .views import access_generic_router
from .views_api import access_api_router
from .views_reader import access_reader_router
access_static_files = [
{
"path": "/access/static",
"name": "access_static",
}
]
access_ext: APIRouter = APIRouter(prefix="/access", tags=["access"])
access_ext.include_router(access_generic_router)
access_ext.include_router(access_api_router)
access_ext.include_router(access_reader_router)
__all__ = [
"access_ext",
"access_static_files",
"db",
]