platform: modularize api/gui, add docs-tests-web foundation, and refresh root config
This commit is contained in:
198
selective-vpn-api/app/apiroutes/register.go
Normal file
198
selective-vpn-api/app/apiroutes/register.go
Normal file
@@ -0,0 +1,198 @@
|
||||
package apiroutes
|
||||
|
||||
import "net/http"
|
||||
|
||||
type Handlers struct {
|
||||
Healthz http.HandlerFunc
|
||||
EventsStream http.HandlerFunc
|
||||
GetStatus http.HandlerFunc
|
||||
VPNLoginState http.HandlerFunc
|
||||
SystemdState http.HandlerFunc
|
||||
|
||||
RoutesServiceStart http.HandlerFunc
|
||||
RoutesServiceStop http.HandlerFunc
|
||||
RoutesServiceRestart http.HandlerFunc
|
||||
RoutesService http.HandlerFunc
|
||||
RoutesUpdate http.HandlerFunc
|
||||
RoutesTimer http.HandlerFunc
|
||||
RoutesTimerToggle http.HandlerFunc
|
||||
RoutesRollback http.HandlerFunc
|
||||
RoutesClear http.HandlerFunc
|
||||
RoutesCacheRestore http.HandlerFunc
|
||||
RoutesPrecheckDebug http.HandlerFunc
|
||||
RoutesFixPolicyRoute http.HandlerFunc
|
||||
RoutesFixPolicyAlias http.HandlerFunc
|
||||
|
||||
TrafficMode http.HandlerFunc
|
||||
TrafficModeTest http.HandlerFunc
|
||||
TrafficAdvancedReset http.HandlerFunc
|
||||
TrafficInterfaces http.HandlerFunc
|
||||
TrafficCandidates http.HandlerFunc
|
||||
TrafficAppMarks http.HandlerFunc
|
||||
TrafficAppMarksItems http.HandlerFunc
|
||||
TrafficAppProfiles http.HandlerFunc
|
||||
TrafficAudit http.HandlerFunc
|
||||
|
||||
TransportClients http.HandlerFunc
|
||||
TransportClientByID http.HandlerFunc
|
||||
TransportInterfaces http.HandlerFunc
|
||||
TransportRuntimeObservability http.HandlerFunc
|
||||
TransportPolicies http.HandlerFunc
|
||||
TransportPoliciesValidate http.HandlerFunc
|
||||
TransportPoliciesApply http.HandlerFunc
|
||||
TransportPoliciesRollback http.HandlerFunc
|
||||
TransportConflicts http.HandlerFunc
|
||||
TransportOwnership http.HandlerFunc
|
||||
TransportOwnerLocks http.HandlerFunc
|
||||
TransportOwnerLocksClear http.HandlerFunc
|
||||
TransportCapabilities http.HandlerFunc
|
||||
TransportHealthRefresh http.HandlerFunc
|
||||
TransportNetnsToggle http.HandlerFunc
|
||||
TransportSingBoxProfiles http.HandlerFunc
|
||||
TransportSingBoxProfileByID http.HandlerFunc
|
||||
TransportSingBoxFeatures http.HandlerFunc
|
||||
EgressIdentityGet http.HandlerFunc
|
||||
EgressIdentityRefresh http.HandlerFunc
|
||||
|
||||
TraceTailPlain http.HandlerFunc
|
||||
TraceJSON http.HandlerFunc
|
||||
TraceAppend http.HandlerFunc
|
||||
|
||||
DNSUpstreams http.HandlerFunc
|
||||
DNSUpstreamPool http.HandlerFunc
|
||||
DNSStatus http.HandlerFunc
|
||||
DNSModeSet http.HandlerFunc
|
||||
DNSBenchmark http.HandlerFunc
|
||||
DNSSmartdnsService http.HandlerFunc
|
||||
|
||||
SmartdnsService http.HandlerFunc
|
||||
SmartdnsRuntime http.HandlerFunc
|
||||
SmartdnsPrewarm http.HandlerFunc
|
||||
SmartdnsWildcards http.HandlerFunc
|
||||
|
||||
DomainsTable http.HandlerFunc
|
||||
DomainsFile http.HandlerFunc
|
||||
|
||||
VPNAutoloopStatus http.HandlerFunc
|
||||
VPNStatus http.HandlerFunc
|
||||
VPNAutoconnect http.HandlerFunc
|
||||
VPNListLocations http.HandlerFunc
|
||||
VPNSetLocation http.HandlerFunc
|
||||
VPNLoginSessionStart http.HandlerFunc
|
||||
VPNLoginSessionState http.HandlerFunc
|
||||
VPNLoginSessionAction http.HandlerFunc
|
||||
VPNLoginSessionStop http.HandlerFunc
|
||||
VPNLogout http.HandlerFunc
|
||||
}
|
||||
|
||||
func Register(mux *http.ServeMux, h Handlers) {
|
||||
registerCoreRoutes(mux, h)
|
||||
registerRoutesControlRoutes(mux, h)
|
||||
registerTrafficRoutes(mux, h)
|
||||
registerTransportRoutes(mux, h)
|
||||
registerTraceRoutes(mux, h)
|
||||
registerDNSRoutes(mux, h)
|
||||
registerSmartDNSRoutes(mux, h)
|
||||
registerDomainsRoutes(mux, h)
|
||||
registerVPNRoutes(mux, h)
|
||||
}
|
||||
|
||||
func registerCoreRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/healthz", h.Healthz)
|
||||
mux.HandleFunc("/api/v1/events/stream", h.EventsStream)
|
||||
mux.HandleFunc("/api/v1/status", h.GetStatus)
|
||||
mux.HandleFunc("/api/v1/routes/status", h.GetStatus)
|
||||
mux.HandleFunc("/api/v1/vpn/login-state", h.VPNLoginState)
|
||||
mux.HandleFunc("/api/v1/systemd/state", h.SystemdState)
|
||||
}
|
||||
|
||||
func registerRoutesControlRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/routes/service/start", h.RoutesServiceStart)
|
||||
mux.HandleFunc("/api/v1/routes/service/stop", h.RoutesServiceStop)
|
||||
mux.HandleFunc("/api/v1/routes/service/restart", h.RoutesServiceRestart)
|
||||
mux.HandleFunc("/api/v1/routes/service", h.RoutesService)
|
||||
mux.HandleFunc("/api/v1/routes/update", h.RoutesUpdate)
|
||||
mux.HandleFunc("/api/v1/routes/timer", h.RoutesTimer)
|
||||
mux.HandleFunc("/api/v1/routes/timer/toggle", h.RoutesTimerToggle)
|
||||
mux.HandleFunc("/api/v1/routes/rollback", h.RoutesRollback)
|
||||
mux.HandleFunc("/api/v1/routes/clear", h.RoutesClear)
|
||||
mux.HandleFunc("/api/v1/routes/cache/restore", h.RoutesCacheRestore)
|
||||
mux.HandleFunc("/api/v1/routes/precheck/debug", h.RoutesPrecheckDebug)
|
||||
mux.HandleFunc("/api/v1/routes/fix-policy-route", h.RoutesFixPolicyRoute)
|
||||
mux.HandleFunc("/api/v1/routes/fix-policy", h.RoutesFixPolicyAlias)
|
||||
}
|
||||
|
||||
func registerTrafficRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/traffic/mode", h.TrafficMode)
|
||||
mux.HandleFunc("/api/v1/traffic/mode/test", h.TrafficModeTest)
|
||||
mux.HandleFunc("/api/v1/traffic/advanced/reset", h.TrafficAdvancedReset)
|
||||
mux.HandleFunc("/api/v1/traffic/interfaces", h.TrafficInterfaces)
|
||||
mux.HandleFunc("/api/v1/traffic/candidates", h.TrafficCandidates)
|
||||
mux.HandleFunc("/api/v1/traffic/appmarks", h.TrafficAppMarks)
|
||||
mux.HandleFunc("/api/v1/traffic/appmarks/items", h.TrafficAppMarksItems)
|
||||
mux.HandleFunc("/api/v1/traffic/app-profiles", h.TrafficAppProfiles)
|
||||
mux.HandleFunc("/api/v1/traffic/audit", h.TrafficAudit)
|
||||
}
|
||||
|
||||
func registerTransportRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/transport/clients", h.TransportClients)
|
||||
mux.HandleFunc("/api/v1/transport/clients/", h.TransportClientByID)
|
||||
mux.HandleFunc("/api/v1/transport/interfaces", h.TransportInterfaces)
|
||||
mux.HandleFunc("/api/v1/transport/runtime/observability", h.TransportRuntimeObservability)
|
||||
mux.HandleFunc("/api/v1/transport/policies", h.TransportPolicies)
|
||||
mux.HandleFunc("/api/v1/transport/policies/validate", h.TransportPoliciesValidate)
|
||||
mux.HandleFunc("/api/v1/transport/policies/apply", h.TransportPoliciesApply)
|
||||
mux.HandleFunc("/api/v1/transport/policies/rollback", h.TransportPoliciesRollback)
|
||||
mux.HandleFunc("/api/v1/transport/conflicts", h.TransportConflicts)
|
||||
mux.HandleFunc("/api/v1/transport/owners", h.TransportOwnership)
|
||||
mux.HandleFunc("/api/v1/transport/owner-locks", h.TransportOwnerLocks)
|
||||
mux.HandleFunc("/api/v1/transport/owner-locks/clear", h.TransportOwnerLocksClear)
|
||||
mux.HandleFunc("/api/v1/transport/capabilities", h.TransportCapabilities)
|
||||
mux.HandleFunc("/api/v1/transport/health/refresh", h.TransportHealthRefresh)
|
||||
mux.HandleFunc("/api/v1/transport/netns/toggle", h.TransportNetnsToggle)
|
||||
mux.HandleFunc("/api/v1/transport/singbox/profiles", h.TransportSingBoxProfiles)
|
||||
mux.HandleFunc("/api/v1/transport/singbox/profiles/", h.TransportSingBoxProfileByID)
|
||||
mux.HandleFunc("/api/v1/transport/singbox/features", h.TransportSingBoxFeatures)
|
||||
mux.HandleFunc("/api/v1/egress/identity", h.EgressIdentityGet)
|
||||
mux.HandleFunc("/api/v1/egress/identity/refresh", h.EgressIdentityRefresh)
|
||||
}
|
||||
|
||||
func registerTraceRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/trace", h.TraceTailPlain)
|
||||
mux.HandleFunc("/api/v1/trace-json", h.TraceJSON)
|
||||
mux.HandleFunc("/api/v1/trace/append", h.TraceAppend)
|
||||
}
|
||||
|
||||
func registerDNSRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/dns-upstreams", h.DNSUpstreams)
|
||||
mux.HandleFunc("/api/v1/dns/upstream-pool", h.DNSUpstreamPool)
|
||||
mux.HandleFunc("/api/v1/dns/status", h.DNSStatus)
|
||||
mux.HandleFunc("/api/v1/dns/mode", h.DNSModeSet)
|
||||
mux.HandleFunc("/api/v1/dns/benchmark", h.DNSBenchmark)
|
||||
mux.HandleFunc("/api/v1/dns/smartdns-service", h.DNSSmartdnsService)
|
||||
}
|
||||
|
||||
func registerSmartDNSRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/smartdns/service", h.SmartdnsService)
|
||||
mux.HandleFunc("/api/v1/smartdns/runtime", h.SmartdnsRuntime)
|
||||
mux.HandleFunc("/api/v1/smartdns/prewarm", h.SmartdnsPrewarm)
|
||||
mux.HandleFunc("/api/v1/smartdns/wildcards", h.SmartdnsWildcards)
|
||||
}
|
||||
|
||||
func registerDomainsRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/domains/table", h.DomainsTable)
|
||||
mux.HandleFunc("/api/v1/domains/file", h.DomainsFile)
|
||||
}
|
||||
|
||||
func registerVPNRoutes(mux *http.ServeMux, h Handlers) {
|
||||
mux.HandleFunc("/api/v1/vpn/autoloop-status", h.VPNAutoloopStatus)
|
||||
mux.HandleFunc("/api/v1/vpn/status", h.VPNStatus)
|
||||
mux.HandleFunc("/api/v1/vpn/autoconnect", h.VPNAutoconnect)
|
||||
mux.HandleFunc("/api/v1/vpn/locations", h.VPNListLocations)
|
||||
mux.HandleFunc("/api/v1/vpn/location", h.VPNSetLocation)
|
||||
mux.HandleFunc("/api/v1/vpn/login/session/start", h.VPNLoginSessionStart)
|
||||
mux.HandleFunc("/api/v1/vpn/login/session/state", h.VPNLoginSessionState)
|
||||
mux.HandleFunc("/api/v1/vpn/login/session/action", h.VPNLoginSessionAction)
|
||||
mux.HandleFunc("/api/v1/vpn/login/session/stop", h.VPNLoginSessionStop)
|
||||
mux.HandleFunc("/api/v1/vpn/logout", h.VPNLogout)
|
||||
}
|
||||
Reference in New Issue
Block a user