Commit graph

30 commits

Author SHA1 Message Date
Oskar Kapala 80d5fac102 docker for ci 2026-01-16 14:21:50 +01:00
Oskar Kapala c322fd69c6 Fix CI: use git checkout without node actions
Some checks failed
ci / backend (push) Failing after 1m35s
ci / flutter (push) Failing after 42s
2026-01-16 14:10:17 +01:00
Oskar Kapala ec103371d3 actions fix
Some checks failed
ci / backend (push) Failing after 12s
ci / flutter (push) Failing after 2s
2026-01-16 13:44:48 +01:00
oskar ec9f6f347c Update front001/mosenioring/.forgejo/workflows/flutter-ci.yml
Some checks failed
ci / backend (push) Failing after 2s
ci / flutter (push) Failing after 2s
ci fix
2026-01-16 13:40:12 +01:00
oskar 9719f8efc3 Add Forgejo Actions CI for monorepo
Some checks failed
ci / backend (push) Failing after 13s
ci / flutter (push) Failing after 2s
2026-01-15 23:23:57 +01:00
oskar a08da17f17 Add Forgejo Actions CI for monorepo
All checks were successful
ci / backend (push) Has been skipped
ci / flutter (push) Has been skipped
2026-01-15 23:20:07 +01:00
oskar 7ba37539b1 flutter ci 2026-01-15 23:13:56 +01:00
oskar 8e89a595bb Add backend CI workflow for Kotlin/Java projects using Gradle 2026-01-15 23:10:45 +01:00
oskar 8ced1f7925 Implement invitation management for patients and add supporting APIs, services, and tests
oka: not tested yet

- Introduced `Invitation` entity, table schema, and repository.
- Added `InvitationController` with APIs for creating, resolving, and accepting invitations.
- Implemented `InvitationService` to handle invitation workflows, including token generation and validation.
- Created unit tests for controller, service, and repository layers.
- Added support for patient-subject relationships with `PatientSubject` entity and repository.
- Updated `PatientAccessChecker` to handle subject-based access control.
- Extended Keycloak provisioning service for invitation role management.
- Updated database migrations to include invitations and patient-subject tables.
- Enhanced security configuration to permit invitation resolution API.
- Updated build scripts and dependencies for testing support.
2026-01-14 15:12:10 +01:00
oskar 5628aa5675 Update Docker images, Kotlin, Spring Boot, Gradle, and dependencies
- Upgraded Docker image versions for `postgres`, `keycloak`, `rabbitmq`, `redis`, and `minio`.
- Updated Kotlin to `1.9.25` and aligned related plugins.
- Upgraded Spring Boot to `3.4.1` and adjusted dependencies accordingly.
- Downgraded JVM target and toolchain to `17` for compatibility.
- Updated Gradle to `8.12` along with dependency version improvements (`flyway-core`, `opentelemetry`, `springdoc`, AWS SDK).
2026-01-13 15:37:29 +01:00
oskar 1315b95a72 implement offline lock with PIN and biometric authentication
- Introduced `AppGateController` to manage initial routing (login, unlock, or home) based on session and connectivity state.
- Added `OfflineLockRepository` and `UnlockController` with support for PIN (PBKDF2 hashing) and biometric authentication.
- Created `UnlockScreen` for PIN entry and biometric prompts.
- Added `ConnectivityService` to detect online/offline status using `connectivity_plus`.
- Enhanced `AuthLocalDataSource` and `SessionRepository` to manage session markers and user IDs.
- Updated `AuthController` to handle session markers and navigation transitions.
- Modified `GoRouter` to use `AppGateState` for app-wide redirection logic.
- Integrated `local_auth` and `cryptography` packages.
- Added comprehensive unit tests for `AppGateController` and `UnlockController`.
2026-01-13 14:35:57 +01:00
oskar d096fc479d Add "PATIENT" role to Keycloak realm configuration 2026-01-13 14:31:09 +01:00
oskar e5f7c3ee19 Add unit tests for core service modules and update build dependencies for testing
- Added unit tests for `AuditService`, `BaseEntity`, `MedicationPlanService`, and `MessageService`.
- Updated Gradle test dependencies across modules to include `mockito-core` and `mockito-kotlin`.
2026-01-12 23:22:00 +01:00
oskar 553ae2bd69 Remove redundant tenant and user metadata assignments across services. 2026-01-12 23:13:22 +01:00
oskar bbd7a371dd Add unit tests for AppConfig and AuthController, and include mount checks in AuthController. 2026-01-12 23:12:02 +01:00
oskar 73597b9bca Refactored error handling, configuration, and telemetry logic for improved readability, efficiency, and maintainability. 2026-01-12 22:58:19 +01:00
oskar d8f91f42e5 Improved README.md with restructured sections, better formatting, and added examples for local development, testing, and architecture overview. 2026-01-12 22:50:15 +01:00
oskar 8cfb81c99d front docs improvement 2026-01-12 22:43:29 +01:00
oskar ec670e90ae works better 2026-01-12 22:39:32 +01:00
oskar 9b2f544063 fix for expired issue
not tested
2026-01-12 22:28:08 +01:00
oskar 27e89c80fc works 2026-01-12 22:26:08 +01:00
oskar 000a984d04 partially work.
issues:
1. no frontend logout when not authorized
2026-01-12T22:21:03.531+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-1] [b137cd03c5fed357d857aa5201957552-608b35eaef78b8f9] o.s.security.web.FilterChainProxy        : Securing POST /api/telemetry/test
2026-01-12T22:21:03.546+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-1] [b137cd03c5fed357d857aa5201957552-f9d4701c12880487] o.s.s.oauth2.jwt.JwtTimestampValidator   : Jwt expired at 2026-01-12T21:18:04Z
2026-01-12T22:21:03.546+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-1] [b137cd03c5fed357d857aa5201957552-f9d4701c12880487] o.s.s.o.s.r.a.JwtAuthenticationProvider  : Failed to authenticate since the JWT was invalid

2. 500
2026-01-12T22:21:59.224+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] o.s.security.web.FilterChainProxy        : Secured POST /api/telemetry/test
2026-01-12T22:21:59.225+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] o.s.web.servlet.DispatcherServlet        : POST "/api/telemetry/test", parameters={}
2026-01-12T22:21:59.227+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.mosenioring.app.api.TelemetryController#recordTestTelemetry(TelemetryRequest, Authentication)
2026-01-12T22:21:59.308+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] o.s.web.method.HandlerMethod             : Could not resolve parameter [0] in public org.springframework.http.ResponseEntity<com.mosenioring.app.telemetry.TelemetryResponse> com.mosenioring.app.api.TelemetryController.recordTestTelemetry(com.mosenioring.app.telemetry.TelemetryRequest,org.springframework.security.core.Authentication): JSON parse error: Cannot deserialize value of type `java.time.Instant` from String "2026-01-12T22:21:58.583050": Failed to deserialize java.time.Instant: (java.time.format.DateTimeParseException) Text '2026-01-12T22:21:58.583050' could not be parsed at index 26
2026-01-12T22:21:59.308+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.mosenioring.common.web.ProblemDetailsAdvice#handleUnexpected(Exception, HttpServletRequest)
2026-01-12T22:21:59.337+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Using 'application/problem+json', given [*/*] and supported [application/problem+json]
2026-01-12T22:21:59.339+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Writing [ProblemDetail[type='https://httpstatuses.io/500', title='Unexpected error', status=500, detail='JSON (truncated)...]
2026-01-12T22:21:59.344+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.time.Instant` from String "2026-01-12T22:21:58.583050": Failed to deserialize java.time.Instant: (java.time.format.DateTimeParseException) Text '2026-01-12T22:21:58.583050' could not be parsed at index 26]
2026-01-12T22:21:59.344+01:00 DEBUG 76514 --- [mosenioring-backend] [nio-8080-exec-3] [94043d787087b50f996c7e87b550ff71-a32a7387b3d26ba2] o.s.web.servlet.DispatcherServlet        : Completed 500 INTERNAL_SERVER_ERROR
2026-01-12 22:23:38 +01:00
oskar 711201dd9c login seems to work 2026-01-12 20:12:10 +01:00
oskar d5b28ad972 doesnt work 2026-01-12 18:38:15 +01:00
oskar 90d34aed42 integration, some parts works 2026-01-09 19:47:24 +01:00
oskar ca166eb661 cloude review 2026-01-09 19:01:46 +01:00
oskar 195ca7d961 codex auto review 2026-01-09 18:40:59 +01:00
oskar 1c9ca4cfa2 init backend 2026-01-09 18:35:06 +01:00
oskar 0ff158134c iteration with extr strs 2026-01-09 17:35:26 +01:00
oskar 0716dbcd19 init 2026-01-09 15:55:15 +01:00