Remove the functions related to beta configuration, including deleting the BetaConfigWorkspaceApi class, the beta_config field and its related logic, and simplifying the workspace API and model.

pull/20352/head
dongfubao 11 months ago
parent cc89df84cc
commit c3cb75b8be

@ -48,7 +48,6 @@ tenant_fields = {
"in_trial": fields.Boolean, "in_trial": fields.Boolean,
"trial_end_reason": fields.String, "trial_end_reason": fields.String,
"custom_config": fields.Raw(attribute="custom_config"), "custom_config": fields.Raw(attribute="custom_config"),
"beta_config": fields.Raw(attribute="beta_config"),
} }
tenants_fields = { tenants_fields = {
@ -177,32 +176,6 @@ class CustomConfigWorkspaceApi(Resource):
return {"result": "success", "tenant": marshal(WorkspaceService.get_tenant_info(tenant), tenant_fields)} return {"result": "success", "tenant": marshal(WorkspaceService.get_tenant_info(tenant), tenant_fields)}
class BetaConfigWorkspaceApi(Resource):
@setup_required
@login_required
@account_initialization_required
def post(self):
parser = reqparse.RequestParser()
parser.add_argument("beta_config", type=dict, location="json")
args = parser.parse_args()
tenant = db.get_or_404(Tenant, current_user.current_tenant_id)
db_config = tenant.beta_config_dict
param_config = args["beta_config"] or {}
if not db_config:
tenant.beta_config_dict = param_config
else:
merged_config = {**db_config, **param_config}
tenant.beta_config_dict = merged_config
db.session.commit()
return {"result": "success", "tenant": marshal(WorkspaceService.get_tenant_info(tenant), tenant_fields)}
class WebappLogoWorkspaceApi(Resource): class WebappLogoWorkspaceApi(Resource):
@setup_required @setup_required
@login_required @login_required
@ -265,6 +238,5 @@ api.add_resource(TenantApi, "/workspaces/current", endpoint="workspaces_current"
api.add_resource(TenantApi, "/info", endpoint="info") # Deprecated api.add_resource(TenantApi, "/info", endpoint="info") # Deprecated
api.add_resource(SwitchWorkspaceApi, "/workspaces/switch") # POST for switching tenant api.add_resource(SwitchWorkspaceApi, "/workspaces/switch") # POST for switching tenant
api.add_resource(CustomConfigWorkspaceApi, "/workspaces/custom-config") api.add_resource(CustomConfigWorkspaceApi, "/workspaces/custom-config")
api.add_resource(BetaConfigWorkspaceApi, "/workspaces/beta-config")
api.add_resource(WebappLogoWorkspaceApi, "/workspaces/custom-config/webapp-logo/upload") api.add_resource(WebappLogoWorkspaceApi, "/workspaces/custom-config/webapp-logo/upload")
api.add_resource(WorkspaceInfoApi, "/workspaces/info") # POST for changing workspace info api.add_resource(WorkspaceInfoApi, "/workspaces/info") # POST for changing workspace info

@ -199,7 +199,6 @@ class Tenant(Base):
plan = db.Column(db.String(255), nullable=False, server_default=db.text("'basic'::character varying")) plan = db.Column(db.String(255), nullable=False, server_default=db.text("'basic'::character varying"))
status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying")) status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying"))
custom_config = db.Column(db.Text) custom_config = db.Column(db.Text)
beta_config = db.Column(db.Text)
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
@ -218,14 +217,6 @@ class Tenant(Base):
def custom_config_dict(self, value: dict): def custom_config_dict(self, value: dict):
self.custom_config = json.dumps(value) self.custom_config = json.dumps(value)
@property
def beta_config_dict(self) -> dict:
return json.loads(self.beta_config) if self.beta_config else {}
@beta_config_dict.setter
def beta_config_dict(self, value: dict):
self.beta_config = json.dumps(value)
class TenantAccountJoin(Base): class TenantAccountJoin(Base):
__tablename__ = "tenant_account_joins" __tablename__ = "tenant_account_joins"

@ -20,7 +20,6 @@ class WorkspaceService:
"created_at": tenant.created_at, "created_at": tenant.created_at,
"trial_end_reason": None, "trial_end_reason": None,
"role": "normal", "role": "normal",
"beta_config": tenant.beta_config_dict,
} }
# Get role of user # Get role of user

@ -1,45 +0,0 @@
import { useTranslation } from 'react-i18next'
import Switch from '@/app/components/base/switch'
import {
updateCurrentWorkspace,
} from '@/service/common'
import { useAppContext } from '@/context/app-context'
const BetaPage = () => {
const { t } = useTranslation()
const {
currentWorkspace,
mutateCurrentWorkspace,
} = useAppContext()
const workflowVarCheck = currentWorkspace.beta_config?.workflow_var_check
const handleSwitch = async (checked: boolean) => {
await updateCurrentWorkspace({
url: '/workspaces/beta-config',
body: {
beta_config: {
workflow_var_check: checked,
},
},
})
mutateCurrentWorkspace()
}
return (
<div className='py-4'>
<div className='system-md-medium mb-2 flex items-center justify-between rounded-xl bg-background-section-burn p-4 text-text-primary'>
<div>
<div className='system-md-medium text-text-primary'>{t('common.beta.workflowVarCheck')}</div>
<div className='system-xs-regular text-text-tertiary'>{t('common.beta.workflowVarCheckTip')}</div>
</div>
<Switch
size='l'
defaultValue={workflowVarCheck}
onChange={handleSwitch}
/>
</div>
</div>
)
}
export default BetaPage

@ -15,8 +15,6 @@ import {
RiMoneyDollarCircleLine, RiMoneyDollarCircleLine,
RiPuzzle2Fill, RiPuzzle2Fill,
RiPuzzle2Line, RiPuzzle2Line,
RiTestTubeFill,
RiTestTubeLine,
RiTranslate2, RiTranslate2,
} from '@remixicon/react' } from '@remixicon/react'
import Button from '../../base/button' import Button from '../../base/button'
@ -33,7 +31,6 @@ import { useProviderContext } from '@/context/provider-context'
import { useAppContext } from '@/context/app-context' import { useAppContext } from '@/context/app-context'
import MenuDialog from '@/app/components/header/account-setting/menu-dialog' import MenuDialog from '@/app/components/header/account-setting/menu-dialog'
import Input from '@/app/components/base/input' import Input from '@/app/components/base/input'
import BatePage from './beta-page'
const iconClassName = ` const iconClassName = `
w-5 h-5 mr-2 w-5 h-5 mr-2
@ -59,7 +56,7 @@ export default function AccountSetting({
const [activeMenu, setActiveMenu] = useState(activeTab) const [activeMenu, setActiveMenu] = useState(activeTab)
const { t } = useTranslation() const { t } = useTranslation()
const { enableBilling, enableReplaceWebAppLogo } = useProviderContext() const { enableBilling, enableReplaceWebAppLogo } = useProviderContext()
const { isCurrentWorkspaceDatasetOperator, currentWorkspace } = useAppContext() const { isCurrentWorkspaceDatasetOperator } = useAppContext()
const workplaceGroupItems = (() => { const workplaceGroupItems = (() => {
if (isCurrentWorkspaceDatasetOperator) if (isCurrentWorkspaceDatasetOperator)
return [] return []
@ -102,12 +99,6 @@ export default function AccountSetting({
icon: <RiColorFilterLine className={iconClassName} />, icon: <RiColorFilterLine className={iconClassName} />,
activeIcon: <RiColorFilterFill className={iconClassName} />, activeIcon: <RiColorFilterFill className={iconClassName} />,
}, },
{
key: currentWorkspace.role === 'owner' ? 'beta' : false,
name: t('common.beta.beta'),
icon: <RiTestTubeLine className={iconClassName} />,
activeIcon: <RiTestTubeFill className={iconClassName} />,
},
].filter(item => !!item.key) as GroupItem[] ].filter(item => !!item.key) as GroupItem[]
})() })()
@ -228,7 +219,6 @@ export default function AccountSetting({
{activeMenu === 'api-based-extension' && <ApiBasedExtensionPage />} {activeMenu === 'api-based-extension' && <ApiBasedExtensionPage />}
{activeMenu === 'custom' && <CustomPage />} {activeMenu === 'custom' && <CustomPage />}
{activeMenu === 'language' && <LanguagePage />} {activeMenu === 'language' && <LanguagePage />}
{activeMenu === 'beta' && <BatePage />}
</div> </div>
</div> </div>
</div> </div>

@ -34,7 +34,6 @@ import { useDatasetsDetailStore } from '../datasets-detail-store/store'
import type { KnowledgeRetrievalNodeType } from '../nodes/knowledge-retrieval/types' import type { KnowledgeRetrievalNodeType } from '../nodes/knowledge-retrieval/types'
import type { DataSet } from '@/models/datasets' import type { DataSet } from '@/models/datasets'
import { fetchDatasets } from '@/service/datasets' import { fetchDatasets } from '@/service/datasets'
import { useAppContext } from '@/context/app-context'
export const useChecklist = (nodes: Node[], edges: Edge[]) => { export const useChecklist = (nodes: Node[], edges: Edge[]) => {
const { t } = useTranslation() const { t } = useTranslation()
@ -46,7 +45,6 @@ export const useChecklist = (nodes: Node[], edges: Edge[]) => {
const workflowTools = useStore(s => s.workflowTools) const workflowTools = useStore(s => s.workflowTools)
const { data: strategyProviders } = useStrategyProviders() const { data: strategyProviders } = useStrategyProviders()
const datasetsDetail = useDatasetsDetailStore(s => s.datasetsDetail) const datasetsDetail = useDatasetsDetailStore(s => s.datasetsDetail)
const { currentWorkspace } = useAppContext()
const chatVarList = useStore(s => s.conversationVariables) const chatVarList = useStore(s => s.conversationVariables)
const environmentVariables = useStore(s => s.environmentVariables) const environmentVariables = useStore(s => s.environmentVariables)
@ -74,7 +72,6 @@ export const useChecklist = (nodes: Node[], edges: Edge[]) => {
const allVariablesMap = transformStartNodeVariables(chatVarList, environmentVariables) const allVariablesMap = transformStartNodeVariables(chatVarList, environmentVariables)
const errMessageMap = new Map() const errMessageMap = new Map()
const workflowVarCheck = currentWorkspace.beta_config?.workflow_var_check
for (let i = 0; i < nodes.length; i++) { for (let i = 0; i < nodes.length; i++) {
const node = nodes[i] const node = nodes[i]
@ -123,7 +120,7 @@ export const useChecklist = (nodes: Node[], edges: Edge[]) => {
varErrorMessage: [], varErrorMessage: [],
}) })
} }
if (workflowVarCheck && nodesExtraData[node.data.type as BlockEnum].checkVarValid) { if (nodesExtraData[node.data.type as BlockEnum].checkVarValid) {
const { errorMessage: varErrorMessages } = nodesExtraData[node.data.type as BlockEnum].checkVarValid(node.data, { ...allVariablesMap, ...node._parentOutputVarMap }, t) const { errorMessage: varErrorMessages } = nodesExtraData[node.data.type as BlockEnum].checkVarValid(node.data, { ...allVariablesMap, ...node._parentOutputVarMap }, t)
if (varErrorMessages?.length) { if (varErrorMessages?.length) {
@ -180,7 +177,6 @@ export const useChecklist = (nodes: Node[], edges: Edge[]) => {
export const useChecklistBeforePublish = () => { export const useChecklistBeforePublish = () => {
const { t } = useTranslation() const { t } = useTranslation()
const language = useGetLanguage() const language = useGetLanguage()
const { currentWorkspace } = useAppContext()
const buildInTools = useStore(s => s.buildInTools) const buildInTools = useStore(s => s.buildInTools)
const customTools = useStore(s => s.customTools) const customTools = useStore(s => s.customTools)
const workflowTools = useStore(s => s.workflowTools) const workflowTools = useStore(s => s.workflowTools)
@ -233,7 +229,6 @@ export const useChecklistBeforePublish = () => {
} }
const allVariablesMap = transformStartNodeVariables(chatVarList, environmentVariables) const allVariablesMap = transformStartNodeVariables(chatVarList, environmentVariables)
const workflowVarCheck = currentWorkspace.beta_config?.workflow_var_check
// Before publish, we need to fetch datasets detail, in case of the settings of datasets have been changed // Before publish, we need to fetch datasets detail, in case of the settings of datasets have been changed
const knowledgeRetrievalNodes = nodes.filter(node => node.data.type === BlockEnum.KnowledgeRetrieval) const knowledgeRetrievalNodes = nodes.filter(node => node.data.type === BlockEnum.KnowledgeRetrieval)
@ -286,7 +281,7 @@ export const useChecklistBeforePublish = () => {
return false return false
} }
if (workflowVarCheck && nodesExtraData[node.data.type as BlockEnum].checkVarValid) { if (nodesExtraData[node.data.type as BlockEnum].checkVarValid) {
const { errorMessage: varErrorMessage } = nodesExtraData[node.data.type as BlockEnum].checkVarValid(node.data, { ...allVariablesMap, ...node._parentOutputVarMap }, t) const { errorMessage: varErrorMessage } = nodesExtraData[node.data.type as BlockEnum].checkVarValid(node.data, { ...allVariablesMap, ...node._parentOutputVarMap }, t)
if (varErrorMessage?.length) { if (varErrorMessage?.length) {
notify({ type: 'error', message: `[${node.data.title}] ${varErrorMessage[0]}` }) notify({ type: 'error', message: `[${node.data.title}] ${varErrorMessage[0]}` })

@ -135,9 +135,6 @@ export type ICurrentWorkspace = Omit<IWorkspace, 'current'> & {
remove_webapp_brand?: boolean remove_webapp_brand?: boolean
replace_webapp_logo?: string replace_webapp_logo?: string
}, },
beta_config?: {
workflow_var_check?: boolean
}
} }
export type DataSourceNotionPage = { export type DataSourceNotionPage = {

Loading…
Cancel
Save