dify/web/models/app.ts
hjlarry 3288f5e100 fix(collaboration): align online-users keys to app_id
Switch /apps/workflows/online-users request and response schema from workflow_ids/workflow_id to app_ids/app_id without compatibility fallback.

Align app list online avatar lookup and online-user map indexing to app.id, matching socket room identity.

Update backend access checks, API fields, frontend contract/types, and unit tests accordingly.
2026-04-12 16:16:47 +08:00

153 lines
3.2 KiB
TypeScript

import type {
AliyunConfig,
ArizeConfig,
DatabricksConfig,
LangFuseConfig,
LangSmithConfig,
MLflowConfig,
OpikConfig,
PhoenixConfig,
TencentConfig,
TracingProvider,
WeaveConfig,
} from '@/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/type'
import type { Dependency } from '@/app/components/plugins/types'
import type { App, AppModeEnum, SiteConfig } from '@/types/app'
export enum DSLImportMode {
YAML_CONTENT = 'yaml-content',
YAML_URL = 'yaml-url',
}
export enum DSLImportStatus {
COMPLETED = 'completed',
COMPLETED_WITH_WARNINGS = 'completed-with-warnings',
PENDING = 'pending',
FAILED = 'failed',
}
export type AppListResponse = {
data: App[]
has_more: boolean
limit: number
page: number
total: number
}
export type AppDetailResponse = App
export type DSLImportResponse = {
id: string
status: DSLImportStatus
app_mode: AppModeEnum
app_id?: string
current_dsl_version?: string
imported_dsl_version?: string
error: string
leaked_dependencies: Dependency[]
}
export type UpdateAppSiteCodeResponse = { app_id: string } & SiteConfig
export type AppDailyMessagesResponse = {
data: Array<{ date: string, message_count: number }>
}
export type AppDailyConversationsResponse = {
data: Array<{ date: string, conversation_count: number }>
}
export type WorkflowDailyConversationsResponse = {
data: Array<{ date: string, runs: number }>
}
export type AppStatisticsResponse = {
data: Array<{ date: string }>
}
export type AppDailyEndUsersResponse = {
data: Array<{ date: string, terminal_count: number }>
}
export type AppTokenCostsResponse = {
data: Array<{ date: string, token_count: number, total_price: number, currency: number }>
}
export type UpdateAppModelConfigResponse = { result: string }
export type ApiKeyItemResponse = {
id: string
token: string
last_used_at: string
created_at: string
}
export type ApiKeysListResponse = {
data: ApiKeyItemResponse[]
}
export type CreateApiKeyResponse = {
id: string
token: string
created_at: string
}
export type ValidateOpenAIKeyResponse = {
result: string
error?: string
}
export type UpdateOpenAIKeyResponse = ValidateOpenAIKeyResponse
export type AppVoicesListResponse = [{
name: string
value: string
}]
export type WorkflowOnlineUser = {
user_id?: string
username?: string
avatar?: string | null
sid?: string
}
export type WorkflowOnlineUsersResponse = {
data: Record<string, WorkflowOnlineUser[]> | Array<{
app_id: string
users: WorkflowOnlineUser[]
}>
}
export type TracingStatus = {
enabled: boolean
tracing_provider: TracingProvider | null
}
export type TracingConfig = {
tracing_provider: TracingProvider
tracing_config: ArizeConfig | PhoenixConfig | LangSmithConfig | LangFuseConfig | DatabricksConfig | MLflowConfig | OpikConfig | WeaveConfig | AliyunConfig | TencentConfig
}
export type WebhookTriggerResponse = {
id: string
webhook_id: string
webhook_url: string
webhook_debug_url: string
node_id: string
created_at: string
}
export type Banner = {
id: string
content: {
'category': string
'title': string
'description': string
'img-src': string
}
link: string
sort: number
status: string
created_at: string
}