gravityyy-proxyyy / src /utils /public-sanitize.js
bardd's picture
Fix gemini-3.1-pro-high by routing to pro-low with thinkingLevel high.
4badc3b
Raw
History Blame Contribute Delete
2.74 kB
/**
* Strip PII from monitoring endpoints for unauthenticated visitors.
*/
export function maskEmail(email) {
const [local, domain] = String(email || '').split('@');
if (!local || !domain) {
return 'account';
}
if (local.length <= 4) {
return `${local[0]}***@${domain}`;
}
return `${local.slice(0, 2)}******${local.slice(-2)}@${domain}`;
}
function sanitizeSubscription(subscription) {
if (!subscription || typeof subscription !== 'object') {
return undefined;
}
return {
tier: subscription.tier || 'unknown'
};
}
function sanitizeModelQuotas(models) {
if (!models || typeof models !== 'object') {
return {};
}
const sanitized = {};
for (const [modelId, info] of Object.entries(models)) {
sanitized[modelId] = {
remaining: info?.remaining ?? null,
remainingFraction: info?.remainingFraction ?? null,
resetTime: info?.resetTime ?? null
};
}
return sanitized;
}
export function sanitizeHealthAccount(account, index) {
return {
id: `account-${index + 1}`,
email: maskEmail(account?.email),
status: account?.status || 'unknown',
modelRateLimits: {},
rateLimitCooldownRemaining: account?.rateLimitCooldownRemaining ?? 0,
models: sanitizeModelQuotas(account?.models),
...(account?.error ? { error: 'Unavailable' } : {})
};
}
export function sanitizeHealthPayload(payload) {
return {
status: payload?.status,
timestamp: payload?.timestamp,
latencyMs: payload?.latencyMs,
summary: payload?.summary,
counts: payload?.counts,
accounts: (payload?.accounts || []).map(sanitizeHealthAccount)
};
}
export function sanitizeAccountLimitsAccount(account, index) {
return {
id: `account-${index + 1}`,
email: maskEmail(account?.email),
status: account?.status || 'unknown',
error: account?.error ? 'Unavailable' : null,
source: account?.source || 'unknown',
enabled: account?.enabled !== false,
isInvalid: Boolean(account?.isInvalid),
subscription: sanitizeSubscription(account?.subscription),
limits: sanitizeModelQuotas(account?.limits || account?.models),
models: sanitizeModelQuotas(account?.models)
};
}
export function sanitizeAccountLimitsPayload(payload) {
return {
timestamp: payload?.timestamp,
totalAccounts: payload?.totalAccounts,
models: payload?.models || [],
modelConfig: {},
globalQuotaThreshold: payload?.globalQuotaThreshold ?? 0,
accounts: (payload?.accounts || []).map(sanitizeAccountLimitsAccount)
};
}