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()