skrift 0.1.0a11__tar.gz → 0.1.0a13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {skrift-0.1.0a11 → skrift-0.1.0a13}/PKG-INFO +1 -1
- {skrift-0.1.0a11 → skrift-0.1.0a13}/pyproject.toml +1 -1
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/asgi.py +1 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/config.py +21 -12
- {skrift-0.1.0a11 → skrift-0.1.0a13}/.gitignore +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/README.md +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/__main__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/admin/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/admin/controller.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/admin/navigation.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/env.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/script.py.mako +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260120_210154_09b0364dbb7b_initial_schema.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260122_152744_0b7c927d2591_add_roles_and_permissions.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260122_172836_cdf734a5b847_add_sa_orm_sentinel_column.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260122_175637_a9c55348eae7_remove_page_type_column.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260122_200000_add_settings_table.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260129_add_oauth_accounts.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260129_add_provider_metadata.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic.ini +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/auth/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/auth/guards.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/auth/roles.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/auth/services.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/cli.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/controllers/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/controllers/auth.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/controllers/web.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/base.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/models/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/models/oauth_account.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/models/page.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/models/role.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/models/setting.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/models/user.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/services/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/services/oauth_service.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/services/page_service.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/db/services/setting_service.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/lib/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/lib/exceptions.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/lib/template.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/setup/__init__.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/setup/config_writer.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/setup/controller.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/setup/middleware.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/setup/providers.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/setup/state.py +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/static/css/style.css +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/admin/admin.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/admin/base.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/admin/pages/edit.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/admin/pages/list.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/admin/settings/site.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/admin/users/list.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/admin/users/roles.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/auth/dummy_login.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/auth/login.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/base.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/error-404.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/error-500.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/error.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/index.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/page.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/admin.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/auth.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/base.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/complete.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/configuring.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/database.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/restart.html +0 -0
- {skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/templates/setup/site.html +0 -0
|
@@ -133,6 +133,12 @@ class DummyProviderConfig(BaseModel):
|
|
|
133
133
|
ProviderConfig = OAuthProviderConfig | DummyProviderConfig
|
|
134
134
|
|
|
135
135
|
|
|
136
|
+
class SessionConfig(BaseModel):
|
|
137
|
+
"""Session cookie configuration."""
|
|
138
|
+
|
|
139
|
+
cookie_domain: str | None = None # None = exact host only
|
|
140
|
+
|
|
141
|
+
|
|
136
142
|
class AuthConfig(BaseModel):
|
|
137
143
|
"""Authentication configuration."""
|
|
138
144
|
|
|
@@ -177,6 +183,9 @@ class Settings(BaseSettings):
|
|
|
177
183
|
# Auth config (loaded from app.yaml)
|
|
178
184
|
auth: AuthConfig = AuthConfig()
|
|
179
185
|
|
|
186
|
+
# Session config (loaded from app.yaml)
|
|
187
|
+
session: SessionConfig = SessionConfig()
|
|
188
|
+
|
|
180
189
|
|
|
181
190
|
def clear_settings_cache() -> None:
|
|
182
191
|
"""Clear the settings cache to force reload."""
|
|
@@ -220,28 +229,28 @@ def is_config_valid() -> tuple[bool, str | None]:
|
|
|
220
229
|
@lru_cache
|
|
221
230
|
def get_settings() -> Settings:
|
|
222
231
|
"""Load settings from .env and app.yaml."""
|
|
223
|
-
# First create base settings from .env
|
|
224
|
-
base_settings = Settings()
|
|
225
|
-
|
|
226
232
|
# Load app.yaml config
|
|
227
233
|
try:
|
|
228
234
|
app_config = load_app_config()
|
|
229
235
|
except FileNotFoundError:
|
|
230
|
-
return
|
|
236
|
+
return Settings()
|
|
231
237
|
except ValueError:
|
|
232
238
|
# Missing environment variables - return base settings
|
|
233
|
-
return
|
|
239
|
+
return Settings()
|
|
234
240
|
|
|
235
|
-
#
|
|
236
|
-
|
|
241
|
+
# Build nested configs from YAML - pass directly to Settings to avoid
|
|
242
|
+
# model_copy issues with nested BaseModel instances in Pydantic v2
|
|
243
|
+
kwargs = {}
|
|
237
244
|
|
|
238
245
|
if "db" in app_config:
|
|
239
|
-
|
|
246
|
+
kwargs["db"] = DatabaseConfig(**app_config["db"])
|
|
240
247
|
|
|
241
248
|
if "auth" in app_config:
|
|
242
|
-
|
|
249
|
+
kwargs["auth"] = AuthConfig(**app_config["auth"])
|
|
243
250
|
|
|
244
|
-
if
|
|
245
|
-
|
|
251
|
+
if "session" in app_config:
|
|
252
|
+
kwargs["session"] = SessionConfig(**app_config["session"])
|
|
246
253
|
|
|
247
|
-
|
|
254
|
+
# Create Settings with YAML nested configs
|
|
255
|
+
# BaseSettings will still load debug/secret_key from env, but kwargs take precedence
|
|
256
|
+
return Settings(**kwargs)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260122_200000_add_settings_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{skrift-0.1.0a11 → skrift-0.1.0a13}/skrift/alembic/versions/20260129_add_provider_metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|