From 4635929653ed47e9381b9bc2c8a0b39c83556101 Mon Sep 17 00:00:00 2001 From: JJ-Choi1999 <2486595624@qq.com> Date: Thu, 1 May 2025 16:39:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E8=AE=B8=E5=8F=AF=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/configs/app_config.py | 2 ++ api/configs/license/__init__.py | 22 ++++++++++++++++++++++ api/services/feature_service.py | 8 ++++---- 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 api/configs/license/__init__.py diff --git a/api/configs/app_config.py b/api/configs/app_config.py index 3a3ad35ee7..5191c5701e 100644 --- a/api/configs/app_config.py +++ b/api/configs/app_config.py @@ -8,6 +8,7 @@ from .deploy import DeploymentConfig from .enterprise import EnterpriseFeatureConfig from .extra import ExtraServiceConfig from .feature import FeatureConfig +from .license import LicenseConfig from .middleware import MiddlewareConfig from .observability import ObservabilityConfig from .packaging import PackagingInfo @@ -70,6 +71,7 @@ class DifyConfig( # Enterprise feature configs # **Before using, please contact business@dify.ai by email to inquire about licensing matters.** EnterpriseFeatureConfig, + LicenseConfig ): model_config = SettingsConfigDict( # read from dotenv format config file diff --git a/api/configs/license/__init__.py b/api/configs/license/__init__.py new file mode 100644 index 0000000000..6678c45dd6 --- /dev/null +++ b/api/configs/license/__init__.py @@ -0,0 +1,22 @@ +from pydantic import Field +from pydantic_settings import BaseSettings +from enum import StrEnum + +class LicenseStatus(StrEnum): + NONE = "none" + INACTIVE = "inactive" + ACTIVE = "active" + EXPIRING = "expiring" + EXPIRED = "expired" + LOST = "lost" + +class LicenseConfig(BaseSettings): + LICENSE_STATUS: LicenseStatus = Field( + description="license status", + default=LicenseStatus.NONE, + ) + + LICENSE_EXPIRED_AT: str = Field( + description="license expired at", + default="", + ) diff --git a/api/services/feature_service.py b/api/services/feature_service.py index c2226c319f..347b20b268 100644 --- a/api/services/feature_service.py +++ b/api/services/feature_service.py @@ -6,7 +6,6 @@ from configs import dify_config from services.billing_service import BillingService from services.enterprise.enterprise_service import EnterpriseService - class SubscriptionModel(BaseModel): plan: str = "sandbox" interval: str = "" @@ -37,9 +36,10 @@ class LicenseStatus(StrEnum): class LicenseModel(BaseModel): - status: LicenseStatus = LicenseStatus.NONE - expired_at: str = "" - + # status: LicenseStatus = LicenseStatus.NONE + # expired_at: str = "" + status: LicenseStatus = dify_config.LICENSE_STATUS + expired_at: str = dify_config.LICENSE_EXPIRED_AT class FeatureModel(BaseModel): billing: BillingModel = BillingModel()