Commit graph

2818 commits

Author SHA1 Message Date
Max
4bdd921d4c Enhance knowledge base provider management with multi-language support
- Implemented loading of providers from directories, allowing for multi-language configurations.
- Updated the KnowledgeBase struct to include a Providers field for managing provider configurations.
- Refactored GetProviders and GetProvider methods to utilize the new multi-language provider system, improving localization support.
- Added comprehensive test cases to validate provider loading and retrieval functionality across different languages.
2025-08-09 16:57:23 +08:00
Max
e6c5631b57
Merge pull request #1092 from trheyi/main
Add provider management functionality and enhance schema retrieval
2025-08-09 11:24:32 +08:00
Max
0251bdc8d7 Add provider management functionality and enhance schema retrieval
- Implemented GetProviders and GetProvider methods to retrieve providers based on type and ID, improving the knowledge base's provider management capabilities.
- Enhanced the Schema methods for chunking providers to retrieve schemas from bindata, ensuring better integration with the overall system.
- Updated OpenAPI routes to include endpoints for provider management, allowing for easier access to provider information via HTTP requests.
2025-08-09 11:23:51 +08:00
Max
d8fe1fabf0
Merge pull request #1091 from trheyi/main
Update Schema methods to include locale parameter for providers
2025-08-09 09:12:14 +08:00
Max
08c83e09e6 Update Schema methods to include locale parameter for providers
- Modified Schema methods across various providers (chunking, embedding, extractor, fetcher, converters) to accept an additional locale parameter, enhancing localization support.
- Updated corresponding test cases to reflect the changes in method signatures and ensure proper functionality with the new locale argument.
2025-08-09 09:11:25 +08:00
Max
8c4e08ef7c
Merge pull request #1090 from trheyi/main
Refactor Config struct to ensure consistent JSON/YAML field handling
2025-08-08 17:44:00 +08:00
Max
28368a31b0 Refactor Config struct to ensure consistent JSON/YAML field handling
- Updated the Config struct to include `omitempty` for optional fields in JSON and YAML serialization, ensuring that empty values are omitted from the output.
- Enhanced the Provider struct and related configurations to maintain consistency in field definitions and improve clarity in the codebase.
2025-08-08 17:41:45 +08:00
Max
8794e414a3
Merge pull request #1089 from trheyi/main
Add UpdateCollectionMetadata functionality
2025-08-07 08:06:13 +08:00
Max
c63dfa2112 Add UpdateCollectionMetadata functionality
- Implemented UpdateCollectionMetadata function to handle metadata updates for existing collections.
- Added request structure and validation for updating collection metadata.
- Integrated new endpoint in the router for updating collection metadata via PUT request.
2025-08-07 08:05:19 +08:00
Max
d41ddf464d
Merge pull request #1088 from trheyi/main
Add uploader configuration and default value in Config
2025-08-06 10:08:47 +08:00
Max
d653d2a51d Add uploader configuration and default value in Config
- Introduced Uploader field in the Config struct to allow optional file uploader configuration.
- Implemented logic to set a default uploader value if not explicitly configured during JSON unmarshalling.
2025-08-06 10:08:19 +08:00
Max
a7a8a75b1c
Merge pull request #1087 from trheyi/main
Update collection validation to ignore empty collection name error
2025-08-05 17:27:33 +08:00
Max
1119b99c0d Update collection validation to ignore empty collection name error
- Modified the validation logic in the CreateCollectionRequest to allow the "collection name cannot be empty" error to be ignored during CreateCollectionOptions validation, improving flexibility in request handling.
2025-08-05 16:39:48 +08:00
Max
b4de3f4e5e
Merge pull request #1086 from trheyi/main
Add OpenAPI OAuth handling in defaultGuard
2025-08-05 12:17:00 +08:00
Max
54bf6c1ed2 Add OpenAPI OAuth handling in defaultGuard
- Implemented guardOpenapiOauth function for OAuth token validation and session ID management.
- Enhanced defaultGuard to check for OpenAPI OAuth requests and process them accordingly.
- Added utility functions for access token and session ID retrieval from requests.
2025-08-05 12:16:14 +08:00
Max
dda37b93bd
Merge pull request #1085 from trheyi/main
Add OpenAPI OAuth support in guards
2025-08-05 11:37:47 +08:00
Max
f464638213 Add OpenAPI OAuth support in guards
- Introduced guardOpenapiOauth function to handle OAuth token validation and session ID retrieval.
- Updated guardCookieJWT and guardBearerJWT functions to integrate OpenAPI OAuth checks.
- Enhanced backward compatibility for existing cookie-based JWT handling.
- Added utility functions for access token and session ID extraction from requests.
2025-08-05 11:36:44 +08:00
Max
9e2ec76b11
Merge pull request #1084 from trheyi/main
Enhance hello world endpoints with query string and post payload logging
2025-08-05 09:28:54 +08:00
Max
4a2106371e Enhance hello world endpoints with query string and post payload logging
- Added functionality to capture and return the raw query string and post payload in the JSON response for both public and protected hello world endpoints.
- Improved response structure to include additional context for debugging and client-side processing.
2025-08-05 09:28:25 +08:00
Max
a7ec1d8573
Merge pull request #1083 from trheyi/main
Enhance refresh token functionality and response handling
2025-08-04 16:53:49 +08:00
Max
5657c75201 Enhance refresh token functionality and response handling
- Updated MakeRefreshToken and generateRefreshToken methods to accept an optional expiresIn parameter for customizable token expiration.
- Modified storeRefreshTokenWithScope to handle dynamic expiration times based on the provided parameter.
- Enhanced the authback function to send cookies with access and refresh tokens, including their respective expiration times.
- Updated LoginResponse structure to include RefreshTokenExpiresIn for better client-side management of token lifetimes.
- Adjusted client configuration to set default refresh token expiration duration.
2025-08-04 16:52:57 +08:00
Max
9f6ad4ab17
Merge pull request #1082 from trheyi/main
Add scope field to dynamic client registration tests
2025-08-04 11:20:11 +08:00
Max
c1b28f3b69 Add scope field to dynamic client registration tests
- Updated test cases for dynamic client registration to include a scope field with values "openid profile email".
- Ensured that tests reflect the expected behavior when scope is provided, enhancing validation coverage for client registration requests.
2025-08-04 11:19:45 +08:00
Max
4987a36f26
Merge pull request #1081 from trheyi/main
Update OAuth client configuration and ID generation methods
2025-08-04 11:06:14 +08:00
Max
4682c20903 Update OAuth client configuration and ID generation methods
- Added support for numeric ID generation in the OAuth service, replacing the previous NanoID approach for better compatibility.
- Refactored client ID and secret generation methods to be public and renamed them for consistency.
- Enhanced dynamic client registration to allow optional client ID usage.
- Updated client configuration loading to include validation and registration of clients if not found.
- Improved error handling and logging for client configuration processes.
- Adjusted tests to reflect changes in ID generation and client configuration handling.
2025-08-04 11:04:56 +08:00
Max
d55ecb06d7
Merge pull request #1080 from trheyi/main
Implement ID token signing and user fingerprint management in OAuth
2025-08-03 19:53:05 +08:00
Max
2b7040c834 Implement ID token signing and user fingerprint management in OAuth
- Added `SignIDToken` method to the OAuth service for signing ID tokens with user data and claims.
- Introduced `MakeAccessToken` and `MakeRefreshToken` methods for generating access and refresh tokens.
- Implemented user fingerprint management with `Subject` and `UserID` methods for mapping user IDs to unique NanoIDs.
- Enhanced `LoginByUserID` to generate and return OIDC tokens and access tokens during user login.
- Updated `OIDCUserInfo` mapping to include additional user attributes and improved handling of optional fields.
2025-08-03 19:51:35 +08:00
Max
06f19e0a52
Merge pull request #1079 from trheyi/main
Enhance user management functionality with IP tracking and scope retr…
2025-08-03 18:31:29 +08:00
Max
392b6bee1b Enhance user management functionality with IP tracking and scope retrieval
- Added `last_login_ip` field to the user model to track the IP address of the last login.
- Updated `UpdateUserLastLogin` method to accept an IP address parameter for logging.
- Introduced `GetUserWithScopes` method to retrieve user information along with associated scopes and permissions.
- Modified `LoginThirdParty` and `LoginByUserID` functions to include IP address handling during login processes.
- Improved user provider interface to reflect the new methods and parameters, enhancing overall user management capabilities.
2025-08-03 18:30:34 +08:00
Max
a2c4695a8c
Merge pull request #1078 from trheyi/main
Update model options to include permission field for user-related models
2025-08-03 16:00:04 +08:00
Max
8992cb9130 Update model options to include permission field for user-related models
- Added "permission": true to the option field in user, user_role, user_type, user_oauth_account, and dsl models, enhancing permission management capabilities.
- This change ensures consistency across user-related models and improves the overall functionality of the user management system.
2025-08-03 15:59:14 +08:00
Max
a93e689825
Merge pull request #1077 from trheyi/main
Refactor test data handling for improved isolation and cleanup
2025-08-03 11:17:13 +08:00
Max
757f040fd0 Refactor test data handling for improved isolation and cleanup
- Updated test cases to utilize unique client IDs and user emails with suffixes for better isolation during parallel test execution.
- Enhanced the setupTestData function to generate unique identifiers for test clients and users, preventing conflicts in concurrent test runs.
- Implemented comprehensive cleanup patterns to ensure all test data is removed after execution, improving test reliability and maintainability.
2025-08-03 11:16:46 +08:00
Max
d2d78ccb85
Merge pull request #1076 from trheyi/main
Update test data cleanup to use user_id instead of subject in oauth_t…
2025-08-03 10:35:56 +08:00
Max
1dbcdd47d4 Update test data cleanup to use user_id instead of subject in oauth_test.go
- Modified the cleanupTestData function to query by user_id, ensuring consistency with the updated user provider interface.
- This change enhances the accuracy of test data cleanup and aligns with recent refactoring efforts in user management.
2025-08-03 10:35:28 +08:00
Max
7fbfb58b78
Merge pull request #1075 from trheyi/main
Refactor user provider methods to return string IDs and update test d…
2025-08-03 10:26:17 +08:00
Max
5301023cf2 Refactor user provider methods to return string IDs and update test data handling
- Updated GetUserProvider to return an error alongside the user provider for better error handling.
- Modified CreateUser, CreateRole, and CreateType methods to return user and role IDs as strings instead of interfaces, enhancing type safety.
- Adjusted test data setup in oauth_test.go to reflect changes in user ID handling and ensure compatibility with the updated user provider interface.
- Removed unnecessary nil checks and improved assertions in tests for clarity and reliability.
2025-08-03 10:25:09 +08:00
Max
9c80dad6e1
Merge pull request #1074 from trheyi/main
Refactor provider retrieval and configuration loading for signin module
2025-08-03 08:51:25 +08:00
Max
97f053e41d Refactor provider retrieval and configuration loading for signin module
- Updated GetProvider function to retrieve providers using only the provider ID, removing locale dependency.
- Introduced a global providers map to decouple provider configurations from locale-specific settings.
- Enhanced Load function to prioritize loading provider configurations before signin configurations.
- Added new helper functions for loading providers and signin configurations, improving code organization and maintainability.
- Updated tests to reflect changes in provider handling and ensure proper functionality.
2025-08-03 08:51:03 +08:00
Max
fbd3e29ba1
Merge pull request #1073 from trheyi/main
Add lightweight existence check methods for OAuth accounts, roles, ty…
2025-08-03 07:14:39 +08:00
Max
21c7caed5d Add lightweight existence check methods for OAuth accounts, roles, types, and users
- Implemented methods to check the existence of OAuth accounts, roles, types, and users by their respective identifiers, enhancing the user provider's functionality.
- Added error handling for these methods to ensure robust feedback in case of failures.
- Updated the user provider interface to include the new existence check methods, improving overall usability and maintainability.
2025-08-03 07:14:09 +08:00
Max
1d5de18eb9
Merge pull request #1072 from trheyi/main
Implement MFA functionality in user management
2025-08-02 21:09:21 +08:00
Max
e3e4b1bb77 Implement MFA functionality in user management
- Added Multi-Factor Authentication (MFA) capabilities to the user provider, including methods for generating MFA secrets, enabling/disabling MFA, and verifying MFA codes.
- Introduced MFA configuration options, allowing customization of issuer, algorithm, digits, and recovery codes.
- Enhanced error handling for MFA operations, providing clear feedback for failures.
- Updated user model to include MFA-related fields and improved database interactions for MFA management.
- Refactored existing user provider methods to integrate MFA functionality seamlessly.
2025-08-02 21:08:37 +08:00
Max
7b5777e728
Merge pull request #1071 from trheyi/main
Implement user type and user role management
2025-08-02 19:57:36 +08:00
Max
5c96312eef Implement user type management methods and enhance user provider functionality
- Added methods for creating, retrieving, updating, and deleting user types, improving user type management capabilities.
- Introduced type field lists in DefaultUser and DefaultUserOptions for better type configuration.
- Implemented error handling for user type operations, ensuring robust feedback for failures.
- Enhanced user deletion process to clean up associated data before removing user accounts.
- Updated tests to cover new user type functionalities and ensure proper cleanup of test data.
2025-08-02 19:56:48 +08:00
Max
73846c9b9d Remove obsolete user provider implementation and associated test files
- Deleted the DefaultUser implementation and its related test file, streamlining the codebase by removing unused functionality.
- This cleanup enhances maintainability and focuses on the current user management architecture.
2025-08-02 19:28:43 +08:00
Max
d32b5e4eb6 Enhance user role management functionality and implement role-related methods
- Added role field lists to DefaultUser and DefaultUserOptions for better role configuration.
- Implemented methods for creating, retrieving, updating, and deleting user roles, improving role management capabilities.
- Enhanced error handling for role operations, ensuring robust feedback for failures.
- Introduced ClearUserRole method to remove role assignments from users, streamlining user-role management.
- Updated tests to ensure proper cleanup of role data and maintain a clean testing environment.
2025-08-02 19:27:09 +08:00
Max
1ee0bf9653
Merge pull request #1070 from trheyi/main
Refactor test user model and update subject references in tests
2025-08-02 18:58:49 +08:00
Max
80f10cd7e5 Refactor test user model and update subject references in tests
- Updated the TestUser model to align with the latest user structure, replacing the 'Subject' field with 'UserID' for consistency with the new user provider interface.
- Modified all relevant test cases to use 'UserID' instead of 'Subject' when storing tokens and refresh tokens, ensuring compatibility with the updated user model.
- Enhanced test data setup to reflect changes in user creation and management, improving overall test reliability and clarity.
2025-08-02 18:58:23 +08:00
Max
f965b32a94
Merge pull request #1069 from trheyi/main
Implement OAuth account management methods and enhance user provider …
2025-08-02 18:50:09 +08:00