Commit graph

10 commits

Author SHA1 Message Date
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 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