Team Ai
Apppublic

Underground-Digital/Workflow-Engine

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
init_validate.py51 linesDownload Raw Back to console
1import os2 3from flask import session4from flask_restful import Resource, reqparse5 6from configs import dify_config7from libs.helper import StrLen8from models.model import DifySetup9from services.account_service import TenantService10 11from . import api12from .error import AlreadySetupError, InitValidateFailedError13from .wraps import only_edition_self_hosted14 15 16class InitValidateAPI(Resource):17    def get(self):18        init_status = get_init_validate_status()19        if init_status:20            return {"status": "finished"}21        return {"status": "not_started"}22 23    @only_edition_self_hosted24    def post(self):25        # is tenant created26        tenant_count = TenantService.get_tenant_count()27        if tenant_count > 0:28            raise AlreadySetupError()29 30        parser = reqparse.RequestParser()31        parser.add_argument("password", type=StrLen(30), required=True, location="json")32        input_password = parser.parse_args()["password"]33 34        if input_password != os.environ.get("INIT_PASSWORD"):35            session["is_init_validated"] = False36            raise InitValidateFailedError()37 38        session["is_init_validated"] = True39        return {"result": "success"}, 20140 41 42def get_init_validate_status():43    if dify_config.EDITION == "SELF_HOSTED":44        if os.environ.get("INIT_PASSWORD"):45            return session.get("is_init_validated") or DifySetup.query.first()46 47    return True48 49 50api.add_resource(InitValidateAPI, "/init")51