You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Design: the settings plugin module has become de facto framework; make the dependency explicit #500
_secret_key.py:27,78: raw SQL into the settings module's table, with hard-coded column names
On the module side, settings/registration.py:25 (register_module_settings) is the settings-registration path for nine modules: api_tokens, background_tasks, branding (18 imports), file_storage, keycloak, site_lock, tenants, users, and others.
Cost
No module can run without settings, but nothing declares or enforces that.
Move the settings registry, store and hydration into simple_module_core or simple_module_hosting behind a small SettingsBackend protocol. settings keeps only the admin UI.
Accept that settings is a required framework dependency: import it statically, declare it, and drop the importlib indirection.
Option 1 is cleaner. Option 2 is honest and cheap. The current state is the worst of both.
Also
Extend SM009 to flag importlib.import_module("<plugin>...") string literals in framework/*.
Activity
refactor(settings): move the settings mechanism into the framework; S…
feat: user directory protocol; modules stop importing users.models; s…