refactor(openflare): migrate console APIs to v1 and centralize routing

Move OpenFlare management endpoints to /api/v1/custom/openflare with
Wavelet response envelopes and Abort* error handling. Keep agent, relay,
and flared protocol routes on /api/* with the legacy compat format.

- Add apiutil helpers and Swagger annotations for console handlers
- Register all OpenFlare routes in internal/router/openflare (not apps)
- Switch frontend services to OpenFlareBaseService and v1 paths
- Remove dead auth/compat code and legacy-base.service.ts
- Update integration tests and changelog
This commit is contained in:
ryan
2026-06-18 20:34:54 +08:00
parent aa348a1b48
commit 399c1bc88d
104 changed files with 28541 additions and 3879 deletions
@@ -52,7 +52,7 @@ export default function CertificatesPage() {
});
const deleteMutation = useMutation({
mutationFn: (id: number) => TlsCertificateService.delete(id),
mutationFn: (id: number) => TlsCertificateService.deleteById(id),
onSuccess: async () => {
toast.success('证书已删除');
setDeleteTarget(null);
@@ -102,7 +102,7 @@ export function WebsiteDetailPageClient() {
}, [routesQuery.data, website]);
const deleteDomainMutation = useMutation({
mutationFn: (id: number) => WebsiteService.delete(id),
mutationFn: (id: number) => WebsiteService.deleteById(id),
onSuccess: async () => {
await queryClient.invalidateQueries({queryKey: domainsQueryKey});
router.push('/websites');
@@ -111,7 +111,7 @@ export function WebsiteDetailPageClient() {
});
const deleteCertificateMutation = useMutation({
mutationFn: (id: number) => TlsCertificateService.delete(id),
mutationFn: (id: number) => TlsCertificateService.deleteById(id),
onSuccess: async () => {
toast.success('证书已删除');
setDeleteCertOpen(false);
@@ -40,7 +40,7 @@ export default function DnsAccountsPage() {
});
const deleteMutation = useMutation({
mutationFn: (id: number) => DnsAccountService.delete(id),
mutationFn: (id: number) => DnsAccountService.deleteById(id),
onSuccess: async () => {
toast.success('DNS 账号已删除');
setDeleteTarget(null);
@@ -50,7 +50,7 @@ export default function WebsitesPage() {
});
const deleteMutation = useMutation({
mutationFn: (id: number) => WebsiteService.delete(id),
mutationFn: (id: number) => WebsiteService.deleteById(id),
onSuccess: async () => {
toast.success('网站已删除');
setDeleteTarget(null);