调整文档路径

This commit is contained in:
2026-09-02 17:31:52 +08:00
parent 01b3798e02
commit 674ff09db1
43 changed files with 0 additions and 0 deletions
+158
View File
@@ -0,0 +1,158 @@
import api from './client';
export interface TokenRow {
token_id: number;
token_prefix: string;
token_plain: string | null;
client_id: string;
service_scope: string;
service_url: string | null;
status: string;
expires_at: string | null;
description: string | null;
created_at: string | null;
created_by: string;
revoked_at: string | null;
revoke_reason: string | null;
last_used_at: string | null;
last_used_svc: string | null;
}
export interface TokenCreate {
client_id: string;
service_scope: string;
description?: string;
expires_at?: string | null;
}
export interface CreateResult {
token: string;
token_id: number;
token_prefix: string;
client_id: string;
service_scope: string;
message: string;
}
export async function listTokens(params?: {
client_id?: string;
status?: string;
service_scope?: string;
}) {
const { data } = await api.get('/tokens', { params });
return data as { total: number; tokens: TokenRow[] };
}
export async function createToken(payload: TokenCreate) {
const { data } = await api.post('/tokens', payload);
return data as CreateResult;
}
export async function revokeToken(token_id: number, reason?: string) {
const { data } = await api.put(`/tokens/${token_id}/revoke`, { reason });
return data;
}
export async function enableToken(token_id: number) {
const { data } = await api.put(`/tokens/${token_id}/enable`);
return data;
}
export async function deleteToken(token_id: number) {
const { data } = await api.delete(`/tokens/${token_id}`);
return data;
}
export async function updateToken(
token_id: number,
payload: { description?: string; expires_at?: string | null },
) {
const { data } = await api.patch(`/tokens/${token_id}`, payload);
return data;
}
export async function tokenLogs(token_id: number) {
const { data } = await api.get(`/tokens/${token_id}/logs`);
return data as {
total: number;
logs: Array<{
log_id: number;
event: string;
service: string | null;
client_ip: string | null;
occurred_at: string | null;
detail: unknown;
}>;
};
}
export async function getStats() {
const { data } = await api.get('/stats');
return data as {
total: number;
active: number;
revoked: number;
by_scope: Record<string, number>;
calls_24h: number;
clients_24h: number;
recent: Array<{
token_prefix: string;
client_id: string;
service: string | null;
last_used_at: string | null;
}>;
};
}
// ==================== MCP 服务管理 ====================
export interface ServiceRow {
service_id: number;
service_name: string;
service_url: string;
api_key: string;
description: string | null;
status: string;
created_at: string | null;
created_by: string;
revoked_at: string | null;
last_used_at: string | null;
}
export interface ServiceCreate {
service_name: string;
service_url: string;
description?: string;
}
export interface ServiceCreateResult {
api_key: string;
service_id: number;
service_name: string;
message: string;
}
export async function listServices(params?: { status?: string }) {
const { data } = await api.get('/services', { params });
return data as { total: number; services: ServiceRow[] };
}
export async function registerService(payload: ServiceCreate) {
const { data } = await api.post('/services', payload);
return data as ServiceCreateResult;
}
export async function revokeService(service_id: number) {
const { data } = await api.patch(`/services/${service_id}/revoke`);
return data;
}
export async function enableService(service_id: number) {
const { data } = await api.patch(`/services/${service_id}/enable`);
return data;
}
export async function deleteService(service_id: number) {
const { data } = await api.delete(`/services/${service_id}`);
return data;
}