- Serve multiple domains (RP IDs) from one instance: host-based dispatch, per-domain credentials and sessions, domains managed at runtime in the admin UI — previously one RP per instance - Cross-domain sign-in via Related Origin Requests: per-domain related-origins list with a served .well-known/webauthn document - Explicit per-domain origin lists with shell-glob wildcards (**. for apex + any subdomain depth, *. for one level), editable in the admin UI with validation and self-lockout guards - Per-domain auth hosts: the account/admin UI can live on a different host per domain, no longer confined to subdomains of a single RP - CLI: 'paskia init <rp-id [rp-name]' initializes or adds a domain to an existing database; 'paskia migrate' converts legacy databases BREAKING CHANGES (v2.0): - Database schema: config is now per-domain and credentials/sessions carry an rp_id — existing databases must be converted with 'paskia migrate' - Origins are now explicit: main implicitly allowed every subdomain of the RP; configure '**.' origins to reproduce that behavior - CLI: the flat '--rp-id/--rp-name/--origin/--auth/--save' flags are replaced by the 'init' and 'migrate' subcommandsReviewed-on: #4
20 lines
641 B
Python
20 lines
641 B
Python
# ruff: noqa: INP001
|
|
"""Hatch build hook for building Vue frontend during package build."""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
from hatchling.builders.hooks.plugin.interface import BuildHookInterface
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
from buildutil import build
|
|
|
|
|
|
class CustomBuildHook(BuildHookInterface): # type: ignore[misc]
|
|
"""Hatch build hook that builds Vue frontend during package build."""
|
|
|
|
def initialize(self, version: str, build_data: dict) -> None: # type: ignore[override]
|
|
"""Build frontend before package is built."""
|
|
super().initialize(version, build_data)
|
|
build("frontend")
|