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 -->
This commit is contained in:
forehalo
2025-05-09 04:16:05 +00:00
parent 3db91bdc8e
commit 93e01b4442
34 changed files with 718 additions and 187 deletions

View File

@@ -8441,9 +8441,11 @@ export function useAFFiNEI18N(): {
*/
["error.LICENSE_NOT_FOUND"](): string;
/**
* `Invalid license to activate.`
* `Invalid license to activate. {{reason}}`
*/
["error.INVALID_LICENSE_TO_ACTIVATE"](): string;
["error.INVALID_LICENSE_TO_ACTIVATE"](options: {
readonly reason: string;
}): string;
/**
* `Invalid license update params. {{reason}}`
*/
@@ -8451,11 +8453,9 @@ export function useAFFiNEI18N(): {
readonly reason: string;
}): string;
/**
* `You cannot downgrade the workspace from team workspace because there are more than {{limit}} members that are currently active.`
* `License has expired.`
*/
["error.WORKSPACE_MEMBERS_EXCEED_LIMIT_TO_DOWNGRADE"](options: {
readonly limit: string;
}): string;
["error.LICENSE_EXPIRED"](): string;
/**
* `Unsupported client with version [{{clientVersion}}], required version is [{{requiredVersion}}].`
*/

View File

@@ -2087,9 +2087,9 @@
"error.LICENSE_REVEALED": "License key has been revealed. Please check your mail box of the one provided during checkout.",
"error.WORKSPACE_LICENSE_ALREADY_EXISTS": "Workspace already has a license applied.",
"error.LICENSE_NOT_FOUND": "License not found.",
"error.INVALID_LICENSE_TO_ACTIVATE": "Invalid license to activate.",
"error.INVALID_LICENSE_TO_ACTIVATE": "Invalid license to activate. {{reason}}",
"error.INVALID_LICENSE_UPDATE_PARAMS": "Invalid license update params. {{reason}}",
"error.WORKSPACE_MEMBERS_EXCEED_LIMIT_TO_DOWNGRADE": "You cannot downgrade the workspace from team workspace because there are more than {{limit}} members that are currently active.",
"error.LICENSE_EXPIRED": "License has expired.",
"error.UNSUPPORTED_CLIENT_VERSION": "Unsupported client with version [{{clientVersion}}], required version is [{{requiredVersion}}].",
"error.NOTIFICATION_NOT_FOUND": "Notification not found.",
"error.MENTION_USER_DOC_ACCESS_DENIED": "Mentioned user can not access doc {{docId}}.",