import { AxiosPromise } from "axios"; import request from "@/utils/request"; import { ConfigsDto, ConfigUpdateDto, ConfigVo, Hysteria2ProfileVo, } from "@/api/config/types"; // Серверный конфиг Hysteria доступен панели только на чтение и на выгрузку: // им владеет install-оркестратор. Клиентов записи, импорта, перезапуска и // загрузки сертификатов здесь нет — соответствующих маршрутов не существует. // // Generic-выгрузки таблицы `config` здесь тоже нет: она отдавала JWT- и // peer-ключи в открытом виде. Перенос пиров делают ImportPeer/ExportPeer. // // getConfigApi удалён вместе с маршрутом: он принимал произвольный ключ той же // таблицы и не вызывался ни из одного экрана. Чтение настроек идёт через // listConfigApi, на стороне сервера — по allowlist. // Ответ описывает production-профиль, а не всю модель серверного конфига: он // отличает «не задано» от значения и отдельно перечисляет секции вне профиля. // Раньше сюда приезжала внутренняя модель целиком — вместе с паролем // обфускации, токенами ACME DNS и учётными данными outbound-прокси. export function getHysteria2ConfigApi(): AxiosPromise { return request({ url: "/config/getHysteria2Config", method: "get", }); } export function listConfigApi(data: ConfigsDto): AxiosPromise> { return request({ url: "/config/listConfig", method: "post", data: data, }); } export function updateConfigsApi(data: ConfigUpdateDto): AxiosPromise { return request({ url: "/config/updateConfigs", method: "post", data: data, }); } export function exportHysteria2ConfigApi(): AxiosPromise { return request({ url: "/config/exportHysteria2Config", method: "post", responseType: "blob", }); }