Skip to content

Release v2.1.0#61

Merged
wldks1008 merged 65 commits into
mainfrom
develop
Sep 12, 2025
Merged

Release v2.1.0#61
wldks1008 merged 65 commits into
mainfrom
develop

Conversation

@wldks1008

Copy link
Copy Markdown
Member

운영 서버 배포

wldks1008 and others added 30 commits July 8, 2025 23:56
* [chore] .gitignore 파일 수정

* [feat] restructure project with multi-module setup and add application profiles

* [feat] add edukit-global-utils dependency and update entity scan and repository base packages

* [refac] delete unused file
* [refac] refactor project structure and add initial application files

* [feat] implement multi-module structure for Edukit project

* [feat] update dependencies for internal module references

* [refac] update module dependencies and add core/external modules

* [feat] add common module and implement global exception handling

* [feat] add ApiResponse class for standardized API responses

* [feat] enhance global exception handling to return standardized ApiResponse

* [feat] implement standardized status codes and enhance success/error code interfaces

* [feat] implement ApiResponseAdvice for standardized HTTP response handling

* [refac] delete unused directory

* [refac] refactor package structure for ApiResponse and related classes

* [feat] enhance ApiResponse and GlobalExceptionHandler with additional fail methods and exception handling

* [fix] correct parameter order in ApiResponse constructors and methods

* [refac] update ApiResponse to use final data field and add constructor for null data

* [fix] improve generic exception handling in GlobalExceptionHandler
* [feat] add Spring Data JPA dependency for database integration

* [feat] add domain models for auth

* [feat] add domain models for member

* [feat] add domain models for notice

* [feat] add domain models for post

* [feat] add domain models for student record

* [feat] add JpaAuditingConfig

* [fix] change package name domain to entity
* [feat] Add Spring AI and AWS SES dependencies; implement ChatService and ChatConfig

* [feat] add OpenAiProperties and configure HTTP client

* [feat] refactor ChatService and SpringAiConfig; add timeout handling and logging

* [dependency] update build.gradle; add Spring Boot starter and external module dependency

* [feat] simplify ApiResponse and error code handling; remove status field and update constructors

* [refac] rename ChatService to AIClient; update package structure and change service annotation to component

* [refac] update logging messages in SpringAiConfig to Korean for better localization

* [feat] add OpenAiCallException for handling internal errors; update error codes and exception handling in AIClient

* [refac] rename AIClient to OpenAiClient for clarity and consistency

* [refac] rename TimeOutException to OpenAiException; update exception handling in OpenAiClient

* [refac] replace hardcoded "FAIL" string with a constant in GlobalExceptionHandler for consistency
* [refac] Refactor package structure for OpenAI integration

* [dependency] Add MySQL and JWT dependencies to build.gradle

* [feat] Implement JWT authentication components including generator, parser, validator, and properties

* [refac] Refactor package structure to centralize auth and member entities under core

* [feat] Set default timezone to Asia/Seoul on application startup

* [feat] Configure JPA settings and update application package scanning

* [fix] Update JWT token claims handling and improve error management in parser

* [refac] Extract JWT key generation logic into JwtKeyProvider for better code organization

* [refac] Enhance exception handling by adding cause parameter to custom exceptions
* [dependency] Add Spring Boot Security dependencies

* [feat] Implement JWT authentication filter and member authentication logic

* [refac] Update GlobalExceptionHandler to use specific failure codes for exceptions

* [feat] Add ExceptionHandlerFilter to manage authentication and general exceptions

* [feat] Add CustomPasswordEncoder for password hashing and verification

* [refac] Improve parameter declarations in CustomPasswordEncoder methods

* [feat] Add JwtAuthenticationEntryPoint for handling unauthorized access and update exception handling logic

* [refac] Refactor SecurityWhitelist to use a static array for whitelist paths

* [feat] Implement CORS configuration and enhance security settings with new SecurityConfig

* [feat] Update authentication error codes and add JwtAccessDeniedHandler for handling access denied scenarios

* [feat] Enhance SecurityConfig with JwtAccessDeniedHandler and refined authorization rules

* [feat] Add MemberId annotation and MemberIdArgumentResolver for custom parameter resolution

* [refac] Update AuthErrorCode with new error codes and add MemberErrorCode for member-related exceptions

* [feat] Implement Member service and repository for user management

* [feat] Update JwtAuthenticationFilter to use MemberDetailReader and modify MemberAuthentication creation

* [refac] Refactor security package structure and update imports for better organization

* [refac] refactor JwtAuthenticationFilter and SecurityWhitelist to use List instead of arrays for improved type safety and readability

* [refac] Remove unused imports in Member.java for cleaner code

* [refac] Remove unused imports in Member.java for cleaner code

* [refac] Add final modifier to method parameter in loadUserByUsername for clarity
* [dependency] Add Jackson and Spring Boot configuration processor dependencies

* [refac] Refactor subject entity and add exception handling

* [feat] Implement member restoration and add email existence check

* [feat] add random code generator for authorization

* [feat] Implement authentication services and member sign-up process

* [feat] Add MemberSignedUpEvent and publish event on member sign-up

* [feat] Add AuthController and MemberSignUpRequest for member sign-up process

* [feat] Enhance member sign-up process with JWT token generation and response structure

* [feat] Add refresh token handling in sign-up process with cookie support

* [fix] fix security whitelist handling error

* [feat] Implement password format validation during member sign-up process

* [docs] sign-up validation to include nickname check

* [refac] Refactor sign-up process to use new token service and response structure

* [refac] Refactor token handling by renaming and reorganizing Token and TokenType classes

* [feat] Enhance member restoration process to include nickname

* [refac] Refactor security whitelist to use arrays instead of lists for improved performance

* [feat] Implement expiration logic for pending authorization codes

* [refac] Rename TokenService to JwtTokenService and update references in AuthFacade and JwtAuthenticationFilter

* [refac] Remove unused method and query from AuthCodeRepository and simplify code in AuthCodeService

* [feat] Refactor sign-up process to use ResponseEntity and enhance cookie handling

* [refac] Rename ApiResponse to EduKitResponse and update references across the codebase

* [refac] Rename EduKitResponse to EdukitResponse and update references across the codebase

* [refac] Update exception handling by removing code references and simplifying response structure

* [refac] Refactor authentication code to use static methods for token generation and simplify member creation

* [refac] Rename AuthCode to VerificationCode and update related services and references

* [refac] Rename AuthCode to VerificationCode and related types, updating references across the codebase
* [feat] add notice management features

* [feat] add AWS S3 integration for presigned URL generation

* [feat] add file upload support to notices with AWS S3 integration

* [fix] error code format in S3ErrorCode enum

* [fix] refactor and streamline S3 presigned URL generation

* [EDMT-319] 회원가입 로직 구현 (#7)

* [dependency] Add Jackson and Spring Boot configuration processor dependencies

* [refac] Refactor subject entity and add exception handling

* [feat] Implement member restoration and add email existence check

* [feat] add random code generator for authorization

* [feat] Implement authentication services and member sign-up process

* [feat] Add MemberSignedUpEvent and publish event on member sign-up

* [feat] Add AuthController and MemberSignUpRequest for member sign-up process

* [feat] Enhance member sign-up process with JWT token generation and response structure

* [feat] Add refresh token handling in sign-up process with cookie support

* [fix] fix security whitelist handling error

* [feat] Implement password format validation during member sign-up process

* [docs] sign-up validation to include nickname check

* [refac] Refactor sign-up process to use new token service and response structure

* [refac] Refactor token handling by renaming and reorganizing Token and TokenType classes

* [feat] Enhance member restoration process to include nickname

* [refac] Refactor security whitelist to use arrays instead of lists for improved performance

* [feat] Implement expiration logic for pending authorization codes

* [refac] Rename TokenService to JwtTokenService and update references in AuthFacade and JwtAuthenticationFilter

* [refac] Remove unused method and query from AuthCodeRepository and simplify code in AuthCodeService

* [feat] Refactor sign-up process to use ResponseEntity and enhance cookie handling

* [refac] Rename ApiResponse to EduKitResponse and update references across the codebase

* [refac] Rename EduKitResponse to EdukitResponse and update references across the codebase

* [refac] Update exception handling by removing code references and simplifying response structure

* [refac] Refactor authentication code to use static methods for token generation and simplify member creation

* [refac] Rename AuthCode to VerificationCode and update related services and references

* [refac] Rename AuthCode to VerificationCode and related types, updating references across the codebase

* [refac] remove dto package

* [refac] move controller package to top

* [fix] add final keyword method parameter

* [feat] add notice management features

* [feat] add AWS S3 integration for presigned URL generation

* [feat] add file upload support to notices with AWS S3 integration

* [fix] error code format in S3ErrorCode enum

* [fix] refactor and streamline S3 presigned URL generation

* [refac] remove dto package

* [refac] move controller package to top

* [fix] add final keyword method parameter

* [refac] change response type to ResponseEntity<EdukitResponse>

* [refac] fix ErrorCode package

---------

Co-authored-by: Jian Kim <gayeon1008@g.skku.edu>
* [refac] Update column name for student record ID in StudentRecord.java

* [feat] Add AITaskStatus enum and StudentRecordAITask entity

* [feat] Add StudentRecordAIResult entity for storing AI task results

* [feat] Implement AIPromptGenerator for generating structured student record prompts

* [feat] Add AI generation functionality for student records

* [feat] update AI generation logic for student records

* [refac] update OpenAiProperties configuration and format aiGenerateStudentRecord method

* [refac] rename SpringAiConfig to SpringAIConfig and remove unused imports

* [feat] enhance user authentication and add custom argument resolver

* [dependency] add spring-boot-starter-webflux dependency to build.gradle

* [feat] implement streaming AI student record generation

* [feat] update AIPromptGenerator for streaming prompt generation and refactor related methods

* [feat] implement versioned streaming response for AI student record generation

* [feat] refine version handling in streaming response for AI student record generation

* [feat] update security configuration to support versioned student record access

* [feat] add OpenAI client configuration and properties for API integration

* [fix] fix OpenAI WebClient configuration to use customizer pattern and enhance logging

* [fix] enhance permission checks for AI student record generation and update error messages

* [feat] add error handling for streaming response in StudentRecordAIController

* [refac] update password handling in MemberDetailReader and remove unused MemberService from StudentRecordAIFacade; enhance validation in StudentRecordPromptRequest

* [feat] add method to find member by ID and deletion status; update retrieval logic in MemberService

* [refac] update byte buffer constants in createStreamingPrompt for improved clarity and maintainability

* [feat] add error handling for empty version response in OpenAIService
* [feat] add member get profile functionality

* [feat] add member update profile functionality

* [feat] add member validate nickname functionality

* [feat] add member withdraw functionality

* [feat] add swagger configuration and update security whitelist

* [feat] add handler for HandlerMethodValidationException

* [docs] add swagger documentation for notice

* [fix] withdraw endpoint to return consistent response format

* [fix] update error codes for nickname validation consistency

* [fix] remove server configuration from SwaggerConfig

* [refac] update get member profile with fetch join subject
* [refac] Refactor S3 package structure to use 'aws.s3' namespace

* [feat] add SES configuration

* [feat] add custom mail exception handling

* [feat] implement email verification functionality with Thymeleaf templates

* [feat] add email service and event listener for member sign-up verification

* [feat] add asynchronous email task executor configuration

* [fix] change package name for email verification HTML template

* [refact] reorganize AWS SES configuration and email mapping classes

* [feat] add error handling for email sending failures

* [refact] update AWS SES configuration to use AwsCredentialsProvider

* [fix] update email send failed error code for consistency
* [dependency] Add Resilience4j dependencies for circuit breaker and AOP support

* [feat] Add CircuitBreaker configuration for OpenAI integration

* [feat] Implement CircuitBreaker for OpenAI API calls with fallback response handling

* [refactor] Refactor OpenAI service to use constant for fallback message and improve circuit breaker configuration

* [dependency] Add Spring AOP starter for enhanced aspect-oriented programming support

* [test] Add unit tests for OpenAI service circuit breaker functionality

* [test] Add integration tests for OpenAI service circuit breaker functionality

* [refactor] adjust related mappings and event handling

* [refactor] Simplify fallback message construction in OpenAI service

* [test] Enhance assertions in OpenAI service circuit breaker tests
* [dependency] Add AWS Lambda dependencies and JSON processing library

* [feat] Implement batch service to reset teacher verification status

* [feat] Implement teacher verification batch processing

* [feat] Optimize batch application by excluding unnecessary dependencies and packages

* [dependency] Add MySQL connector for database integration

* [feat] Add method to retrieve members pending verification email

* [feat] Implement verification code issuance for members pending email verification

* [feat] Implement teacher verification code issuance and email notification

* [refactor] Add EmailEventListener to handle email notifications for member sign-up and status initialization

* [refactor] Refactor email verification process to use MemberVerificationData DTO

* [refactor] Rename JpaConfig package to common.config for better organization

* [refactor] Introduce AWS credential management with new configuration classes

* [fix] Update dependency exclusions and package imports for AWS and OpenAI integration

* [refactor] Simplify email event handling by removing unused event and updating verification initialization method

* [refactor] Enhance email sending process by simplifying parameters and adding bulk email functionality

* [refactor] Remove redundant EmailService declaration and clean up TeacherVerificationJob class

* [dependency] Update AWS Lambda dependencies to latest versions

* [refactor] Remove unused accessKey and secretKey fields from AwsSesProperties
* [refac] refactor AwsS3Config to inject AwsS3Properties directly

* [feat] add member login functionality

* [feat] add member logout functionality

* [feat] add member reissue functionality

* [feat] add member password reset functionality

* [feat] add redis support for refresh token management

* [refac] refactor transactional annotations and parameters

* [refac] refactor transactional annotations

* [fix] update AuthController to return structured success response

* [refac] remove InMemoryStoreService and KeyValueStoreService

* [refac] improve token verification using MessageDigest.isEqual

* [fix] update RedisConfig to use int for port instead of String

* [fix] delete refresh token upon member withdrawal

* [fix] update password functionality to use member UUID instead of email
* [feat] Add GitHub Actions workflow for Teacher Verification Batch deployment

* [test] remove branch checkout for test

* [fix] Create application.yml from secrets in GitHub Actions workflow

* [feat] Add branch check to GitHub Actions workflow for batch execution

* [feat] Add logback configuration for structured logging

* [feat] Add logback configuration for structured logging - batch module

* [fix] Update application.yml creation to use BATCH_APPLICATION_YML for development

* [fix] Update GitHub Actions workflow to use actions/cache@v4 and remove application.yml creation step
* [refactor] update package structure for Redis configuration

* [feat] add timeout configurations for AWS SES client

* [feat] implement email sending with timeout handling and Slack notifications

* [refac] enhance email sending error handling with Slack notifications

* [refac] replace RestTemplate with WebClient for Slack webhook notifications

* [refac] update SlackWebhookService to use reactive approach for webhook notifications

* [refac] improve error handling in EmailService by including exception details in MailException

* [refac] refactor SlackWebhookService to improve error handling and logging for webhook notifications

* [refac] refactor SlackWebhookService to use a Map for payload construction and improve message formatting

* [refac] add Slack package to component scan and fix logback conversion rule syntax

* [refac] refactor package structure to use 'db' subpackage for entity and enum classes

* [refac] refactor AuthFacade to comment out unused RefreshTokenStoreService and passwordEncryptor, and update build.gradle for improved dependency management

* [refac] refactor authentication logic to use PasswordHasher for password encoding and validation, and improve password change conditions

* [refac] update password equality validation to use MessageDigest for secure comparison
* [fix] Add step to create application.yml from secrets in CI pipeline

* [fix] Remove unnecessary launchScript configuration for Lambda

* [fix] Update JAR file naming in CI pipeline and build configuration

* [refac] Enhance Lambda deployment process with JAR size checks and improved logging

* [feat] Add Promtail configuration for log scraping and processing

* [refac] Update logging configuration for structured JSON output in Promtail

* [feat] Add drop expressions to filter specific log messages in Promtail configuration

* [feat] Update Promtail configuration to refine log filtering for Lambda, removing HTTP noise logs

* [feat] Update logging configuration for Lambda to enhance CloudWatch integration

* [dependency] Add Logstash Logback encoder for safe JSON serialization in logging

* [feat] Enhance logging configuration for Lambda with JSON output for better CloudWatch integration

* [fix] Remove unnecessary labels from Promtail configuration to streamline log processing

* [refactor] Simplify log file paths and remove unnecessary custom fields in logging configuration

* [fix] Update drop expressions in Promtail configuration to include additional HTTP methods and endpoints
* [refac] Refactor service dependencies to use conditional beans for Email, Cache, and AI services

* [refac] Refactor AI and Email services to use common interfaces and improve dependency management

* [refac] Rename and reorganize controller packages for better structure and clarity

* [refac] Update package structure for admin and auth requests to improve organization

* [dependency] Change 'implementation' to 'runtimeOnly' for edukit-external dependency in build.gradle

* [refac] Update build.gradle to optimize dependencies and change implementation to runtimeOnly for edukit-external

* [refac] Remove unused spring-boot-starter-webflux dependency from build.gradle

* [dependency] Add spring-boot-starter-webflux dependency to build.gradle

* [refac] Update edukit-external dependency in build.gradle to exclude unnecessary groups

* [refac] Rename EmailEventListener class package for better clarity

* [refac] Replace spring-boot-starter-webflux with spring-webflux in build.gradle

* [refac] Update build.gradle and refactor package structure for CircuitBreakerConfig

* [refac] Refactor notice facade package structure for clarity

* [refac] Rename MemberBatchFacade package for better organization

* [refac] Replace PasswordHasher with CustomPasswordEncoder for password management

* [refac] Refactor JWT package structure for improved organization

* [refac] NoticeFacade to rename FileStorageService variable for clarity

* [refac] Refactor password update logic and validation methods for clarity and security

* [dependency] build.gradle to remove Jackson Databind exclusion and add Reactor Netty BOM dependency
* [refac] Disable banner and shutdown hook in application startup

* [refac] Remove JBCrypt dependency from build.gradle

* [feat] build.gradle for layered dependency management and task organization

* [refac] Simplify layer dependency management in build.gradle by removing unused configurations and optimizing task definitions

* [feat] Refactor package structure for batch processing and add TeacherVerificationLambdaHandler

* [feat] Update GitHub Actions workflow for Lambda deployment and execution

* [feat] Update CI/CD workflow for batch deployment and add deploy script

* [feat] Update Lambda deployment role ARN in CI/CD workflow

* [fix] Update Main-Class in build.gradle to use TeacherVerificationLambdaHandler

* [test] Update branch reference in CI/CD workflow for testing

* [feat] Enhance Lambda deployment script with layer ARNs validation and JSON output

* [feat] Add layer validation and fat JAR fallback to Lambda deployment scripts

* [feat] Simplify Lambda deployment script by removing redundant checks and improving error handling

* [refac] Refactor layer management in build.gradle and deploy-lambda.sh for improved clarity and organization

* [refac] Optimize layer management in build.gradle and deploy-lambda.sh by adding Database/ORM layer and improving dependency classification

* [refac] Enhance layer file validation in deployment script with size checks and warnings

* [refac] layer management in deploy-lambda.sh for improved clarity and error handling

* [feat] Add retry logic and size validation to layer deployment in deploy-lambda.sh

* [refac] Improve error handling and logging in deploy-lambda.sh for layer deployment

* [refac] Enhance validation and error handling in deploy-lambda.sh for improved deployment reliability

* [refac] Enhance error handling and diagnostics in deploy-lambda.sh for improved deployment clarity

* [feat] Implement build tasks for Lambda application JAR and deployment ZIP creation

* [refac] Simplify dependency classification logic in build.gradle for improved readability

* [refac] Refactor buildLambdaAppJar task in build.gradle for improved clarity and structure

* [fix] Update build.gradle for improved JAR naming and ZIP task clarity

* [fix] Optimize Spring application initialization for Lambda with lazy loading and disabled banner

* [feat] Enhance logging and CloudWatch integration for Teacher verification Lambda job

* [fix] Correct typo in AWS Lambda runtime library inclusion and streamline internal modules packaging

* [fix] Update dependency classification in build.gradle and enhance Spring context initialization in TeacherVerificationLambdaHandler

* [refac] Update dependency classification and layer structure in build.gradle and deploy-lambda.sh

* [fix] Update dependency classification in build.gradle to include MySQL driver and streamline external layer logic

* [refac] Remove unused layer ARNs check and upload steps from batch-dev-cd.yml

* [refac] Reduce sleep duration in deploy-lambda.sh to avoid excessive wait time during layer deployment

* [refac] Update checkout reference in batch-dev-cd.yml to use 'develop' branch

* [refac] Simplify deployment messages and streamline logging in deploy-lambda.sh

* [fix] Adjust layer size thresholds in build.gradle and clean up deploy-lambda.sh

* [test] Update checkout reference in batch-dev-cd.yml to use 'feat/EDMT-349' branch

* [refac] Update branch reference in batch-dev-cd.yml to 'develop' and improve AWS CLI command syntax in deploy-lambda.sh
* [feat] add GitHub Actions-based CD for dev environment

* [feat] add Dockerfile for dev environment setup

* [fix] update workflow paths for Docker and Compose files

* [fix] Update JAR naming in workflow and build configuration

* [fix] Fix monitoring secret name in CD workflow

* [fix] Add AWS ECR login step to CD workflow

* [fix] Remove unnecessary sudo from Docker commands in CD workflow

* [fix] Update API CD workflow to fix resource paths

* [fix] Update API CD workflow to fix docker resource paths

* [fix] Update API CD workflow to use secret key API_APPLICATION_YML

* [fix] Update API CD workflow to enable merging multiple configs

* [fix] fix promtail config path in API CD workflow

* [fix] Fix artifact name and promtail config path in CD workflow

* [fix] Update Docker Compose paths in API CD workflow

* [fix] Update .env file path in API CD workflow

* [fix] Simplify API CD workflow file paths

* [feat] Add ForwardedHeaderFilter bean to WebMvcConfig

* [fix] Add server URL support in SwaggerConfig

* [fix] Remove branch-specific trigger in api-dev-cd workflow

* [fix] Update action versions in api-dev-cd workflow
* [refac] delete batch module

* [refac] restructure Docker and configuration file paths
* [refac] Refactor Notice file handling and improve S3 operations

* [fix] Update S3 file handling to rely on lifecycle rules

* [fix] Add logging to S3 file operations for better error tracking

* [fix] Refactor image URL naming in request parameter

* [fix] Update S3ErrorCode message for INVALID_FILE_URL

* [refac] Add member withdrawal functionality to MemberController

* [fix] Add nickname validation to AuthService

* [fix] Refactor nickname validation logic in MemberService

* [fix] Add file handling in Notice operations

* [fix] Update S3 error codes for file operations

* [fix] Add example for invalid file ID in delete operations

* [fix] Enhance API documentation with detailed workflows

* [fix] Refactor notice service to handle files more efficiently

* [fix] Handle duplicate nickname gracefully in MemberFacade

* [fix] Flush changes immediately after member restoration

* [fix] Refactor nickname validation logic for clarity and simplicity

* [fix] Remove NoticeFileService and consolidate file operations
* [feat] Implement MDC logging filter and update logging configuration

* [feat] Enhance logging with MDC support and add RequestLoggingFilter

* [feat] Update promtail configuration to include traceId, userId, requestUrl, and method fields

* [refac] Refactor JwtAuthenticationFilter and enhance RequestLoggingFilter with userId and traceId logging

* [refac] Rename JWT classes to move to 'util' package for better organization

* [refac] Simplify response logging in RequestLoggingFilter by removing status from log message

* [refac] Rename EmailAsyncConfig to AsyncConfig for improved clarity

* [refac] Introduce BEARER_PREFIX constant in RequestLoggingFilter for improved readability and maintainability

* [refac] Change access modifier of AUTH_WHITELIST and related constants to package-private for better encapsulation

* [refac] Add userId to MDC in AuthFacade for improved logging context

* [feat] Enhance email event handling with MDC context for improved logging

* [refac] Remove unused HttpServletResponse import in RequestLoggingFilter for cleaner code

* [feat] set async configuration and email handling for improved error management and logging

* [refac] Remove unused logging and simplify email sending in EmailEventListener and EmailServiceImpl

* [refac] Refactor package structure for consistency across the application

* [refac] Simplify error logging in CustomAsyncExceptionHandler and remove unused code in GlobalExceptionHandler

* [feat] Enhance async configuration with MDC context propagation and clean up email event handling

* [dependency] add prometheus dependency

* [refac] Simplify logging in GlobalExceptionHandler by removing exception cause from log messages

* [refac] Update package structure for member and notice facades to improve organization
* [refac] S3Exception handling to remove exception chaining

* [feat] Add CI/CD workflow for API development environment

* [refac] delete MemberBatchService.java

* [refac] remove unused extractKey method from S3ServiceImpl

* [refac] rename CI/CD workflow from api-dev-cd to api-dev-ci
* [refac] remove dev environment specification from CI build job

* [refac] refactor student package structure

* [feat] implement student management API with error handling

* [refac] update package structure for service classes

* [refac] refactor service package structure to unify port definitions

* [dependency] add Apache POI dependencies for Excel file processing

* [feat] implement student upload functionality with Excel file processing

* [fix] simplify token extraction in RequestLoggingFilter

* [refac] reorganize package structure to unify service definitions

* [refac] streamline Excel file format validation in ExcelService

* [refac] update Excel file parsing to use Set for unique student entries

* [refac] enhance Excel parsing by introducing constants for header and target sheet indices

* [refac] enhance Excel parsing to process all sheets and improve error handling in StudentException

* [refac] refactor Excel parsing to use named constants for column indices and introduce a static factory method in StudentExcelRow

* [refac] refactor Excel parsing to use Optional for student row parsing and improve row length handling

* [refac] update Apache POI dependency to version 5.4.0 for improved Excel file processing

* [refac] add validation for file parameter in uploadStudentExcel method

* [refac] extract Excel utility methods for improved readability and reusability

* [fix] remove unnecessary validation annotation from uploadStudentExcel method

* [feat] add method to find students by member and prevent duplicate student creation

* [refac] simplify uploadStudentExcel method and remove response object

* [refac] move ExcelUtils to student package for better organization

* [refac] enhance Excel file handling by adding support for XLS format and improving validation

* [feat] implement StudentApi interface and update StudentController for better API structure

* [refac] remove file format validation and simplify StudentExcelRow class

* [refac] refactor student creation logic and introduce StudentKey for better duplicate checking
* [fix] Change category handling from ID to name-based approach

* [fix] Update API versioning to v2 throughout the application

* [fix] Update API versioning to v1 across the application

* [fix] Handle null and blank input in NoticeCategory.from method

* [fix] Update field references from 'categoryId' to 'category'
* [feat] Enhance AIPromptGenerator with detailed UTF-8 byte calculation guidelines

* [refac] Implement bulk student insertion in StudentService

* [refac] Simplify bulk student insertion logic in StudentService

* [refac] Remove unnecessary MDC logging in AuthFacade
* [feat] Implement email verification feature with event handling

* [feat] Add email verification endpoint and update verification logic

* [fix] Update email verification endpoint to include versioning

* [fix] Update student API version from v2 to v1

* [refac] Rename email event classes for teacher-specific verification

* [feat] add password recovery feature

* [feat] Implement email update functionality with verification for teachers

* [feat] Add password update functionality with validation

* [fix] Add transactional support for sending verification emails

* [fix] Update event handling to use PasswordFindEvent in EmailEventListener

* [feat] Enhance password update functionality to include confirmation password validation

* [refac] Optimize password validation logic for improved performance and security

* [refac] Simplify password validation logic by introducing isPasswordMatched method

* [refac] Optimize password validation logic for improved performance and clarity

* [refac] Refactor password validation logic to use passwordEncoder for current password check

* [refac] Simplify password validation logic by optimizing regex and reducing complexity

* [feat] Introduce MemberApi interface for improved separation of concerns in member management

* [feat] introduce AuthApi interface for versioning

* [feat] add error handling for duplicated email in member profile update

* [feat] implement email update and withdrawal methods with error handling for duplicated emails

* [feat] add token store refresh on password update to enhance security

* [fix] rename AuthApi and AuthController to AuthV1Api and AuthV1Controller for versioning

* [refac] remove deprecated prompt generation methods and comments for cleaner code

* [refac] rename event classes and methods for consistency and clarity
wldks1008 and others added 25 commits August 20, 2025 14:38
* [fix] Remove unused RedisTemplate configuration from RedisConfig

* [fix] Update error codes for AI task handling in StudentRecordErrorCode and StudentRecordService
* [feat] Implement AITaskService for task management and refactor AIEventListener

* [refac] Refactor AITaskService and integrate with StudentRecordAIFacade and SSEChannelManager

* [refac] Rename deleteChannel to removeChannel in SSEChannelManager for clarity

* [refac] Remove unused RedisStreamConsumer bean and related imports in RedisConfig

* [feat] Enhance SSEChannelManager to handle channel removal and add error handling for AI task completion

* [fix] Ensure readFromStream returns an empty list instead of null for Redis stream reads

* [feat] Add example response for AI task completion failure in StudentRecordAIApi

* [feat] Update AITaskService to associate AI tasks with members and refactor task creation

* [feat] Add user task validation and update stream response handling in AI task services

* [feat] Drop student_record_ai_result table and add member relation to student_record_ai_task

* [feat] Enhance request and response models with Swagger annotations for better API documentation

* [feat] delete unused dto

* [feat] Add Swagger annotations for improved API documentation in request models

* [feat] Add Swagger annotations to response models for enhanced API documentation

* [feat] Enhance API responses with detailed success messages and examples for improved documentation

* [feat] Improve SSE channel cleanup and enhance API response media type specifications for better documentation
* [feat] Refactor file handling logic in notice updates.

* [fix] Update file handling to use unified 'fileKeys' parameter.

* [fix] Handle null 'fileKeys' and improve notice file updates.
* [fix] Simplify password update by removing confirmPassword.

* [fix] Remove confirmPassword validation for password updates.
* [feat] Add traceId to DraftGenerationEvent and SQS message attributes

* [feat] Capture and restore MDC context in AI event processing

* [refac] Enhance MDC context management in AI event processing
* [feat] Add handler for NoHandlerFoundException in GlobalExceptionHandler

* [feat] Update error response for NoHandlerFoundException to use status code 400

* [feat] Rename ServerInstanceManager package to com.edukit.common.infra

* [refac] Update import statements for ServerInstanceManager to new package structure

* [refac] Update tag description for StudentApi to reflect management context

* [feat] Introduce AuthV2Api interface and update AuthV2Controller to implement it; modify AuthV1Api tag description

* [refac] Update docker-compose configuration to use SERVER_ID for environment variable

* [feat] Enhance ServerInstanceManager to write SERVER_ID to a file and update docker-compose for SERVER_ID usage
* [fix] Update HTTP method for modifying student records.

* [feat] Add QueryDSL configuration for JPA support

* [feat] Add student filtering and pagination API

* [fix] Remove redundant comment in StudentQueryRepository

* [fix] Enforce pageSize validation in API endpoints
* [feat] 학생 기록 상세 조회 기능 추가

* [refac] 학생 기록 상세 조회 메서드 이름 변경

* [feat] 생활기록부 상세 조회 기능 추가

* [refact] StudentRecordDetailResponse 패키지 경로 변경 및 임포트 수정

* [refact] Remove unnecessary blank line in StudentRecordController
* [refac] Remove SERVER_ID references and temporary file handling from configuration

* [refac] Clean up AuthV2Controller by removing outdated comments

* [feat] Add password change notification email template

* [feat] Enhance email service to include customizable subject lines for verification and password change emails

* [feat] Update email service to support customizable email templates for verification and password change emails

* [refac] Update API version for password recovery endpoint in SecurityWhitelist

* [refac] Remove unused imports and deprecated query method from MemberRepository

* [feat] Add password find and update endpoints with detailed API responses

* [refac] Refactor email service to use EmailTemplate enum for subject and template management

* [refac] Improve type declaration for contextMap in MdcTaskDecorator

* [refac] Remove redundant MDC clear comments in AIEventListener

* [refac] Update API documentation to remove confirmPassword from error example

* [refac] Remove unused permission check method from AuthFacade

* [refac] Remove confirmPassword parameter from updatePassword method and related validations

* [refac] Remove PASSWORD_CONFIRM_MISMATCH error code and related API documentation

* [refac] Refactor email request building to use EmailTemplate and update URL handling

* [refac] Update API documentation for password recovery and change operations
* [refac] Refactor AIEventListener and SqsServiceImpl to improve code clarity and remove unnecessary comments

* [refac] Refactor promtail configuration for EduKit API logging, consolidating log levels and improving filtering

* [refac] Update docker-compose configuration to include dynamic HOSTNAME for blue-green deployment

* [refac] Refactor docker-compose configuration to set dynamic HOSTNAME for development environment

* [refac] Refactor promtail configuration to minimize high-cardinality labels in dynamic label settings

* [refac] Refactor promtail configuration to streamline health check and metrics endpoint filtering

* [refac] Refactor docker-compose and promtail configuration for blue-green deployment, enhancing log management and filtering
* [fix] Update HTTP method for modifying student records.

* [feat] Add QueryDSL configuration for JPA support

* [feat] Add student filtering and pagination API

* [fix] Remove redundant comment in StudentQueryRepository

* [fix] Enforce pageSize validation in API endpoints

* [fix] Add student count to StudentsGetResponse

* [fix] Add student count to API response

* [fix] Refine parameter descriptions in StudentApi

* [fix] Remove deprecated getStudentsByFilters method
* [fix] 학생 조회 API에 대한 권한 설정 추가

* [refac] 수정된 페이지 사이즈 파라미터의 기본값 설정

* [fix] 수정된 학생 API 경로로 요청 매핑 변경
* [fix] Update API dev workflow to stop and remove old app containers

* [fix] Remove dynamic page size and set a static default value of 10

* [fix] Set static page size of 20 for student records API

* [feat] Add grades and class numbers to student response

* [fix] Sort student records by record type

* [feat] Refactor student record handling for member-based filtering

* [fix] Fix unnecessary whitespace in API dev CD workflow
* [feat] Add student name retrieval by filters

* [feat] Add API to retrieve student names by record type

* [feat] Ensure unique student records during updates

* [fix] Refactor mapping to use StudentNameItem factory method

* [fix] Refactor student duplicate validation methods in service
* [feat] Enhance response to include grades and class numbers

* [feat] Add grades and class numbers to API response
* [feat] add idempotency key handling in SQS message sending

* [refac] throw SQSException on idempotency key extraction failure

* [fix] return null on idempotency key extraction failure in SqsServiceImpl

* [refac] add AI_GENERATE_TIMEOUT error code and update SSE timeout handling

* [fix] remove SQSException throw on idempotency key extraction failure
* [refac] remove AITaskStatus from StudentRecordAITask

* [refac] remove status column from student_record_ai_task table

* [refac] remove startTask method and its invocation in AIEventListener

* [feat] implement startTask method in AITaskService and invoke it in AIEventListener

* [feat] add AIProgressMessage record for task status updates

* [feat] implement progress messaging for AI task generation

* [fix] update log message to reflect correct progress message property

* [feat] introduce SSEMessage for structured event messaging in SSEChannelManager

* [feat] refactor taskId handling to use String type in AIProgressMessage and related classes

* [refac] format progress message sending in AIEventListener for improved readability

* [feat] introduce AITaskStatus enum for structured task status management in AIProgressMessage and SSEChannelManager

* [feat] enhance AI streaming response to include progress status and final content details

* [feat] add INVALID_AI_TASK_STATUS error code and improve exception handling in AITaskStatus

* [feat] refactor taskId handling to use String type across AITaskService, StudentRecordAIController, and StudentRecordAIFacade

* [feat] update taskId handling to use String type in StudentRecordAIApi for consistency

* [feat] update extractIdempotencyKey method to handle taskId as String for improved consistency

* [refac] update SQS message sending to include idempotency key for improved message handling
* [refac] remove unused progress message handling in AIEventListener and related classes

* [refac] remove unused logging in AIEventListener

* [fix] reduce SseEmitter timeout duration in createChannel method

* [refac] remove redundant line breaks in RedisStreamConsumer

* [fix] add delay before completing task in SSEChannelManager

* [refac] implement scheduled task completion with reduced delay in SSEChannelManager
* [fix] Remove post-related entities and enums from the codebase

* [feat] Add GitHub Actions pipeline for API production deployment

* [fix] Remove branch-specific trigger from API prod CD pipeline
* [feat] add new phases for AI task status enumeration

* [feat] add completed phase to AI task status enumeration

* [feat] add in-progress status check for AI task status

* [refac] rename sendMessage to sendCompleteMessage in SSEChannelManager

* [feat] update AIResponseMessage to include status and rename reviewedContent to content

* [feat] add isComplete method to AITaskStatus and update RedisStreamConsumer to check task completion status

* [feat] refactor AIProgressMessage and AIResponseMessage to use String status; update RedisStreamConsumer to handle progress messages

* [feat] update AIProgressMessage and AIResponseMessage to include JSON properties; modify RedisStreamConsumer to handle progress messages

* [refac] update RedisStreamConsumer to improve task status handling in progress messages

* [feat] update AIProgressMessage to include version; modify AIEventListener to send progress messages with version information

* [feat] add version handling in SSEChannelManager for AIProgressMessage

* [feat] enhance RedisStoreService to support hash operations for task status; update SSEChannelManager to store and retrieve progress messages using versioned hashes

* [feat] update SSEChannelManager and SSEMessage to include version in progress messages; enhance RedisStoreService to store task status with versioning

* [fix] update SSEChannelManager and SSEMessage to include version in progress messages; enhance RedisStoreService to store task status with versioning

* [refac] change status message

* [refac] specify status message

* [refac] apply changes to Swagger API docs

* [fix] fix Json parse logic
* [refac] change file position

* [feat] add sendMessage function in redis stream service

* [refac] send Message to Redis Stream instead of SQS

* [docs] update README.md
@wldks1008 wldks1008 added the 📌release📌 Further information is requested label Sep 12, 2025
@coderabbitai

coderabbitai Bot commented Sep 12, 2025

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Comment @coderabbitai help to get the list of available commands and usage tips.

@wldks1008 wldks1008 merged commit 2eb7379 into main Sep 12, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📌release📌 Further information is requested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants