Commit Graph

449 Commits

Author SHA1 Message Date
03e1484dd3 chore: refactor Gradle config, standardize Kotlin MPP plugin usage, and update dependencies
- Unified plugin application across modules using `alias(libs.plugins.*)` instead of hardcoded IDs.
- Removed redundant JVM/JS source map tasks, improving Gradle and Docker build consistency.
- Updated dependencies, including `logback` and Webpack `copy-webpack-plugin`, and added contextual documentation.
- Added frontend architecture diagram in PlantUML (`docs/01_Architecture/Reference`), standardizing feature-core-shell dependencies.
2026-02-03 22:11:31 +01:00
c613acb91d build: initialize JS target in root to fix isolated classpath issue
Explicitly added JS target with browser and Node.js configurations at the root level to ensure the NodeJsRootPlugin is loaded. Resolved the "IsolatedKotlinClasspathClassCastException" error in subprojects. Updated Yarn lock to reflect new dependencies.
2026-02-03 15:02:26 +01:00
d923b10ca2 chore(infra): upgrade Gradle to 9.3.1 and remove redundant Compose repository from settings 2026-02-02 23:05:30 +01:00
5be88b306c chore(infra+frontend): upgrade Gradle to 9.3.1 and fix KMP plugin conflicts in Docker builds
- Updated Gradle version in `.env`, Dockerfiles, and wrapper to 9.3.1.
- Replaced alias-based application of `kotlinMultiplatform` plugin with direct `id` usage in subprojects to resolve "Plugin loaded multiple times" error.
- Applied centralized plugin management and Gradle daemon optimizations to improve Docker build stability and address KMP classloading issues.
2026-02-02 23:01:23 +01:00
92cdd22f1f chore(frontend+infra): re-enable browser environment for Kotlin JS with NodeJs workaround
- Applied Root NodeJs plugin initialization to resolve Gradle 9/KMP race condition.
- Restored `browser {}` configuration in multiple frontend modules, with JS test tasks disabled to prevent redundant execution.
2026-02-02 20:50:08 +01:00
25f40567c7 build: remove browser configuration from core modules to fix JS plugin conflict
Eliminated `browser {}` blocks from core library modules to resolve "Plugin loaded multiple times" error in Kotlin/JS Gradle builds. Adjusted to support a cleaner, centralized JS target configuration. Documented the root cause and workaround in troubleshooting logs.
2026-02-02 17:10:47 +01:00
11c597f147 feat: add runtime configuration for Caddy-based SPA containerization
Introduced `config.json` runtime configuration fetch mechanism to support the "Build Once, Deploy Everywhere" pattern. Replaced NGINX with Caddy for SPA deployment, enabling SPA routing, security headers, and static asset management. Updated Gradle and Kotlin/JS build configurations to align with the new runtime environment. Enhanced Dockerfile and health checks for optimized CI/CD workflows and improved SPA delivery.
2026-02-02 16:19:20 +01:00
86d8d780f5 docs: update Exposed 1.0.0 migration guide with troubleshooting and fixes
Refined migration steps to address compatibility issues with `JdbcTransaction` and `PreparedStatementApi`. Added detailed troubleshooting for `exec` and `executeUpdate` usage. Updated formatting and clarified best practices for transitioning to Exposed 1.0.0.
2026-02-02 12:37:48 +01:00
55e5302e13 chore: migrate to Exposed 1.0.0 and refactor UUID handling
Updated persistence layer to align with Exposed 1.0.0. Refactored table definitions to use `javaUUID` for consistency with `java.util.UUID`. Adjusted transaction handling for compatibility with the latest API changes. Enhanced error handling in database utility functions and refined pagination logic. Added documentation and migration updates for best practices with Exposed 1.0.0.
2026-02-02 12:34:24 +01:00
d4f20df654 chore(frontend+infra): optimize build process and exclude SQLite workers from minification
- Updated Webpack config to exclude SQLite workers from parsing and Terser minification, fixing related errors and improving build speed.
- Adjusted Dockerfile to disable source maps for production builds, reducing build time and memory usage.
- Modified Gradle build configuration to respect the `noSourceMaps` flag during Docker builds.
2026-02-02 00:00:54 +01:00
994a3397c2 chore(infra): simplify Docker builds and remove unused WEB_BUILD_PROFILE
- Adjusted Dockerfile’s build process for production-only artifacts.
- Removed unused `WEB_BUILD_PROFILE` from `dc-gui.yaml`.
- Optimized Gradle settings for better caching and performance.
- Updated `.dockerignore` to include source packages previously excluded by mistake.
2026-02-01 21:17:22 +01:00
f00cc7681f chore(docs): update roadmap and add Sync Fix report, remove desktop-app from compose config
- Marked Phase 3 of roadmap as complete and adjusted next steps.
- Added detailed report documenting the Sync type mismatch resolution.
- Commented out the `desktop-app` service from `dc-gui.yaml`.
2026-02-01 18:48:00 +01:00
aa0c07904f chore(backend): mark Entries Service as on hold in docker-compose configuration 2026-02-01 17:56:40 +01:00
4035914975 chore(deps): update Compose Multiplatform to stable version 1.10.0 2026-02-01 17:56:33 +01:00
d02e159887 chore(backend): replace @Configuration with @TestConfiguration in test classes
- Adjusted annotations in `PingControllerIntegrationTest` and `PingControllerTest` to improve test context setup.
2026-02-01 17:56:27 +01:00
7401df11a6 chore(backend): rename lastSyncTimestamp to since across Ping sync API for consistency
- Updated parameter name in `PingController`, `PingApi`, and related tests to align with SyncManager conventions.
2026-02-01 17:56:18 +01:00
5ff720f875 chore(frontend): fetch latest PingEvent timestamp in repository for sync operations
- Added `selectLatestPingEventTimestamp` query to `AppDatabase`.
- Updated `PingEventRepositoryImpl` to use the timestamp for `since` parameter instead of the event ID.
2026-02-01 17:56:12 +01:00
05e85ff98e chore(backend): rename lastSyncTimestamp to since across Ping sync API for consistency
- Updated parameter name in `PingController`, `PingApi`, and related tests to align with SyncManager conventions.
2026-02-01 17:56:05 +01:00
cf7179ed64 chore(backend): remove @Profile("!test") from PingRepositoryAdapter to enable integration testing
- Ensures integration tests can utilize the real adapter.
- Unit tests continue using mocks via `@MockBean` or `@TestConfiguration`.
2026-02-01 17:55:58 +01:00
d9583252e8 chore(infra): migrate Redis to Valkey 9.0 and update related configs 2026-02-01 17:55:49 +01:00
6c8accb9b6 chore(backend): add integration test for PingRepository with Testcontainers setup
- Implemented a minimal integration test to validate persistence layer functionality.
- Configured PostgreSQL Testcontainer and Flyway migrations for testing.
- Added `TestPersistenceConfig` to isolate testing setup and avoid loading unnecessary components.
- Updated build script to include Testcontainers dependencies.
2026-02-01 17:55:41 +01:00
82139e0c2f chore(backend): add .keep file to ensure services directory is tracked 2026-02-01 17:55:32 +01:00
e4acb56945 chore(docs): update date in Frontend Cleanup Status Report to 2026-02-01 2026-02-01 14:39:36 +01:00
66fde7044e chore(backend, frontend): clean up comments and improve formatting
- Removed unused import in `BackendArchitectureTest.kt` and improved clarity of comments on service module dependencies.
- Added a TODO placeholder in `DeepLinkHandler.kt` for upcoming deep link processing implementation.
2026-02-01 13:51:07 +01:00
f78563f8c8 chore(frontend): refactor navigation and DI setup, remove unused shared module
- Replaced `initKoin` with `startKoin` for DI initialization consistency across platforms.
- Introduced `StateNavigationPort` with `StateFlow` to streamline navigation state management.
- Migrated `AppScreen` to sealed class with route mapping for better navigation handling.
- Deleted unused `frontend/shared` module and removed related dependencies from build files.
- Cleaned up legacy navigation and Redux-related code, aligning with MVVM architecture.
2026-02-01 13:46:39 +01:00
77c20bf2ba chore(frontend): improve comment formatting, fix minor code inconsistencies, and enhance SQLite worker initialization
- Standardized comment formatting across SQLite worker and local DB modules for clarity and consistency.
- Fixed minor typos in comments and removed redundant placeholders.
- Refined SQLite Web Worker initialization logic by aligning method implementations with clean code practices.
- Updated Kotlin code in DB driver factories to handle exceptions concisely and improve robustness during schema initialization.
2026-02-01 12:15:16 +01:00
af0b7c5f9b chore(frontend): cleanup legacy code and improve localization consistency
- Removed deprecated `NotificationCard` component due to dependency on an outdated presentation layer.
- Translated comments and documentation to German for improved localization across `core.auth`, `ping-feature`, and `network`.
- Standardized comment formatting, improved doc clarity, and ensured consistent API documentation in all modules.
2026-02-01 12:00:10 +01:00
24c8a0c63d chore(docs): fix formatting in E2E Smoke Migration report for Exposed 1.0.0 & Ktor 3.4.0 2026-01-31 21:28:00 +01:00
b7147bca84 chore(docs, build): add E2E smoke test reports, favicon, and build robustness improvements
- Documented E2E smoke test results for Ktor 3.4.0 and Exposed 1.0.0 migration in new reports and session logs.
- Introduced a fallback mechanism for desktop and web-app builds, ensuring robustness in distribution creation and static asset handling.
- Added a default SVG favicon to prevent 404 errors in the web-app.
- Updated Nginx configuration and Dockerfiles to include improved artifact paths, fallback handling, and script corrections.
2026-01-31 21:03:53 +01:00
8155707ba1 chore(ci, quality): introduce PR Guard workflow to detect hardcoded dependency versions
- Added `check-no-hardcoded-versions.sh` script to enforce centralized dependency version management.
- Configured GitHub Actions workflow (`pr-guard.yml`) to run the script on pull requests.
2026-01-31 18:45:24 +01:00
9e5e0512ce chore(docs, platform): finalize migration guides for Exposed 1.0.0 and Ktor 3.4.0 upgrades
- Updated Exposed migration guide with detailed breaking changes, migration steps, test matrix, and rollback plan.
- Published technical analysis for transitioning to Ktor 3.4.0, including API improvements and routing OpenAPI integration.
- Aligned `platform-bom` with upgraded dependencies: `exposed` 1.0.0 and `ktor` 3.4.0.
- Introduced `ktor-server-routing-openapi` dependency for dynamic API documentation support.
2026-01-31 18:31:50 +01:00
3d940ae4b1 build: update Dockerfile to include 'contracts' and refine build context
Added `contracts/` directory to the Docker build context and adjusted Gradle setup to handle required dependencies. Simplified Dockerfile by removing redundant comments and streamlined artifact copying for NGINX configuration. Updated `.dockerignore` to exclude `docs/` directory from the build context.
2026-01-31 12:32:38 +01:00
e699d7a198 docs: add migration guide for JetBrains Exposed 1.0.0
Included a detailed migration guide highlighting breaking changes from `1.0.0-rc-4` to `1.0.0`, including updates to UUID handling, transaction manager refactoring, R2DBC API adjustments, and SQLite JSONB automation.
2026-01-31 11:25:48 +01:00
f60e134b3a docs: update Ktor 3.4.0 migration analysis with improvements and fixes
Enhanced the migration document for Ktor 3.4.0 with structured explanations, including resource management, security updates, observability fixes, and migration checklist. Refined technical details for better clarity and compliance with recent Ktor changes.
2026-01-31 10:54:54 +01:00
42d60515a8 docs: add technical analysis for Ktor 3.4.0 migration and update .dockerignore
Added a detailed technical analysis document outlining changes, migration steps, and implications of updating from Ktor 3.3.3 to 3.4.0 for both frontend and backend. Updated `.dockerignore` to include the `docs/` directory, required for Docker build context.
2026-01-30 13:11:33 +01:00
5feb42d973 feat: add architecture tests for enforcing module boundaries
Integrated a new `:platform:architecture-tests` module using ArchUnit to enforce backend and frontend architecture rules. Configured explicit dependencies to all relevant modules and implemented rules to prevent cross-dependencies between backend services and frontend features. Replaced legacy Gradle-based architecture guards with this robust solution. Updated CI pipeline to include these tests.
2026-01-29 14:28:36 +01:00
fd7eba3589 docs: add state-management strategy reference and SQLDelight session log
Added documentation outlining the recommended frontend state-management approach using Unidirectional Data Flow (UDF). Documented the 2026-01-28 session addressing the critical SQLDelight async issue, detailing the analysis, fix implementation, and results. Updated PingEventRepositoryImpl to use `awaitAsOneOrNull` for proper async handling.
2026-01-28 13:00:55 +01:00
96ee9817b7 chore(docs, frontend): document and implement Web-App sync workaround for async driver issue
- Added session log documenting Web-App stabilization, including fixes for Webpack build and login issues.
- Implemented full-sync workaround in `PingEventRepositoryImpl` due to SQLDelight async driver limitations.
- Updated `PingDashboard` to display sync completion messages.
- Added `libs.sqldelight.coroutines` dependency and regenerated SQLDelight queries.
- Updated roadmap and journal with progress on frontend sync integration.
2026-01-27 23:45:30 +01:00
d0aef9e629 chore(docs, frontend): document and implement Web-App sync workaround for async driver issue
- Added session log documenting Web-App stabilization, including fixes for Webpack build and login issues.
- Implemented full-sync workaround in `PingEventRepositoryImpl` due to SQLDelight async driver limitations.
- Updated `PingDashboard` to display sync completion messages.
- Added `libs.sqldelight.coroutines` dependency and regenerated SQLDelight queries.
- Updated roadmap and journal with progress on frontend sync integration.
2026-01-27 23:26:18 +01:00
edb22ce864 chore(docs, frontend): document and implement Web-App sync workaround for async driver issue
- Added session log documenting Web-App stabilization, including fixes for Webpack build and login issues.
- Implemented full-sync workaround in `PingEventRepositoryImpl` due to SQLDelight async driver limitations.
- Updated `PingDashboard` to display sync completion messages.
- Added `libs.sqldelight.coroutines` dependency and regenerated SQLDelight queries.
- Updated roadmap and journal with progress on frontend sync integration.
2026-01-27 23:25:00 +01:00
57ff6654c4 refactor: remove unused imports and streamline exception handling logic 2026-01-27 15:14:26 +01:00
637d610a5b refactor: enhance platform configuration, database schema handling, and Keycloak setup
Improved `PlatformConfig` API base URL resolution with enhanced logging and fallback logic. Revised database initialization with version checks, schema migration, and error handling. Updated Keycloak configuration to enable `Direct Access Grants` and refine CORS/redirect settings. Adjusted Webpack proxy settings for correct API routing.
2026-01-27 15:12:58 +01:00
bddeba81be chore(frontend): integrate SQLite Web Worker and improve debug initialization
- Added `sqlite.worker.js` for custom SQLite Web Worker setup compatible with SQLDelight.
- Enhanced Webpack configuration in `sqlite-config.js` for SQLite-related assets and dynamic path resolution.
- Updated Koin `apiClient` setup to dynamically inject Authorization headers using the `HttpSend` plugin.
- Fixed Keycloak realm configuration to include new local URLs (`http://localhost:8080`).
- Removed redundant Web Worker copy tasks from Gradle and adjusted Kotlin code for streamlined worker creation.
2026-01-26 22:02:13 +01:00
3e587381ed chore(frontend): remove custom Webpack sqlite-wasm integration plugins and cleanup config
- Deleted `dummy.js` and its usage for sqlite-wasm integration as custom Webpack adjustments are no longer necessary.
- Removed outdated Webpack configuration files: `ignore-sqlite-wasm.js`, `ignore-sqlite-wasm-critical-dependency.js`, and `sqljs-fix.js`.
- Introduced `sqlite-config.js` for simplified and streamlined sqlite-wasm and Skiko Webpack configuration.
- Minor code formatting adjustments across frontend modules for improved consistency.
2026-01-26 20:37:23 +01:00
29ad73b508 docs(journal): add session log for Web-App stabilization and DB initialization fixes
Documented the 2026-01-26 session, covering Web-App database issue resolution, PingViewModel test fixes, and Gradle build task optimizations. Included technical insights on Webpack, Wasm, and SQLDelight challenges, along with pending tasks for build and runtime testing.
2026-01-26 14:40:04 +01:00
1ccc64c6ff refactor: improve error handling and initialization in frontend tasks
Updated PingViewModel to reset errorMessage on each task execution and provide detailed error messages. Enhanced SQLite worker initialization with manual WASM binary loading and improved error handling. Adjusted Gradle tasks and Webpack config for SQLite assets, ensuring seamless builds. Included dummy modules to bypass Webpack resolution issues.
2026-01-26 14:37:49 +01:00
763dbc5eed refactor: improve error handling and initialization in frontend tasks
Updated PingViewModel to reset errorMessage on each task execution and provide detailed error messages. Enhanced SQLite worker initialization with manual WASM binary loading and improved error handling. Adjusted Gradle tasks and Webpack config for SQLite assets, ensuring seamless builds. Included dummy modules to bypass Webpack resolution issues.
2026-01-26 14:37:09 +01:00
da876a0c21 docs: add UI screenshots for SuDo documentation
Added multiple UI screenshots under `docs/BilderSuDo` to support SuDo documentation, improving visual clarity and user understanding.
2026-01-26 14:35:26 +01:00
5aeb936920 docs: add UI screenshots for SuDo documentation
Added multiple UI screenshots under `docs/BilderSuDo` to support SuDo documentation, improving visual clarity and user understanding.
2026-01-26 14:35:17 +01:00
e383cf424a refactor(frontend): remove unused imports across design-system, ping-feature, and main entry point 2026-01-24 00:42:06 +01:00