Commit bf33f7af by Archer Committed by GitHub

add templateId to apps (#5866)

* fix: timeselector ui error

* var update node

* add templateId to apps
parent 45869fa0
...@@ -29,6 +29,7 @@ export type AppSchema = { ...@@ -29,6 +29,7 @@ export type AppSchema = {
name: string; name: string;
avatar: string; avatar: string;
intro: string; intro: string;
templateId?: string; // Create by template
updateTime: Date; updateTime: Date;
...@@ -46,16 +47,18 @@ export type AppSchema = { ...@@ -46,16 +47,18 @@ export type AppSchema = {
scheduledTriggerConfig?: AppScheduledTriggerConfigType | null; scheduledTriggerConfig?: AppScheduledTriggerConfigType | null;
scheduledTriggerNextTime?: Date; scheduledTriggerNextTime?: Date;
inited?: boolean;
teamTags: string[];
inheritPermission?: boolean; inheritPermission?: boolean;
// if access the app by favourite or quick // if access the app by favourite or quick
favourite?: boolean; favourite?: boolean;
quick?: boolean; quick?: boolean;
// abandon /** @deprecated */
defaultPermission?: number; defaultPermission?: number;
/** @deprecated */
inited?: boolean;
/** @deprecated */
teamTags: string[];
}; };
export type AppListItemType = { export type AppListItemType = {
......
...@@ -8,11 +8,12 @@ export type UsageSchemaType = { ...@@ -8,11 +8,12 @@ export type UsageSchemaType = {
teamId: string; teamId: string;
tmbId: string; tmbId: string;
appName: string; appName: string;
appId?: string;
pluginId?: string;
totalPoints: number; totalPoints: number;
source: `${UsageSourceEnum}`; source: `${UsageSourceEnum}`;
appId?: string;
datasetId?: string;
// @deprecated // @deprecated
list?: UsageItemType[]; list?: UsageItemType[];
}; };
......
...@@ -60,18 +60,14 @@ const AppSchema = new Schema( ...@@ -60,18 +60,14 @@ const AppSchema = new Schema(
type: String, type: String,
default: '' default: ''
}, },
templateId: String,
updateTime: { updateTime: {
type: Date, type: Date,
default: () => new Date() default: () => new Date()
}, },
// role and auth // Workflow data
teamTags: {
type: [String]
},
// save app(Not publish)
modules: { modules: {
type: Array, type: Array,
default: [] default: []
...@@ -83,7 +79,8 @@ const AppSchema = new Schema( ...@@ -83,7 +79,8 @@ const AppSchema = new Schema(
chatConfig: { chatConfig: {
type: chatConfigType type: chatConfigType
}, },
// plugin config
// Tool config
pluginData: { pluginData: {
type: { type: {
nodeVersion: String, nodeVersion: String,
...@@ -108,19 +105,21 @@ const AppSchema = new Schema( ...@@ -108,19 +105,21 @@ const AppSchema = new Schema(
type: Date type: Date
}, },
inited: {
type: Boolean
},
inheritPermission: { inheritPermission: {
type: Boolean, type: Boolean,
default: true default: true
}, },
// Chat setting
favourite: Boolean, favourite: Boolean,
quick: Boolean, quick: Boolean,
// abandoned /** @deprecated */
defaultPermission: Number defaultPermission: Number,
inited: Boolean,
teamTags: {
type: [String]
}
}, },
{ {
minimize: false minimize: false
......
...@@ -7,6 +7,8 @@ import { ...@@ -7,6 +7,8 @@ import {
TeamMemberCollectionName TeamMemberCollectionName
} from '@fastgpt/global/support/user/team/constant'; } from '@fastgpt/global/support/user/team/constant';
import { UsageCollectionName, UsageItemCollectionName } from './constants'; import { UsageCollectionName, UsageItemCollectionName } from './constants';
import { AppCollectionName } from '../../../core/app/schema';
import { DatasetCollectionName } from '../../../core/dataset/schema';
const UsageSchema = new Schema( const UsageSchema = new Schema(
{ {
...@@ -25,29 +27,28 @@ const UsageSchema = new Schema( ...@@ -25,29 +27,28 @@ const UsageSchema = new Schema(
enum: Object.values(UsageSourceEnum), enum: Object.values(UsageSourceEnum),
required: true required: true
}, },
appName: {
// usage name // usage name
appName: {
type: String, type: String,
default: '' default: ''
}, },
totalPoints: {
// total points // total points
totalPoints: {
type: Number, type: Number,
required: true required: true
}, },
time: {
type: Date,
default: () => new Date()
},
appId: { appId: {
type: Schema.Types.ObjectId, type: Schema.Types.ObjectId,
ref: 'apps', ref: AppCollectionName
required: false
}, },
pluginId: { datasetId: {
type: Schema.Types.ObjectId, type: Schema.Types.ObjectId,
ref: 'plugins', ref: DatasetCollectionName
required: false
},
time: {
type: Date,
default: () => new Date()
}, },
// @description It will not be used again in the future. // @description It will not be used again in the future.
......
...@@ -484,7 +484,7 @@ const RenderList = React.memo(function RenderList({ ...@@ -484,7 +484,7 @@ const RenderList = React.memo(function RenderList({
_hover={{ _hover={{
color: 'primary.600' color: 'primary.600'
}} }}
onClick={() => router.push('/toolkit/tools')} onClick={() => router.push('/plugin/tool')}
gap={1} gap={1}
bottom={0} bottom={0}
right={[3, 6]} right={[3, 6]}
......
...@@ -39,11 +39,14 @@ export type CreateAppBody = { ...@@ -39,11 +39,14 @@ export type CreateAppBody = {
modules: AppSchema['modules']; modules: AppSchema['modules'];
edges?: AppSchema['edges']; edges?: AppSchema['edges'];
chatConfig?: AppSchema['chatConfig']; chatConfig?: AppSchema['chatConfig'];
templateId?: string;
utmParams?: ShortUrlParams; utmParams?: ShortUrlParams;
}; };
async function handler(req: ApiRequestProps<CreateAppBody>) { async function handler(req: ApiRequestProps<CreateAppBody>) {
const { parentId, name, avatar, intro, type, modules, edges, chatConfig, utmParams } = req.body; const { parentId, name, avatar, intro, type, modules, edges, chatConfig, templateId, utmParams } =
req.body;
if (!name || !type || !Array.isArray(modules)) { if (!name || !type || !Array.isArray(modules)) {
return Promise.reject(CommonErrEnum.inheritPermissionError); return Promise.reject(CommonErrEnum.inheritPermissionError);
...@@ -122,6 +125,7 @@ export const onCreateApp = async ({ ...@@ -122,6 +125,7 @@ export const onCreateApp = async ({
pluginData, pluginData,
username, username,
userAvatar, userAvatar,
templateId,
session session
}: { }: {
parentId?: ParentIdType; parentId?: ParentIdType;
...@@ -137,6 +141,7 @@ export const onCreateApp = async ({ ...@@ -137,6 +141,7 @@ export const onCreateApp = async ({
pluginData?: AppSchema['pluginData']; pluginData?: AppSchema['pluginData'];
username?: string; username?: string;
userAvatar?: string; userAvatar?: string;
templateId?: string;
session?: ClientSession; session?: ClientSession;
}) => { }) => {
const create = async (session: ClientSession) => { const create = async (session: ClientSession) => {
...@@ -154,7 +159,8 @@ export const onCreateApp = async ({ ...@@ -154,7 +159,8 @@ export const onCreateApp = async ({
chatConfig, chatConfig,
type, type,
version: 'v2', version: 'v2',
pluginData pluginData,
templateId
} }
], ],
{ session, ordered: true } { session, ordered: true }
......
...@@ -74,7 +74,8 @@ const TemplateMarket = ({ ...@@ -74,7 +74,8 @@ const TemplateMarket = ({
type: template.type as AppTypeEnum, type: template.type as AppTypeEnum,
modules: templateDetail.workflow.nodes || [], modules: templateDetail.workflow.nodes || [],
edges: templateDetail.workflow.edges || [], edges: templateDetail.workflow.edges || [],
chatConfig: templateDetail.workflow.chatConfig chatConfig: templateDetail.workflow.chatConfig,
templateId: templateDetail.templateId
}).then((res) => { }).then((res) => {
webPushTrack.useAppTemplate({ webPushTrack.useAppTemplate({
id: res, id: res,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment