Qa - #49
Qa#49
Conversation
Feature/scrum 30
:wq the commit.
There was a problem hiding this comment.
Pull Request Overview
This PR sets up a QA environment and implements user management functionality with Keycloak integration. The changes consolidate deployment workflows, establish database migrations across environments (dev/qa/prod), and introduce a subscription feature for external users.
Key changes:
- Consolidated GitHub Actions workflows for frontend and backend deployments across dev/qa/prod environments
- Added User entity with Keycloak authentication and subscription management capabilities
- Implemented Liquibase database migrations with environment-specific changelogs
Reviewed Changes
Copilot reviewed 24 out of 26 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/App.css | Added blank line at end of file |
| deployment/dev/frontend/.env | Removed backend comment from frontend environment file |
| deployment/dev/backend-python/.env | Created Python backend environment configuration |
| deployment/dev/backend-java/docker-compose.yml | Added Docker Compose configuration for Java backend service |
| deployment/dev/backend-java/.env | Created Java backend environment configuration with port setting |
| backend/generator/src/main/java/finstream/data/entity/EventSequence.java | Consolidated JPA annotations onto single line |
| backend/finstream/src/main/resources/db/schema.sql | Added users table schema with Keycloak integration and audit triggers |
| backend/finstream/src/main/resources/db/indexes.sql | Created performance indexes for users table |
| backend/finstream/src/main/resources/db/changelog_qa.yml | Added Liquibase changelog for QA environment |
| backend/finstream/src/main/resources/db/changelog_prod.yml | Added Liquibase changelog for production environment |
| backend/finstream/src/main/resources/db/changelog_dev.yml | Added Liquibase changelog for development environment |
| backend/finstream/src/main/resources/application.properties | Configured Liquibase, Keycloak OIDC for multi-tenant authentication across environments |
| backend/finstream/src/main/java/finstream/resources/UserResource.java | Implemented REST endpoints for user subscription management |
| backend/finstream/src/main/java/finstream/repositories/UserRepository.java | Created repository for user database operations |
| backend/finstream/src/main/java/finstream/entities/User.java | Defined User JPA entity with Keycloak integration fields |
| backend/finstream/src/main/java/finstream/dto/SubscriptionRequest.java | Added DTO for subscription requests |
| backend/finstream/src/main/java/finstream/MyEntityResource.java | Removed example Panache resource interface |
| backend/finstream/src/main/java/finstream/MyEntity.java | Removed example Panache entity |
| backend/finstream/src/main/java/finstream/GlobalExceptionMapper.java | Implemented exception mappers for error handling |
| backend/finstream/pom.xml | Updated dependencies to reactive Panache and REST |
| .github/workflows/fn_deploy_qa.yml | Removed standalone QA frontend deployment workflow |
| .github/workflows/fn_deploy_dev.yml | Removed standalone dev frontend deployment workflow |
| .github/workflows/fn_deploy.yml | Consolidated frontend deployment workflow for all environments |
| .github/workflows/be_deploy.yml | Created backend deployment workflow for all environments |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| user.setSubscribed(request.subscribed()); | ||
| return user; | ||
| }) | ||
| .onItem().transformToUni(user -> userRepository.persist(user)) |
There was a problem hiding this comment.
Extra space between '->' and 'userRepository' should be removed for consistent formatting.
| .onItem().transformToUni(user -> userRepository.persist(user)) | |
| .onItem().transformToUni(user -> userRepository.persist(user)) |
| @ApplicationScoped | ||
| public class UserRepository implements PanacheRepository<User> { | ||
|
|
||
| public Uni<User> findByKeycloakUserId (final String keycloakUserId) { |
There was a problem hiding this comment.
Extra space between method name and opening parenthesis should be removed for consistent Java formatting.
| public Uni<User> findByKeycloakUserId (final String keycloakUserId) { | |
| public Uni<User> findByKeycloakUserId(final String keycloakUserId) { |
| @@ -32,7 +32,11 @@ | |||
| <dependencies> | |||
There was a problem hiding this comment.
The dependency change from 'quarkus-hibernate-orm-rest-data-panache' to 'quarkus-rest' and 'quarkus-hibernate-reactive-panache' represents a significant architectural shift from synchronous ORM to reactive. This change should be documented in the PR description or in a migration guide, as it affects how database operations are performed throughout the application.
| <dependencies> | |
| <dependencies> | |
| <!-- | |
| Architectural Note: | |
| The project has migrated from 'quarkus-hibernate-orm-rest-data-panache' (synchronous ORM with REST data endpoints) | |
| to 'quarkus-rest' and 'quarkus-hibernate-reactive-panache' (reactive ORM and REST). | |
| This is a significant change: all database operations are now performed reactively. | |
| Please refer to the migration guide or PR description for details on adapting to this new model. | |
| --> |
No description provided.