调整文档路径
This commit is contained in:
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user