This is an automated email from the ASF dual-hosted git repository. wu-sheng pushed a commit to branch feat/explore in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git
commit f602ea2a9316fb588d606eac14a8ed5d6f6d8157 Author: Wu Sheng <[email protected]> AuthorDate: Tue Jun 23 20:58:47 2026 +0800 refactor(inspect): remove the MQE-target panel from the Inspect page Drop the read-only "where execExpression fires" base-URL panel and the GET /api/inspect/mqe-target route that fed it (UI query, api method, response type, RBAC entry, i18n keys). The MqeTargetCache resolver stays — exec/server-time still use it to know where execExpression fires; only the operator-facing display surface is gone. --- apps/bff/src/http/admin/inspect.ts | 27 ---------- apps/bff/src/rbac/route-policy.ts | 1 - apps/ui/src/api/client.ts | 7 --- apps/ui/src/api/scopes/inspect.ts | 6 --- .../src/features/operate/inspect/InspectView.vue | 57 +++------------------- apps/ui/src/i18n/locales/de.json | 5 -- apps/ui/src/i18n/locales/en.json | 6 --- apps/ui/src/i18n/locales/es.json | 5 -- apps/ui/src/i18n/locales/fr.json | 5 -- apps/ui/src/i18n/locales/ja.json | 5 -- apps/ui/src/i18n/locales/ko.json | 5 -- apps/ui/src/i18n/locales/pt.json | 5 -- apps/ui/src/i18n/locales/zh-CN.json | 5 -- 13 files changed, 6 insertions(+), 133 deletions(-) diff --git a/apps/bff/src/http/admin/inspect.ts b/apps/bff/src/http/admin/inspect.ts index 44d1455..adbd587 100644 --- a/apps/bff/src/http/admin/inspect.ts +++ b/apps/bff/src/http/admin/inspect.ts @@ -165,33 +165,6 @@ export function registerInspectRoutes(app: FastifyInstance, deps: InspectRouteDe }, ); - // ── /api/inspect/mqe-target ────────────────────────────────────── - // Resolves the GraphQL base URL for MQE `execExpression` calls. - // The result is cached for ~60s; `?refresh=true` busts the cache - // so the operator can re-pull after reconfiguring OAP. - - app.get( - '/api/inspect/mqe-target', - { preHandler: auth }, - async (req: FastifyRequest, reply: FastifyReply) => { - if (!ensureVerb(req, reply, deps, 'inspect:read')) return; - const q = req.query as Record<string, string | undefined>; - if (q.refresh === 'true' || q.refresh === '1') mqeTarget.invalidate(); - try { - const target = await mqeTarget.resolve({ - config: () => deps.config.current, - fetch: deps.fetch ?? globalThis.fetch.bind(globalThis), - }); - return reply.send(target); - } catch (err) { - return reply.code(502).send({ - error: 'mqe_target_unresolved', - message: err instanceof Error ? err.message : String(err), - }); - } - }, - ); - // ── /api/inspect/server-time ───────────────────────────────────── // Caches OAP's `getTimeInfo` so the SPA can display dates in browser // local TZ while sending server-TZ strings to OAP. diff --git a/apps/bff/src/rbac/route-policy.ts b/apps/bff/src/rbac/route-policy.ts index 0b81b4e..b147182 100644 --- a/apps/bff/src/rbac/route-policy.ts +++ b/apps/bff/src/rbac/route-policy.ts @@ -142,7 +142,6 @@ export const ROUTE_POLICY: Record<string, RoutePolicy> = { 'GET /api/cluster/state': 'cluster:read', 'GET /api/inspect/metrics': 'inspect:read', 'GET /api/inspect/catalog': 'inspect:read', - 'GET /api/inspect/mqe-target': 'inspect:read', 'GET /api/inspect/server-time': 'inspect:read', 'POST /api/inspect/exec': 'inspect:read', 'GET /api/inspect/entities': 'inspect:read', diff --git a/apps/ui/src/api/client.ts b/apps/ui/src/api/client.ts index 995b4ac..1652b65 100644 --- a/apps/ui/src/api/client.ts +++ b/apps/ui/src/api/client.ts @@ -443,13 +443,6 @@ export interface InspectCatalogResponse { attributionFingerprint: string; } -/** Discovered (or operator-overridden) MQE base URL. */ -export interface InspectMqeTargetResponse { - baseUrl: string; - via: string; - configured: { host?: string; port?: number }; -} - // ── Alarms wire types (BFF-only) ────────────────────────────────────── // Kept inline because every shape is BFF-shaped — getAlarm gets layer- // tagged per row, traffic is BFF-aggregated, the config is a BFF file. diff --git a/apps/ui/src/api/scopes/inspect.ts b/apps/ui/src/api/scopes/inspect.ts index 7eff4d4..ea5d51d 100644 --- a/apps/ui/src/api/scopes/inspect.ts +++ b/apps/ui/src/api/scopes/inspect.ts @@ -24,7 +24,6 @@ import type { import type { BffClient, InspectCatalogResponse, - InspectMqeTargetResponse, InspectServerTimeResponse, } from '../client'; @@ -57,11 +56,6 @@ export class InspectApi { ); } - mqeTarget(refresh = false): Promise<InspectMqeTargetResponse> { - const path = refresh ? '/api/inspect/mqe-target?refresh=true' : '/api/inspect/mqe-target'; - return this.bff.request<InspectMqeTargetResponse>('GET', path); - } - exec(req: InspectExecRequest): Promise<ExpressionResult> { return this.bff.request<ExpressionResult>('POST', '/api/inspect/exec', req); } diff --git a/apps/ui/src/features/operate/inspect/InspectView.vue b/apps/ui/src/features/operate/inspect/InspectView.vue index 6e396a3..4baa3b0 100644 --- a/apps/ui/src/features/operate/inspect/InspectView.vue +++ b/apps/ui/src/features/operate/inspect/InspectView.vue @@ -25,13 +25,12 @@ * - `GET /api/inspect/catalog` — full /inspect/metrics + Studio * attribution (source + file). * - `GET /api/inspect/entities` — per-widget entity enumeration. - * - `GET /api/inspect/mqe-target` — resolved MQE base URL. * - `POST /api/inspect/exec` — fires `execExpression` and * returns the ExpressionResult. * * Refresh: the header button invalidates every `['inspect', …]` - * vue-query key AND passes `refresh=true` to the catalog + mqe-target - * endpoints so the BFF rebuilds its attribution / dump caches. + * vue-query key AND passes `refresh=true` to the catalog endpoint so + * the BFF rebuilds its attribution cache. */ import { computed, reactive, ref, watch, watchEffect } from 'vue'; import { useI18n } from 'vue-i18n'; @@ -291,15 +290,6 @@ const inspectNotEnabled = computed(() => { return false; }); -// ─── MQE target query ────────────────────────────────────────────── - -const mqeTargetQuery = useQuery({ - queryKey: ['inspect', 'mqe-target'], - queryFn: () => bff.inspect.mqeTarget(), - staleTime: 60_000, - refetchOnWindowFocus: false, -}); - // ─── Filter state for the drawer ─────────────────────────────────── const drawerOpen = ref(false); @@ -952,16 +942,15 @@ async function rerunInspectFor(w: Widget) { // ─── Refresh ─────────────────────────────────────────────────────── async function refreshEverything() { - /* 1. Bust BFF-side caches (attribution + mqe-target + server-time). - * These imperative calls return fresh data; vue-query state is + /* 1. Bust BFF-side caches (attribution + server-time). These + * imperative calls return fresh data; vue-query state is * refreshed in step 2. */ await Promise.all([ bff.inspect.catalog(true), - bff.inspect.mqeTarget(true), bff.inspect.serverTime(true), ]); /* 2. Invalidate every vue-query under the `inspect` prefix — - * catalog / mqe-target / server-time all re-pull. */ + * catalog / server-time all re-pull. */ await queryClient.invalidateQueries({ queryKey: ['inspect'] }); /* 3. Re-resolve entities AND re-fire MQE for every widget on the * board, in parallel. We don't gate on `resolvedFetched` — a @@ -1089,26 +1078,6 @@ function scopeShort(scope: InspectScope): string { </div> </section> - <!-- MQE target --> - <section class="ins__mqe"> - <header class="ins__sectionhead"> - {{ t('mqe target') }} - <span class="ins__sectionhint"> - {{ t('where execExpression fires · resolved via /debugging/config/dump on the admin server') }} - </span> - </header> - <div class="mqe"> - <div class="mqe__row"> - <span class="ins__lbl">{{ t('effective') }}</span> - <code v-if="mqeTargetQuery.data.value" class="mqe__url">{{ mqeTargetQuery.data.value.baseUrl }}</code> - <code v-else-if="mqeTargetQuery.isPending.value" class="mqe__url">{{ t('resolving…') }}</code> - <code v-else class="mqe__url mqe__url--err">{{ t('unresolved') }}</code> - <span v-if="mqeTargetQuery.data.value" class="mqe__via">{{ mqeTargetQuery.data.value.via }}</span> - <span v-else-if="mqeTargetQuery.isError.value" class="mqe__via">{{ describeApiError(mqeTargetQuery.error.value) }}</span> - </div> - </div> - </section> - <!-- Board --> <section class="ins__board-section"> <header class="ins__sectionhead"> @@ -1498,7 +1467,7 @@ function scopeShort(scope: InspectScope): string { letter-spacing: 0; } -.ins__filters, .ins__mqe, .ins__board-section { display: flex; flex-direction: column; gap: 6px; } +.ins__filters, .ins__board-section { display: flex; flex-direction: column; gap: 6px; } .ins__filters-body { display: flex; flex-wrap: wrap; @@ -1583,20 +1552,6 @@ function scopeShort(scope: InspectScope): string { color: var(--rr-heading); } -.mqe { - background: var(--rr-bg2); - border: 1px solid var(--rr-border); - border-radius: var(--rr-radius-sm); - padding: 10px 12px; -} -.mqe__row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; } -.mqe__url { - font-family: var(--rr-font-mono); - font-size: var(--sw-fs-sm); - color: var(--rr-heading); -} -.mqe__url--err { color: var(--rr-err); } -.mqe__via { font-family: var(--rr-font-mono); font-size: var(--sw-fs-base); color: var(--rr-dim); flex: 1; } .ins__empty { padding: 24px; diff --git a/apps/ui/src/i18n/locales/de.json b/apps/ui/src/i18n/locales/de.json index 333e395..98a0799 100644 --- a/apps/ui/src/i18n/locales/de.json +++ b/apps/ui/src/i18n/locales/de.json @@ -874,7 +874,6 @@ "delete this entry (does not stop the OAP session)": "diesen Eintrag löschen (stoppt die OAP-Sitzung nicht)", "diff": "Diff", "disabled": "deaktiviert", - "effective": "effektiv", "empty family · 0 rows": "leere Familie · 0 Zeilen", "ends in": "endet auf", "entities · {metric}": "Entitäten · {metric}", @@ -910,7 +909,6 @@ "local file": "lokale Datei", "log analyzer · per-block + statement": "Log-Analyzer · pro Block + Anweisung", "meter analyzer · OTEL + log-mal": "Meter-Analyzer · OTEL + log-mal", - "mqe target": "MQE-Ziel", "mtime": "mtime", "multi · edit": "multi · bearbeiten", "must be an integer": "muss eine Ganzzahl sein", @@ -972,7 +970,6 @@ "resolves group memberships without authenticating": "löst Gruppenmitgliedschaften auf, ohne zu authentifizieren", "resolving entities…": "Entitäten werden aufgelöst…", "resolving server TZ…": "Server-Zeitzone wird aufgelöst…", - "resolving…": "wird aufgelöst…", "resume →": "fortsetzen →", "save failed": "Speichern fehlgeschlagen", "save failed: {msg}": "Speichern fehlgeschlagen: {msg}", @@ -1004,14 +1001,12 @@ "this node": "dieser Knoten", "top {n}": "Top {n}", "try a wider range or a coarser step (current: {step})": "versuche einen größeren Bereich oder einen gröberen Schritt (aktuell: {step})", - "unresolved": "unaufgelöst", "unsaved changes": "nicht gespeicherte Änderungen", "use for entities /inspect/entities did not surface.": "verwende für Entitäten, die /inspect/entities nicht zurückgegeben hat.", "username": "Benutzername", "value": "Wert", "values": "Werte", "visible": "sichtbar", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "wo execExpression feuert · aufgelöst über /debugging/config/dump auf dem Admin-Server", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "welche Sidebar-Einträge jede Rolle sieht · gesteuert durch das Lese-Verb in der letzten Spalte (das UI blendet aus; das BFF erzwingt dasselbe serverseitig)", "with": "mit", "{field} is required for scope {scope}": "{field} ist erforderlich für Scope {scope}", diff --git a/apps/ui/src/i18n/locales/en.json b/apps/ui/src/i18n/locales/en.json index b34fa73..72e8054 100644 --- a/apps/ui/src/i18n/locales/en.json +++ b/apps/ui/src/i18n/locales/en.json @@ -855,7 +855,6 @@ "delete this entry (does not stop the OAP session)": "delete this entry (does not stop the OAP session)", "diff": "diff", "disabled": "disabled", - "effective": "effective", "empty family · 0 rows": "empty family · 0 rows", "ends in": "ends in", "entities · {metric}": "entities · {metric}", @@ -891,7 +890,6 @@ "local file": "local file", "log analyzer · per-block + statement": "log analyzer · per-block + statement", "meter analyzer · OTEL + log-mal": "meter analyzer · OTEL + log-mal", - "mqe target": "mqe target", "mtime": "mtime", "multi · edit": "multi · edit", "must be an integer": "must be an integer", @@ -952,7 +950,6 @@ "resolves group memberships without authenticating": "resolves group memberships without authenticating", "resolving entities…": "resolving entities…", "resolving server TZ…": "resolving server TZ…", - "resolving…": "resolving…", "resume →": "resume →", "save failed": "save failed", "save failed: {msg}": "save failed: {msg}", @@ -984,14 +981,12 @@ "this node": "this node", "top {n}": "top {n}", "try a wider range or a coarser step (current: {step})": "try a wider range or a coarser step (current: {step})", - "unresolved": "unresolved", "unsaved changes": "unsaved changes", "use for entities /inspect/entities did not surface.": "use for entities /inspect/entities did not surface.", "username": "username", "value": "value", "values": "values", "visible": "visible", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "where execExpression fires · resolved via /debugging/config/dump on the admin server", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)", "with": "with", "{field} is required for scope {scope}": "{field} is required for scope {scope}", @@ -1456,7 +1451,6 @@ "Comparing {n} endpoints across services": "Comparing {n} endpoints across services", "Failed to load": "Failed to load", "{n} locked · lock 1 more to compare": "{n} locked · lock 1 more to compare", - "All": "All", "client send": "client send", "client receive": "client receive", "server receive": "server receive", diff --git a/apps/ui/src/i18n/locales/es.json b/apps/ui/src/i18n/locales/es.json index 6266fe0..3193901 100644 --- a/apps/ui/src/i18n/locales/es.json +++ b/apps/ui/src/i18n/locales/es.json @@ -874,7 +874,6 @@ "delete this entry (does not stop the OAP session)": "eliminar esta entrada (no detiene la sesión de OAP)", "diff": "diff", "disabled": "deshabilitado", - "effective": "efectivo", "empty family · 0 rows": "familia vacía · 0 filas", "ends in": "termina en", "entities · {metric}": "entidades · {metric}", @@ -910,7 +909,6 @@ "local file": "archivo local", "log analyzer · per-block + statement": "analizador de logs · por bloque + sentencia", "meter analyzer · OTEL + log-mal": "analizador de meters · OTEL + log-mal", - "mqe target": "objetivo de mqe", "mtime": "mtime", "multi · edit": "múltiple · editar", "must be an integer": "debe ser un entero", @@ -972,7 +970,6 @@ "resolves group memberships without authenticating": "resuelve membresías de grupo sin autenticar", "resolving entities…": "resolviendo entidades…", "resolving server TZ…": "resolviendo TZ del servidor…", - "resolving…": "resolviendo…", "resume →": "reanudar →", "save failed": "fallo al guardar", "save failed: {msg}": "fallo al guardar: {msg}", @@ -1004,14 +1001,12 @@ "this node": "este nodo", "top {n}": "top {n}", "try a wider range or a coarser step (current: {step})": "prueba un rango más amplio o un step más grueso (actual: {step})", - "unresolved": "no resuelta", "unsaved changes": "cambios sin guardar", "use for entities /inspect/entities did not surface.": "úsalo para entidades que /inspect/entities no expuso.", "username": "usuario", "value": "valor", "values": "valores", "visible": "visible", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "donde se dispara execExpression · resuelto vía /debugging/config/dump en el admin server", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "qué elementos del menú lateral ve cada rol · controlado por el verbo de lectura en la última columna (la UI oculta; el BFF aplica lo mismo del lado del servidor)", "with": "con", "{field} is required for scope {scope}": "{field} es obligatorio para el scope {scope}", diff --git a/apps/ui/src/i18n/locales/fr.json b/apps/ui/src/i18n/locales/fr.json index 218d6e8..030b322 100644 --- a/apps/ui/src/i18n/locales/fr.json +++ b/apps/ui/src/i18n/locales/fr.json @@ -874,7 +874,6 @@ "delete this entry (does not stop the OAP session)": "supprimer cette entrée (n'arrête pas la session OAP)", "diff": "diff", "disabled": "désactivé", - "effective": "effectif", "empty family · 0 rows": "famille vide · 0 ligne", "ends in": "se termine dans", "entities · {metric}": "entités · {metric}", @@ -910,7 +909,6 @@ "local file": "fichier local", "log analyzer · per-block + statement": "analyseur de logs · par bloc + instruction", "meter analyzer · OTEL + log-mal": "analyseur de meter · OTEL + log-mal", - "mqe target": "cible mqe", "mtime": "mtime", "multi · edit": "multi · éditer", "must be an integer": "doit être un entier", @@ -972,7 +970,6 @@ "resolves group memberships without authenticating": "résout les appartenances aux groupes sans authentifier", "resolving entities…": "résolution des entités…", "resolving server TZ…": "résolution du TZ serveur…", - "resolving…": "résolution…", "resume →": "reprendre →", "save failed": "échec de l'enregistrement", "save failed: {msg}": "échec de l'enregistrement : {msg}", @@ -1004,14 +1001,12 @@ "this node": "ce nœud", "top {n}": "top {n}", "try a wider range or a coarser step (current: {step})": "essayez une plage plus large ou un pas plus grossier (actuel : {step})", - "unresolved": "non résolu", "unsaved changes": "modifications non enregistrées", "use for entities /inspect/entities did not surface.": "à utiliser pour les entités que /inspect/entities n'a pas fait remonter.", "username": "nom d'utilisateur", "value": "valeur", "values": "valeurs", "visible": "visible", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "où execExpression se déclenche · résolu via /debugging/config/dump sur le serveur d'administration", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "quels éléments de la barre latérale chaque rôle voit · contrôlé par le verbe de lecture dans la dernière colonne (l'UI masque ; le BFF applique la même règle côté serveur)", "with": "avec", "{field} is required for scope {scope}": "{field} est requis pour la portée {scope}", diff --git a/apps/ui/src/i18n/locales/ja.json b/apps/ui/src/i18n/locales/ja.json index 4daa0ca..7bb58cb 100644 --- a/apps/ui/src/i18n/locales/ja.json +++ b/apps/ui/src/i18n/locales/ja.json @@ -874,7 +874,6 @@ "delete this entry (does not stop the OAP session)": "このエントリを削除(OAP セッションは停止しません)", "diff": "差分", "disabled": "無効", - "effective": "実効", "empty family · 0 rows": "空のファミリー · 0 行", "ends in": "終了まで", "entities · {metric}": "エンティティ · {metric}", @@ -910,7 +909,6 @@ "local file": "ローカルファイル", "log analyzer · per-block + statement": "ログアナライザ · ブロック単位 + ステートメント", "meter analyzer · OTEL + log-mal": "メーターアナライザ · OTEL + log-mal", - "mqe target": "MQE ターゲット", "mtime": "mtime", "multi · edit": "複数 · 編集", "must be an integer": "整数である必要があります", @@ -972,7 +970,6 @@ "resolves group memberships without authenticating": "認証せずにグループメンバーシップを解決します", "resolving entities…": "エンティティを解決しています…", "resolving server TZ…": "サーバーの TZ を解決しています…", - "resolving…": "解決しています…", "resume →": "再開 →", "save failed": "保存に失敗しました", "save failed: {msg}": "保存に失敗しました: {msg}", @@ -1004,14 +1001,12 @@ "this node": "このノード", "top {n}": "上位 {n}", "try a wider range or a coarser step (current: {step})": "より広い範囲か、より粗いステップを試してください(現在: {step})", - "unresolved": "未解決", "unsaved changes": "未保存の変更", "use for entities /inspect/entities did not surface.": "/inspect/entities が表示しなかったエンティティに使用します。", "username": "ユーザー名", "value": "値", "values": "値", "visible": "表示", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "execExpression が発火する場所 · admin サーバーの /debugging/config/dump 経由で解決", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "各ロールが参照できるサイドバー項目 · 最終列の read 動詞でゲートされます(UI は非表示にし、BFF がサーバー側で同じ制御を強制します)", "with": "with", "{field} is required for scope {scope}": "スコープ {scope} には {field} が必須です", diff --git a/apps/ui/src/i18n/locales/ko.json b/apps/ui/src/i18n/locales/ko.json index 1c04fa7..dc67187 100644 --- a/apps/ui/src/i18n/locales/ko.json +++ b/apps/ui/src/i18n/locales/ko.json @@ -874,7 +874,6 @@ "delete this entry (does not stop the OAP session)": "이 항목 삭제 (OAP 세션은 중지하지 않음)", "diff": "diff", "disabled": "비활성", - "effective": "유효", "empty family · 0 rows": "빈 패밀리 · 0행", "ends in": "종료까지", "entities · {metric}": "엔터티 · {metric}", @@ -910,7 +909,6 @@ "local file": "로컬 파일", "log analyzer · per-block + statement": "log analyzer · 블록 + 구문 단위", "meter analyzer · OTEL + log-mal": "meter analyzer · OTEL + log-mal", - "mqe target": "mqe 대상", "mtime": "mtime", "multi · edit": "다중 · 편집", "must be an integer": "정수여야 합니다", @@ -972,7 +970,6 @@ "resolves group memberships without authenticating": "인증 없이 그룹 멤버십을 해석합니다", "resolving entities…": "엔터티 해석 중…", "resolving server TZ…": "서버 TZ 해석 중…", - "resolving…": "해석 중…", "resume →": "재개 →", "save failed": "저장하지 못했습니다", "save failed: {msg}": "저장하지 못했습니다: {msg}", @@ -1004,14 +1001,12 @@ "this node": "이 노드", "top {n}": "상위 {n}", "try a wider range or a coarser step (current: {step})": "더 넓은 범위 또는 거친 단계를 시도하세요 (현재: {step})", - "unresolved": "해석되지 않음", "unsaved changes": "저장되지 않은 변경 사항", "use for entities /inspect/entities did not surface.": "/inspect/entities가 노출하지 않은 엔터티에 사용합니다.", "username": "사용자 이름", "value": "값", "values": "값", "visible": "표시됨", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "execExpression이 실행되는 위치 · admin 서버의 /debugging/config/dump를 통해 해석", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "각 역할이 보는 사이드바 항목 · 마지막 열의 읽기 권한으로 제어됨(UI에서 숨김 처리, BFF가 서버 측에서 동일하게 강제 적용)", "with": "with", "{field} is required for scope {scope}": "{field}은(는) 범위 {scope}에 필수입니다", diff --git a/apps/ui/src/i18n/locales/pt.json b/apps/ui/src/i18n/locales/pt.json index 97e0ce3..7d163eb 100644 --- a/apps/ui/src/i18n/locales/pt.json +++ b/apps/ui/src/i18n/locales/pt.json @@ -874,7 +874,6 @@ "delete this entry (does not stop the OAP session)": "excluir esta entrada (não interrompe a sessão do OAP)", "diff": "diff", "disabled": "desabilitado", - "effective": "efetivo", "empty family · 0 rows": "família vazia · 0 linhas", "ends in": "termina em", "entities · {metric}": "entidades · {metric}", @@ -910,7 +909,6 @@ "local file": "arquivo local", "log analyzer · per-block + statement": "log analyzer · por bloco + statement", "meter analyzer · OTEL + log-mal": "meter analyzer · OTEL + log-mal", - "mqe target": "alvo MQE", "mtime": "mtime", "multi · edit": "múltiplo · editar", "must be an integer": "deve ser um inteiro", @@ -972,7 +970,6 @@ "resolves group memberships without authenticating": "resolve associações de grupo sem autenticar", "resolving entities…": "resolvendo entidades…", "resolving server TZ…": "resolvendo TZ do servidor…", - "resolving…": "resolvendo…", "resume →": "retomar →", "save failed": "falha ao salvar", "save failed: {msg}": "falha ao salvar: {msg}", @@ -1004,14 +1001,12 @@ "this node": "este nó", "top {n}": "top {n}", "try a wider range or a coarser step (current: {step})": "tente um intervalo mais amplo ou um step mais grosso (atual: {step})", - "unresolved": "não resolvido", "unsaved changes": "alterações não salvas", "use for entities /inspect/entities did not surface.": "use para entidades que /inspect/entities não retornou.", "username": "usuário", "value": "valor", "values": "valores", "visible": "visível", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "onde execExpression dispara · resolvido via /debugging/config/dump no admin server", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "quais itens da barra lateral cada papel vê · controlado pelo verbo de leitura na última coluna (a UI oculta; o BFF impõe o mesmo no servidor)", "with": "com", "{field} is required for scope {scope}": "{field} é obrigatório para o escopo {scope}", diff --git a/apps/ui/src/i18n/locales/zh-CN.json b/apps/ui/src/i18n/locales/zh-CN.json index e98e124..80fd191 100644 --- a/apps/ui/src/i18n/locales/zh-CN.json +++ b/apps/ui/src/i18n/locales/zh-CN.json @@ -874,7 +874,6 @@ "delete this entry (does not stop the OAP session)": "删除该条目(不会停止 OAP 会话)", "diff": "差异", "disabled": "已禁用", - "effective": "生效", "empty family · 0 rows": "空族 · 0 行", "ends in": "结束于", "entities · {metric}": "实体 · {metric}", @@ -910,7 +909,6 @@ "local file": "本地文件", "log analyzer · per-block + statement": "日志分析器 · 按区块 + 语句", "meter analyzer · OTEL + log-mal": "Meter 分析器 · OTEL + log-mal", - "mqe target": "MQE 目标", "mtime": "修改时间", "multi · edit": "多选 · 编辑", "must be an integer": "必须为整数", @@ -972,7 +970,6 @@ "resolves group memberships without authenticating": "在不进行身份认证的情况下解析组成员关系", "resolving entities…": "解析实体中…", "resolving server TZ…": "解析服务器时区中…", - "resolving…": "解析中…", "resume →": "继续 →", "save failed": "保存失败", "save failed: {msg}": "保存失败:{msg}", @@ -1004,14 +1001,12 @@ "this node": "本节点", "top {n}": "前 {n}", "try a wider range or a coarser step (current: {step})": "请尝试更宽的时间范围或更粗的 step(当前:{step})", - "unresolved": "未解析", "unsaved changes": "未保存的修改", "use for entities /inspect/entities did not surface.": "用于 /inspect/entities 未返回的实体。", "username": "用户名", "value": "值", "values": "值", "visible": "可见", - "where execExpression fires · resolved via /debugging/config/dump on the admin server": "execExpression 触发位置 · 通过管理端的 /debugging/config/dump 解析", "which sidebar items each role sees · gated by the read verb in the last column (UI hides; the BFF enforces the same server-side)": "每个角色看到的侧边栏条目 · 由最后一列的读权限控制(UI 隐藏;BFF 在服务端执行同样的限制)", "with": "与", "{field} is required for scope {scope}": "{field} 在 {scope} 范围下为必填项",
