- Revised the architecture documentation to include detailed diagrams and descriptions for the GoodGo Microservices Platform, enhancing clarity on system components and interactions.
- Updated the .NET template documentation to reflect new naming conventions and project structures, ensuring consistency across services.
- Added real-world examples and practical setup instructions for local development, including Traefik routing and environment variable configurations.
- Enhanced the guide documentation with verification checklists and troubleshooting steps to support developers in deploying and managing services effectively.
- Introduced new documentation for Agent Skills, detailing best practices, code patterns, common pitfalls, and quick references across various categories such as Architecture, Data Access, Security, Error Handling, Testing, Infrastructure, Communication, and Documentation.
- The documentation is structured to facilitate easy navigation and understanding, supporting developers in implementing consistent patterns on the GoodGo Platform.
- Both English and Vietnamese versions are provided to ensure accessibility for a wider audience.
- Deleted the English and Vietnamese documentation files for Cursor Skills, which included comprehensive details on various skills used in the GoodGo Microservices Platform.
- This cleanup ensures that only relevant and up-to-date documentation is maintained, streamlining the repository and focusing on current development practices.
- Deleted multiple outdated skill documentation files, including those related to API design, API gateway patterns, versioning strategies, caching patterns, CI/CD advanced patterns, bilingual code comments, configuration management, data consistency patterns, Prisma database patterns, Kubernetes deployment patterns, and more.
- This cleanup streamlines the documentation repository, ensuring that only relevant and up-to-date information is maintained for current development practices.
- Revised multiple skill documentation files to improve clarity and ensure consistency across descriptions and formatting.
- Enhanced the organization of content to facilitate easier navigation and understanding for developers.
- This update aims to streamline the documentation process and support better skill development practices.
- Revised compatibility specifications in multiple skill documentation files to reflect support for .NET 10+, ensuring alignment with the latest development standards.
- Updated files include API design, error handling patterns, project rules, repository pattern, security, and testing patterns.
- This change enhances the relevance and usability of the skills for current and future development projects.
- Expanded the note.md file to include a comprehensive list of proposed new skills for the GoodGo Platform, detailing descriptions and reasons for each skill.
- Organized skills into priority levels to guide implementation focus, enhancing clarity on core development patterns and infrastructure needs.
- This update aims to improve documentation and facilitate better planning for future skill development.
- Deleted various outdated files related to the IAM service, including configuration files, documentation, and test scripts, to streamline the project structure.
- This cleanup helps maintain focus on current practices and ensures that only relevant and up-to-date information is retained in the repository.
- Deleted the chuan-hoa-skills.md file, which contained an obsolete workflow for standardizing Agent Skills according to the skill-authoring template.
- This removal helps streamline the documentation by eliminating outdated practices and focusing on current standards for skill development.
- Revised the API design documentation to reflect new standards for RESTful API design, including updated compatibility with .NET 8+ and ASP.NET Core.
- Added metadata for authorship and versioning to the documentation.
- Enhanced sections on API response formats and resources, ensuring clarity and consistency.
- Deleted outdated documentation files related to API gateway patterns, versioning strategies, and other obsolete skills to streamline the documentation repository.
- Deleted several obsolete documentation files related to API design, API gateway patterns, API versioning strategies, caching patterns, CI/CD advanced patterns, bilingual code comments, configuration management, data consistency patterns, Prisma database patterns, Kubernetes deployment patterns, and more.
- This cleanup helps streamline the documentation and focus on current practices and standards, ensuring that only relevant and up-to-date information is maintained.
- Deleted several outdated plan files related to cursor skills and microservices architecture, including plans for cursor skills, i18n adjustments, enterprise microservices, and event-driven architecture.
- Removed associated skill documentation files that are no longer relevant to the current project structure and standards.
- This cleanup helps streamline the documentation and maintain focus on active development areas.
- Expanded the API documentation to include detailed sections on file management endpoints, including upload, retrieval, sharing, and deletion.
- Added a comprehensive overview of pre-signed URLs and access levels, clarifying the differences between public, private, and shared file access.
- Introduced a new architecture section detailing the download URL generation flow and security considerations for pre-signed URLs.
- Enhanced the README with examples and explanations to improve developer understanding of file access and management processes.
- Updated the GenerateObjectKey method to include a prefix based on the file access level (public, private, shared).
- Improved documentation for the method to clarify the path structure and its implications for file accessibility.
- Adjusted the UploadFileCommandHandler to utilize the new object key generation logic, ensuring proper file organization in storage.
- Introduced a new endpoint to retrieve CDN URLs for public files, falling back to pre-signed URLs when necessary.
- Enhanced caching for file metadata retrieval in GetFileQueryHandler to improve performance.
- Updated file handling commands to invalidate relevant caches upon file operations.
- Added configuration settings for CDN in appsettings.json to manage CDN behavior.
- Implemented new data models for CDN URL responses and integrated them into the API response structure.
- Added multipart upload methods to the IStorageProvider interface and implemented them in the MinioStorageProvider and AliyunOssStorageProvider classes.
- Integrated Redis caching for user quota management in ConfirmUploadCommandHandler and DeleteFileCommandHandler to ensure updated quota values.
- Enhanced GetUserQuotaQueryHandler to utilize cache-aside pattern for improved performance.
- Updated Dependency Injection to register Redis cache service and configured related settings.
- Introduced database schema changes to support multipart uploads and their parts.
- Introduced a new section detailing the Multipart Upload architecture for files larger than 100MB, including a comparison of upload methods.
- Documented the Multipart Upload flow with a sequence diagram illustrating the process from initiation to completion.
- Listed the relevant API endpoints for Multipart Upload, including initiation, part uploads, completion, and progress checking.
- Added a database schema section for tracking multipart uploads and their parts, enhancing clarity on data management.
- Added the Membership Service configuration to the local docker-compose.yml, replacing the previous Social Service setup.
- Implemented IAM Service client with caching and health check capabilities in the Membership Service.
- Created Dependency Injection for IAM Service settings and registered the HttpClient for communication.
- Removed the outdated docker-compose.yml for the previous Social Service.
- Enhanced IAM Service client functionality to validate users, retrieve roles, and manage permissions.
- Updated the README and ARCHITECTURE documentation to emphasize the Logical Folder structure, clarifying that folders are a logical concept in the database rather than dependent on bucket structure.
- Highlighted the benefits of using UUID-based keys and a flat bucket structure, including improved performance, security, and scalability.
- Provided detailed examples of database schema, workflows, and performance comparisons to illustrate the advantages of the new approach over traditional methods.
- Enhanced explanations of folder management processes, including creation, renaming, and file uploads, to improve developer understanding and implementation.
- Updated the architecture documentation to emphasize the Logical Folder structure and its alignment with Data Sovereignty principles.
- Introduced a clear distinction between logical and physical storage, highlighting the benefits of using UUID-based keys and a flat bucket structure.
- Provided detailed examples of database schema, workflows, and performance comparisons to illustrate the advantages of the new approach over traditional bucket-based methods.
- Enhanced explanations of folder creation, renaming, and file management processes to improve developer understanding and implementation.
- Introduced routing for the Storage Service with rules for file management endpoints.
- Updated IAM service base URL to "http://iam-service-net:8080" for consistency.
- Configured load balancer for the Storage Service to enhance file management capabilities.
- Enhanced the architecture documentation to recommend direct upload over legacy proxy upload for improved performance and scalability.
- Added detailed comparisons of upload patterns, including throughput, memory usage, and latency.
- Updated API endpoint documentation to reflect new direct upload methods and their benefits.
- Included examples for direct upload flow and bucket directory structure to aid developers in implementation.
- Expanded the README documentation to include detailed instructions for Docker network configuration and JWT token issuer setup for inter-service communication.
- Added troubleshooting tips for common issues related to JWT issuer mismatch and container networking.
- Updated caching information and clarified available methods for the IIamServiceClient.
- Added a fixed issuer URI for inter-service communication in the docker-compose.yml and appsettings.json.
- Updated DependencyInjection to utilize the new issuer URI, ensuring consistency across hosts and containers.
- Added curl installation in the IAM service Dockerfile for improved functionality.
- Removed the deprecated docker-compose.yml for the Storage Service, consolidating service definitions.
- Ensured consistency in the build and publish commands for the Storage Service Dockerfile.
- Introduced the Storage Service .NET configuration in the local docker-compose.yml, enabling file storage management with external MinIO and Redis integration.
- Updated environment variables for database connection, storage provider, and IAM service communication.
- Configured health checks and Traefik routing for the new service.
- Changed the IAM service base URL from "http://iam-service:5001" to "http://iam-service-net:8080" in both the local docker-compose.yml and the IamServiceClient class to ensure consistency across configurations.
- Updated the UsersController to ensure that the Email field defaults to an empty string if null, and the Status field defaults to "Unknown" if not set. This improves the robustness of the user data returned in API responses.
- Changed authorization schemes in AuthController, RolesController, and UsersController from JwtBearerDefaults.AuthenticationScheme to "Bearer" for uniformity across the application.
- Added new endpoints in UsersController to retrieve user roles and permissions by user ID, enhancing user management capabilities.
- Added IAM service configuration to the local docker-compose.yml for streamlined deployment.
- Removed the separate docker-compose.yml file from the IAM service directory to consolidate service definitions.
- Added phone number field to the registration example in the API documentation.
- Included detailed response structure for registration and email verification endpoints.
- Updated email confirmation example to use email instead of userId for clarity.
- Enhanced two-factor authentication response to include manual entry key and recovery codes.
- Updated recovery code generation to use 12 bytes for base64 conversion, ensuring sufficient characters.
- Implemented fallback padding to guarantee a minimum length of 8 characters for generated codes.
- Adjusted formatting to maintain readability with XXXX-XXXX structure.
- Changed SMTP configuration to use specific credentials and sender details for the GoodGo IAM service.
- Updated sender email and name to reflect the new service branding.
- Modified logging levels in `appsettings.Development.json` to enhance log visibility.
- Added Serilog configuration for structured logging and console output.
- Updated Redis connection settings for improved security and performance.
- Introduced email configuration settings for SMTP integration.
- Added two-factor authentication settings and social login configurations for Google and Facebook.
- Updated the default connection string in `appsettings.json` to match the new database setup.
- Deleted the `Login` method and associated `LoginRequest` and `LoginResponse` models from `AuthController.cs` to streamline authentication processes.
- This change simplifies the codebase by removing unused components related to the Resource Owner Password Grant flow.
- Added JWT Bearer authentication configuration in `Program.cs` for IAM service integration.
- Updated Swagger setup to include JWT Bearer security definition and requirements.
- Introduced a new Swagger UI client for testing with resource owner password grant type in `Config.cs`.
- Included necessary package reference for `Microsoft.AspNetCore.Authentication.JwtBearer` in the project file.
- Added Swagger support in `Program.cs` to enhance API documentation and enable annotations.
- Updated project file to generate XML documentation for Swagger and included the `Swashbuckle.AspNetCore.Annotations` package.
- Modified `FilesController` and `QuotaController` to support API versioning and updated route attributes accordingly.
- Changed the default bucket name in `appsettings.Development.json` from "storage" to "goodgo" and updated MinIO endpoint and credentials for improved access.
- Modified the service initialization in `Program.cs` to include the environment name, enhancing configuration flexibility.
- Added a missing namespace in `CustomWebApplicationFactory.cs` for better test setup.
- Removed obsolete unit test files for `CreateSampleCommandHandler` and `SampleAggregate`, streamlining the test suite.
- Updated `appsettings.Development.json` to change the database connection string for the storage service.
- Added `Microsoft.EntityFrameworkCore.Design` package reference to the project file for design-time features.
- Removed obsolete command and handler files related to sample management, including `ChangeSampleStatusCommand`, `CreateSampleCommand`, `UpdateSampleCommand`, and their respective handlers.
- Cleaned up the `SamplesController` and related query and validation files to streamline the codebase.
- Updated `docker-compose.yml` to include a new path prefix for roles in the IAM service routing configuration, enhancing API endpoint coverage for role management.
- Updated `.env` file to enhance shared environment variables, including detailed comments in both English and Vietnamese.
- Modified `docker-compose.yml` to disable the storage service and MinIO configuration, streamlining local development setup.
- Adjusted IAM service environment variables to align with the new `.env` structure, ensuring consistent configuration across services.
- Enhanced observability settings and added feature flags for better control over application behavior during development.
- Cleaned up commented-out sections in the Docker Compose file for clarity and maintainability.
- Modified local `.env` and `.env.local` files to include external Redis configuration and IAM service database connection details.
- Updated `docker-compose.yml` to disable local Redis service in favor of an external Redis instance.
- Added JWT configuration parameters for the IAM service, enhancing security and token management.
- Revised example environment file to reflect new configuration options for external services.
- Enhanced documentation to clarify setup instructions for local development with external dependencies.
- Introduced a new social-service in the Docker Compose configuration for local development, including build context, environment variables, and health checks.
- Updated architecture documentation to reflect the new storage service structure and its components, including user storage quotas and file management.
- Enhanced README files to provide clearer instructions on service setup, configuration, and API endpoints for file storage management.
- Implemented caching mechanisms in the IAM service client for improved performance and reduced latency in user information retrieval.
- Updated appsettings for development to include caching settings for IAM service interactions.
- Added endpoints for sending and confirming email verification, enhancing user account security.
- Integrated two-factor authentication (2FA) with TOTP support, including enabling, verifying, and disabling 2FA.
- Implemented social login functionality for Google and Facebook, allowing users to authenticate using their existing accounts.
- Updated dependency injection to include services for email, 2FA, and social login.
- Enhanced documentation to reflect new features and usage examples for email verification and 2FA.
- Revised architecture documentation to replace OpenIddict references with Duende IdentityServer, including updates to diagrams and flow descriptions.
- Updated README files in both English and Vietnamese to reflect the change in the OAuth2/OIDC server from OpenIddict to Duende IdentityServer.
- Enhanced token management and authentication flow descriptions to align with the new identity server implementation.
- Replaced JwtSecurityToken with JsonWebToken in DependencyInjection.cs to align with ASP.NET Core 8+ requirements.
- Enhanced CustomWebApplicationFactory to configure minimal JWT validation and custom authentication handling for functional tests.
- Removed outdated tests that relied on InMemory Database limitations, ensuring a cleaner test suite.
- Updated RegisterUserCommandHandlerTests to throw DuplicateResourceException for better error handling.
- Replaced OpenIddict references with Duende IdentityServer in the project, including updates to the API project and infrastructure.
- Refactored authentication and authorization logic in AuthController, LogoutCommandHandler, and related services to align with Duende IdentityServer's structure.
- Updated dependency injection configuration to register Duende IdentityServer components and JWT Bearer authentication.
- Enhanced functional tests to accommodate changes in authentication flow and ensure compatibility with the new identity server.
- Removed obsolete OpenIddict components and related code to streamline the project.