mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-11-03 00:33:13 +00:00
feat: extend Server-Timing to authenticated user web APIs
Mirror the Admin UI Server-Timing opt-in for user-facing pages so authenticated callers can inspect total/app/db/redis/deps metrics on session, profile, keys, usage, payment, and related user APIs. - Collect when X-User-UI-Request=1 or path is on the user allowlist - Emit for non-admin only on allowlisted paths (header is not auth) - Exclude payment public/webhook surfaces - Mark matching SPA requests and allow the new CORS request header
This commit is contained in:
1 parent
da85cc7e47
commit
324a491671
9 files changed
+349
-28
No files matched your search
@@ -6,7 +6,12 @@
|
||||
import axios, { AxiosInstance, AxiosError, InternalAxiosRequestConfig, AxiosResponse } from 'axios'
|
||||
import type { ApiResponse } from '@/types'
|
||||
import { getLocale } from '@/i18n'
|
||||
import { ADMIN_UI_REQUEST_HEADER, shouldMarkAdminUIRequest } from './adminUIRequest'
|
||||
import {
|
||||
ADMIN_UI_REQUEST_HEADER,
|
||||
USER_UI_REQUEST_HEADER,
|
||||
shouldMarkAdminUIRequest,
|
||||
shouldMarkUserUIRequest,
|
||||
} from './adminUIRequest'
|
||||
import { getAPIBaseURL } from './url'
|
||||
export { buildApiUrl, buildGatewayUrl } from './url'
|
||||
|
||||
@@ -75,8 +80,14 @@ apiClient.interceptors.request.use(
|
||||
config.params.timezone = getUserTimezone()
|
||||
}
|
||||
|
||||
if (config.headers && shouldMarkAdminUIRequest(String(config.url || ''))) {
|
||||
config.headers[ADMIN_UI_REQUEST_HEADER] = '1'
|
||||
if (config.headers) {
|
||||
const requestURL = String(config.url || '')
|
||||
if (shouldMarkAdminUIRequest(requestURL)) {
|
||||
config.headers[ADMIN_UI_REQUEST_HEADER] = '1'
|
||||
}
|
||||
if (shouldMarkUserUIRequest(requestURL)) {
|
||||
config.headers[USER_UI_REQUEST_HEADER] = '1'
|
||||
}
|
||||
}
|
||||
|
||||
return config
|
||||
|
||||
Reference in new issue
Block a user