Commit Graph

133 Commits

Author SHA1 Message Date
EYHN c1691157f9 feat(core): enable socket cors (#12823)
fix android & ios selfhost syncing

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Improved WebSocket connection compatibility by enabling cross-origin
requests with credentials and restricting allowed HTTP methods to GET
and POST.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: fengmk2 <fengmk2@gmail.com>
2025-06-17 09:40:08 +08:00
forehalo 3c3a8bb107 feat(server): time duration helper (#12562)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Introduced support for parsing and converting duration strings (e.g., "1h30m") into milliseconds and seconds.
  - Added utility methods to handle a wide range of time units and their combinations.
  - Added functions to calculate dates offset before or after a given date by specified durations.
- **Tests**
  - Implemented comprehensive automated tests to ensure accurate parsing and conversion of duration strings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-30 03:21:31 +00:00
fengmk2 31a1841e25 chore(server): log removed job id (#12646)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Chores**
	- Improved log messages to include job IDs when jobs are removed from the queue, enhancing traceability for users monitoring job activity.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-29 11:48:16 +00:00
fengmk2 9e5d132bd0 chore(server): log job start and finish (#12610)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Refactor**
  - Improved visibility of job start and finish events by updating logging level, making these events more prominent in logs.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-28 09:51:37 +00:00
fengmk2 9abbfa3ab4 chore(server): print jobId (#12593)
Need to query the payload through job id for debugging

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Tests**
  - Updated job metrics test to include an explicit job ID during execution.

- **Refactor**
  - Enhanced job execution to support an optional job ID, improving job tracking and logging.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-28 08:48:38 +00:00
darkskygit 9220b973c7 feat(server): increase embedding jobs concurrency & handle empty content after trim (#12574)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Improvements**
  - Increased the default concurrency for background tasks, enhancing processing efficiency.
  - Improved handling of empty or unsupported documents to ensure consistent processing.
  - Optimized document filtering to exclude certain documents from processing, improving performance.

- **Bug Fixes**
  - Enhanced detection of empty document summaries, reducing errors during processing.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-27 14:28:34 +00:00
forehalo dc7cd0487b refactor(server): decrypt license with provided aes key (#12570)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Added support for a new AES key for license management, improving license encryption and decryption processes.

- **Bug Fixes**
  - Improved error messages and handling when activating expired or invalid licenses.

- **Refactor**
  - Updated license decryption logic to use a fixed AES key instead of deriving one from the workspace ID.
  - Added validation for environment variable values to prevent invalid configurations.

- **Tests**
  - Enhanced license-related tests to cover new key usage and updated error messages.
  - Updated environment variable validation tests with clearer error messages.

- **Chores**
  - Updated environment variable handling for improved consistency.
  - Set production environment variable explicitly in build configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-27 11:54:28 +00:00
forehalo 2f139bd02c chore(admin): remove useless config diff (#12545)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Added a GraphQL mutation to validate multiple app configuration updates, returning detailed validation results for each item.
  - Extended the API schema to support validation feedback, enabling client-side checks before applying changes.
  - Introduced a detailed, parameterized error message system for configuration validation errors.
  - Enabled validation of configuration inputs via the admin UI with clear, descriptive error messages.

- **Improvements**
  - Enhanced error reporting with specific, context-rich messages for invalid app configurations.
  - Simplified admin settings UI by removing the confirmation dialog and streamlining save actions.
  - Improved clarity and maintainability of validation logic and error handling components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-27 06:07:26 +00:00
fengmk2 e3d63896bf chore(server): add job backoff strategies (#12499)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Implemented an exponential backoff retry strategy for job queues, resulting in progressively longer wait times between retry attempts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-26 02:33:58 +00:00
liuyi 41781902f6 feat(core): support apple sign in (#12424) 2025-05-23 15:27:27 +08:00
forehalo f38b8fef4d feat(server): handle account deleting properly (#12399)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Users are now prevented from deleting their account if they own one or more team workspaces. A clear error message instructs users to transfer ownership or delete those workspaces first.
  - Disabled (banned) users are explicitly prevented from signing in or re-registering.
  - Added new error messages and translations to improve clarity around account deletion restrictions.

- **Bug Fixes**
  - Disabled users are now explicitly handled to prevent sign-in attempts.

- **Tests**
  - Introduced comprehensive end-to-end tests covering account deletion, banning, and re-registration scenarios.

- **Chores**
  - Improved event handling for user deletion and subscription cancellation.
  - Updated localization resources with new error messages.
  - Renamed payment event handler class for clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-23 03:57:29 +00:00
darkskygit b388f92c96 feat(server): refactor provider interface (#11665)
fix AI-4
fix AI-18

better provider/model choose to allow fallback to similar models (e.g., self-hosted) when the provider is not fully configured
split functions of different output types
2025-05-22 06:28:20 +00:00
darkskygit 6f9361caee feat(server): trigger workspace embedding (#12328)
fix AI-127

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Added automated event handling for workspace updates and document embedding, streamlining document embedding workflows.
  - Introduced detection and queuing of documents needing embedding, excluding ignored documents.
- **Improvements**
  - Enhanced performance of embedding-related searches by filtering results at the database level.
  - Increased concurrency for embedding job processing to improve throughput.
- **Bug Fixes**
  - Improved error handling and fallback for missing document titles during embedding.
  - Added safeguards to skip invalid embedding jobs based on document identifiers.
- **Tests**
  - Expanded test coverage for document embedding and ignored document filtering.
  - Updated end-to-end tests to use dynamic content for improved reliability.
  - Added synchronization waits in document creation utilities to improve test stability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-20 05:16:45 +00:00
fengmk2 a34c3ea200 feat(server): auto index all workspaces to indexer (#12205)
close CLOUD-207

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Introduced automated periodic indexing of workspaces with a new job type and a scheduled cron job running every 30 seconds.
  - Added a unique sequential identifier (`sid`) and an "indexed" flag to workspaces to track indexing status.
- **Improvements**
  - Enhanced workspace indexing to handle missing workspaces and snapshots distinctly and selectively index documents.
  - Added ability to query workspaces after a given identifier with result limits.
- **Bug Fixes**
  - Improved error handling and logging during workspace indexing operations.
- **Tests**
  - Expanded test coverage for workspace indexing and auto-indexing, including scheduling and edge cases.
- **Chores**
  - Updated data models and schema to support new workspace fields and indexing features.
  - Enhanced mock data utilities to allow custom timestamps.
  - Improved type safety and flexibility in document snapshot retrieval.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-19 04:39:38 +00:00
fengmk2 afa984da54 feat(server): handle workspace doc updates (#11937) 2025-05-14 14:52:41 +00:00
fengmk2 a1bcf77447 feat(server): add cloud indexer with Elasticsearch and Manticoresearch providers (#11835)
close CLOUD-137

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Introduced advanced workspace-scoped search and aggregation capabilities with support for complex queries, highlights, and pagination.
  - Added pluggable search providers: Elasticsearch and Manticoresearch.
  - New GraphQL queries, schema types, and resolver support for search and aggregation.
  - Enhanced configuration options for search providers in self-hosted and cloud deployments.
  - Added Docker Compose services and environment variables for Elasticsearch and Manticoresearch.
  - Integrated indexer service into deployment and CI workflows.

- **Bug Fixes**
  - Improved error handling with new user-friendly error messages for search provider and indexer issues.

- **Documentation**
  - Updated configuration examples and environment variable references for indexer and search providers.

- **Tests**
  - Added extensive end-to-end and provider-specific tests covering indexing, searching, aggregation, deletion, and error cases.
  - Included snapshot tests and test fixtures for search providers.

- **Chores**
  - Updated deployment scripts, Helm charts, and Kubernetes manifests to include indexer-related environment variables and secrets.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-14 14:52:41 +00:00
darkskygit cecf545590 feat(server): improve context metadata & matching (#12064)
fix AI-20

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Enhanced file metadata with MIME type, blob ID, and file name across context and workspace, now visible in UI and API.
  - Added workspace-level matching for files and documents with configurable thresholds and workspace scoping in search queries.
  - Introduced a new error type and user-friendly messaging for global workspace context matching failures.

- **Bug Fixes**
  - Improved consistent handling of file MIME types and nullable context IDs for accurate metadata.

- **Documentation**
  - Updated GraphQL schema, queries, and mutations to include new metadata fields, optional parameters, and error types.

- **Style**
  - Added new localization strings for global context matching error messages.

- **Tests**
  - Extended test coverage with new and updated snapshot tests for metadata and matching logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-14 06:32:29 +00:00
forehalo 93e01b4442 feat(server): support installable license (#12181)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Added support for installing self-hosted team licenses via encrypted license files.
  - Introduced a new "Onetime" license variant for self-hosted environments.
  - Added a GraphQL mutation to upload and install license files.
  - License details now display the license variant.

- **Bug Fixes**
  - Improved error messages for license activation and expiration, including dynamic reasons.

- **Localization**
  - Updated and improved license-related error messages for better clarity.

- **Tests**
  - Added comprehensive end-to-end tests for license installation scenarios.

- **Chores**
  - Enhanced environment variable handling and public key management for license verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-09 04:16:05 +00:00
fengmk2 8940151ffe chore(server): dont use default export on @prisma/instrumentation (#12148)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Chores**
  - Updated a backend dependency to the latest version to ensure continued compatibility and improvements. No user-facing changes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-06 10:21:35 +00:00
liuyi 2e1bed061e feat(server): delay subscription after invitation accepted or approved (#11992) 2025-04-30 14:27:47 +08:00
forehalo c831a2ab2f chore(server): ignore unknown config module (#11926) 2025-04-23 15:07:47 +00:00
fengmk2 ff133d1267 refactor(server): reduce server logs (#11931)
close CLOUD-201
2025-04-23 11:41:48 +00:00
darkskygit 5397fba897 feat(server): global embedding gql endpoint (#11809)
fix AI-30
fix AI-31
fix PD-2487
2025-04-23 11:25:41 +00:00
L-Sun a9ad01491c test(core): enable no-floating-promises rule for tests (#11915)
Sometimes, missing `await` in the test code can cause timing issues, leading to test failures. This PR enables the `no-floating-promises` rule for the test code to ensure that such errors do not occur.
2025-04-23 08:17:41 +00:00
forehalo f918573ba8 fix(server): config defaults (#11879) 2025-04-22 04:26:28 +00:00
darkskygit 570dc79e3d feat(server): stop embedding in doc embedding disabled workspace (#11761)
fix AI-33
2025-04-17 09:57:33 +00:00
forehalo 7257f1b55b chore(server): remove enable flag in mail config (#11680)
close #11625
2025-04-15 09:18:10 +00:00
forehalo 8e1cbc4c5b test(server): do not consume job in test (#11592) 2025-04-10 07:02:07 +00:00
darkskygit 15abb78a6b feat(server): support sliced audio (#11562)
fix AF-2479
2025-04-09 08:21:19 +00:00
liuyi 646182ea2a fix(server): duplicate registered otel providers (#11513) 2025-04-08 10:25:36 +08:00
forehalo 2533a92873 chore(server): avoid config object been modified (#11452) 2025-04-03 12:57:29 +00:00
forehalo 6939e80827 chore(server): never reuse cls id for job handler (#11449) 2025-04-03 12:26:02 +00:00
darkskygit 0f18585631 chore(server): update sign domain description (#11407) 2025-04-02 12:58:03 +00:00
darkskygit 501b5f6a97 feat(server): retry transcript job (#11414) 2025-04-02 12:02:07 +00:00
forehalo 35bea20b80 chore(server): adjust job config (#11405) 2025-04-02 09:48:46 +00:00
forehalo 85d176ce6f chore(server): customize config merge logic (#11400) 2025-04-02 09:48:45 +00:00
fengmk2 432634c5a3 feat(server): enable job queue log (#11390) 2025-04-02 09:34:13 +00:00
fengmk2 e125b2a7c0 fix(server): should use error instance stack (#11392) 2025-04-02 07:12:18 +00:00
darkskygit add4a5859d fix(server): handle s3 notfound error (#11386) 2025-04-02 04:20:06 +00:00
darkskygit f2e2072878 feat(server): s3 presigned url (#11364) 2025-04-01 15:14:07 +00:00
forehalo dad858014f feat(admin): adapt new config system (#11360)
feat(server): add test mail api

feat(admin): adapt new config system
2025-04-01 15:00:10 +00:00
forehalo 6276732efc chore(server): reschedule doc merging jobs (#11318) 2025-04-01 10:57:54 +00:00
forehalo 64c7fb1d66 chore(server): validate function not actually used (#11263) 2025-03-28 12:51:19 +00:00
liuyi e22f66f1cc fix(server): auto import config.json (#11255) 2025-03-28 06:12:56 +00:00
fengmk2 bfa7e9a007 ci: install @types/affine__env on server build (#11252) 2025-03-28 05:01:47 +00:00
forehalo 0ea38680fa refactor(server): config system (#11081) 2025-03-27 12:32:28 +00:00
fengmk2 d7b3dc683b feat(server): send invitation notification (#10219)
close PD-2307 CLOUD-150
2025-03-24 02:27:23 +00:00
darkskygit 5acba9d5a0 feat(server): adapt context model (#11028)
expose more field in listContextObject
2025-03-21 05:36:45 +00:00
fengmk2 55a60906a5 test(server): add MockJobQueue (#11032) 2025-03-21 04:08:29 +00:00
darkskygit c16ae2d5b4 feat(server): audio transcription (#10733) 2025-03-20 07:12:27 +00:00