connect tailscale node status through platform gateway
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-07-08 17:51:16 +09:00
parent 90a22c098c
commit 38fe8bf098
17 changed files with 655 additions and 649 deletions
+18 -12
View File
@@ -36,9 +36,12 @@ import { RuntimeLogsPage as RuntimeLogsApiPage } from './pages/runtime/RuntimeLo
import { LauncherBuildPage } from './pages/launcher/LauncherBuildPage';
import { LauncherSourcePage } from './pages/launcher/LauncherSourcePage';
import { LauncherAppsPage as LauncherAppsApiPage } from './pages/launcher/LauncherAppsPage';
import { LauncherCommonSettingsPage as LauncherCommonSettingsApiPage } from './pages/launcher/LauncherCommonSettingsPage';
import { LauncherComponentsPage } from './pages/launcher/LauncherComponentsPage';
import { LauncherVersionsPage as LauncherVersionsApiPage } from './pages/launcher/LauncherVersionsPage';
import { CommonAppBuildPage } from './pages/common-apps/CommonAppBuildPage';
import { CommonAppComponentsPage } from './pages/common-apps/CommonAppComponentsPage';
import { CommonAppSourcePage } from './pages/common-apps/CommonAppSourcePage';
import { LoadingModal, useMinimumLoading } from './pages/operations/operation-utils';
import {
AgentCommandsPage as AgentCommandsRestoredPage,
AgentInstallStatusPage as AgentInstallStatusRestoredPage,
@@ -49,19 +52,20 @@ import {
GatewayDevicesPage as GatewayDevicesRestoredPage,
GatewayStatusPage as GatewayStatusRestoredPage,
TailscaleAclPage as TailscaleAclRestoredPage,
TailscaleDiagnosticsPage as TailscaleDiagnosticsRestoredPage,
TailscaleRoutesPage as TailscaleRoutesRestoredPage,
TailscaleStatusPage as TailscaleStatusRestoredPage
} from './pages/RestoredPages';
type ViewKey =
| 'dashboard'
| 'commonSources'
| 'commonBuilds'
| 'commonComponents'
| 'launcherSources'
| 'launcherBuilds'
| 'launcherVersions'
| 'launcherComponents'
| 'launcherApps'
| 'launcherCommonSettings'
| 'notices'
| 'appManagement'
| 'appRepositories'
@@ -76,7 +80,6 @@ type ViewKey =
| 'tailscaleStatus'
| 'tailscaleRoutes'
| 'tailscaleAcl'
| 'tailscaleDiagnostics'
| 'agentRegistration'
| 'agentInstallStatus'
| 'agentSshKeys'
@@ -95,7 +98,6 @@ const viewByLabel: Record<string, ViewKey> = {
'버전 관리': 'launcherVersions',
구성요소: 'launcherComponents',
'앱 연결': 'launcherApps',
'공통 설정': 'launcherCommonSettings',
공지사항: 'notices',
'앱 관리': 'appManagement',
'저장소 관리': 'appRepositories',
@@ -111,7 +113,6 @@ const viewByLabel: Record<string, ViewKey> = {
'노드 현황': 'tailscaleStatus',
라우트: 'tailscaleRoutes',
ACL: 'tailscaleAcl',
'연결 진단': 'tailscaleDiagnostics',
'장비 등록': 'agentRegistration',
'설치 상태': 'agentInstallStatus',
'SSH 키 배포': 'agentSshKeys',
@@ -127,12 +128,14 @@ const viewByLabel: Record<string, ViewKey> = {
const pathByView: Record<ViewKey, string> = {
dashboard: '/dashboard',
commonSources: '/common-apps/sources',
commonBuilds: '/common-apps/builds',
commonComponents: '/common-apps/components',
launcherSources: '/launcher/sources',
launcherBuilds: '/launcher/builds',
launcherVersions: '/launcher/versions',
launcherComponents: '/launcher/components',
launcherApps: '/launcher/apps',
launcherCommonSettings: '/launcher/common-settings',
notices: '/operations/notices',
appManagement: '/applications/apps',
appRepositories: '/applications/repositories',
@@ -147,7 +150,6 @@ const pathByView: Record<ViewKey, string> = {
tailscaleStatus: '/tailscale/status',
tailscaleRoutes: '/tailscale/routes',
tailscaleAcl: '/tailscale/acl',
tailscaleDiagnostics: '/tailscale/diagnostics',
agentRegistration: '/agents/registration',
agentInstallStatus: '/agents/install-status',
agentSshKeys: '/agents/ssh-keys',
@@ -1388,6 +1390,7 @@ function DashboardPage({
const [dashboardNotices, setDashboardNotices] = useState<ApiNotice[]>([]);
const [runtimeResources, setRuntimeResources] = useState<DashboardRuntimeResource[]>([]);
const [dashboardLoading, setDashboardLoading] = useState(true);
const loadingVisible = useMinimumLoading(dashboardLoading);
useEffect(() => {
let mounted = true;
@@ -1486,6 +1489,7 @@ function DashboardPage({
<ContainerPanel resources={runtimeResources} loading={dashboardLoading} onOpen={onRuntimeLogsOpen} />
<NoticePanel notices={dashboardNotices} loading={dashboardLoading} onOpen={onNoticesOpen} />
</div>
<LoadingModal open={loadingVisible} />
</>
);
}
@@ -1538,6 +1542,12 @@ function App() {
const renderView = () => {
switch (activeView) {
case 'commonSources':
return <CommonAppSourcePage />;
case 'commonBuilds':
return <CommonAppBuildPage />;
case 'commonComponents':
return <CommonAppComponentsPage />;
case 'launcherVersions':
return <LauncherVersionsApiPage />;
case 'launcherComponents':
@@ -1548,8 +1558,6 @@ function App() {
return <LauncherBuildPage />;
case 'launcherApps':
return <LauncherAppsApiPage />;
case 'launcherCommonSettings':
return <LauncherCommonSettingsApiPage />;
case 'notices':
return <NoticesApiPage />;
case 'adminManagement':
@@ -1587,8 +1595,6 @@ function App() {
return <TailscaleRoutesRestoredPage />;
case 'tailscaleAcl':
return <TailscaleAclRestoredPage />;
case 'tailscaleDiagnostics':
return <TailscaleDiagnosticsRestoredPage />;
case 'agentRegistration':
return <AgentRegistrationRestoredPage />;
case 'agentInstallStatus':