rebuild(stage-3): establish accounts permissions and secure settings

This commit is contained in:
leefer
2026-07-30 01:33:19 +08:00
parent 2ff35eb6df
commit f69972c3c0
31 changed files with 2742 additions and 18 deletions
+20
View File
@@ -5,6 +5,14 @@ from dataclasses import dataclass
from backend.bootstrap.settings import Settings
from backend.database.connection import Database
from backend.database.repositories.status import DatabaseStatusRepository
from backend.features.accounts.credentials import SystemCredentialService
from backend.features.accounts.model_pool import ModelPoolRepository, ModelPoolService
from backend.features.accounts.repository import AccountRepository, SystemCredentialRepository
from backend.features.accounts.service import (
AccountService,
MembershipService,
)
from backend.security import PasswordHasher, load_or_create_cipher
@dataclass(frozen=True, slots=True)
@@ -12,12 +20,24 @@ class ApplicationContainer:
settings: Settings
database: Database
database_status: DatabaseStatusRepository
accounts: AccountService
memberships: MembershipService
system_credentials: SystemCredentialService
model_pool: ModelPoolService
def build_container(settings: Settings) -> ApplicationContainer:
database = Database(settings.database_path)
account_repository = AccountRepository()
credential_repository = SystemCredentialRepository()
model_pool_repository = ModelPoolRepository()
cipher = load_or_create_cipher(settings)
return ApplicationContainer(
settings=settings,
database=database,
database_status=DatabaseStatusRepository(database),
accounts=AccountService(database, account_repository, PasswordHasher(), cipher),
memberships=MembershipService(database, account_repository),
system_credentials=SystemCredentialService(database, credential_repository, cipher),
model_pool=ModelPoolService(database, model_pool_repository, cipher),
)