add templateId to apps (#5866)

* fix: timeselector ui error

* var update node

* add templateId to apps
This commit is contained in:
Archer 2025-11-05 14:58:02 +08:00 committed by GitHub
parent 45869fa058
commit bf33f7af2e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 44 additions and 33 deletions

View File

@ -29,6 +29,7 @@ export type AppSchema = {
name: string;
avatar: string;
intro: string;
templateId?: string; // Create by template
updateTime: Date;
@ -46,16 +47,18 @@ export type AppSchema = {
scheduledTriggerConfig?: AppScheduledTriggerConfigType | null;
scheduledTriggerNextTime?: Date;
inited?: boolean;
teamTags: string[];
inheritPermission?: boolean;
// if access the app by favourite or quick
favourite?: boolean;
quick?: boolean;
// abandon
/** @deprecated */
defaultPermission?: number;
/** @deprecated */
inited?: boolean;
/** @deprecated */
teamTags: string[];
};
export type AppListItemType = {

View File

@ -8,11 +8,12 @@ export type UsageSchemaType = {
teamId: string;
tmbId: string;
appName: string;
appId?: string;
pluginId?: string;
totalPoints: number;
source: `${UsageSourceEnum}`;
appId?: string;
datasetId?: string;
// @deprecated
list?: UsageItemType[];
};

View File

@ -60,18 +60,14 @@ const AppSchema = new Schema(
type: String,
default: ''
},
templateId: String,
updateTime: {
type: Date,
default: () => new Date()
},
// role and auth
teamTags: {
type: [String]
},
// save app(Not publish)
// Workflow data
modules: {
type: Array,
default: []
@ -83,7 +79,8 @@ const AppSchema = new Schema(
chatConfig: {
type: chatConfigType
},
// plugin config
// Tool config
pluginData: {
type: {
nodeVersion: String,
@ -108,19 +105,21 @@ const AppSchema = new Schema(
type: Date
},
inited: {
type: Boolean
},
inheritPermission: {
type: Boolean,
default: true
},
// Chat setting
favourite: Boolean,
quick: Boolean,
// abandoned
defaultPermission: Number
/** @deprecated */
defaultPermission: Number,
inited: Boolean,
teamTags: {
type: [String]
}
},
{
minimize: false

View File

@ -7,6 +7,8 @@ import {
TeamMemberCollectionName
} from '@fastgpt/global/support/user/team/constant';
import { UsageCollectionName, UsageItemCollectionName } from './constants';
import { AppCollectionName } from '../../../core/app/schema';
import { DatasetCollectionName } from '../../../core/dataset/schema';
const UsageSchema = new Schema(
{
@ -25,31 +27,30 @@ const UsageSchema = new Schema(
enum: Object.values(UsageSourceEnum),
required: true
},
// usage name
appName: {
// usage name
type: String,
default: ''
},
// total points
totalPoints: {
// total points
type: Number,
required: true
},
appId: {
type: Schema.Types.ObjectId,
ref: 'apps',
required: false
},
pluginId: {
type: Schema.Types.ObjectId,
ref: 'plugins',
required: false
},
time: {
type: Date,
default: () => new Date()
},
appId: {
type: Schema.Types.ObjectId,
ref: AppCollectionName
},
datasetId: {
type: Schema.Types.ObjectId,
ref: DatasetCollectionName
},
// @description It will not be used again in the future.
list: {
type: Array

View File

@ -484,7 +484,7 @@ const RenderList = React.memo(function RenderList({
_hover={{
color: 'primary.600'
}}
onClick={() => router.push('/toolkit/tools')}
onClick={() => router.push('/plugin/tool')}
gap={1}
bottom={0}
right={[3, 6]}

View File

@ -39,11 +39,14 @@ export type CreateAppBody = {
modules: AppSchema['modules'];
edges?: AppSchema['edges'];
chatConfig?: AppSchema['chatConfig'];
templateId?: string;
utmParams?: ShortUrlParams;
};
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)) {
return Promise.reject(CommonErrEnum.inheritPermissionError);
@ -122,6 +125,7 @@ export const onCreateApp = async ({
pluginData,
username,
userAvatar,
templateId,
session
}: {
parentId?: ParentIdType;
@ -137,6 +141,7 @@ export const onCreateApp = async ({
pluginData?: AppSchema['pluginData'];
username?: string;
userAvatar?: string;
templateId?: string;
session?: ClientSession;
}) => {
const create = async (session: ClientSession) => {
@ -154,7 +159,8 @@ export const onCreateApp = async ({
chatConfig,
type,
version: 'v2',
pluginData
pluginData,
templateId
}
],
{ session, ordered: true }

View File

@ -74,7 +74,8 @@ const TemplateMarket = ({
type: template.type as AppTypeEnum,
modules: templateDetail.workflow.nodes || [],
edges: templateDetail.workflow.edges || [],
chatConfig: templateDetail.workflow.chatConfig
chatConfig: templateDetail.workflow.chatConfig,
templateId: templateDetail.templateId
}).then((res) => {
webPushTrack.useAppTemplate({
id: res,