├── .github └── workflows │ └── build.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── backend ├── .gitignore ├── README.md ├── backend ├── go.mod ├── go.sum ├── internal │ ├── config │ │ └── config.go │ ├── handlers │ │ └── handlers.go │ ├── services │ │ └── tailscale.go │ └── utils │ │ └── http.go └── main.go ├── docker-compose.yml ├── env.example ├── frontend ├── .eslintignore ├── .gitignore ├── eslint.config.mjs ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ └── favicon.svg ├── src │ ├── App.tsx │ ├── components │ │ ├── DeviceList.tsx │ │ ├── EmptyState.tsx │ │ ├── ErrorBoundary.tsx │ │ ├── FilterPanel.tsx │ │ ├── LoadingSkeleton.tsx │ │ ├── LogViewer.tsx │ │ ├── MetricCard.tsx │ │ ├── NetworkEdge.tsx │ │ ├── NetworkGraph.tsx │ │ ├── NetworkNode.tsx │ │ ├── ReactFlowGraph.tsx │ │ ├── ThemeToggle.tsx │ │ ├── VirtualizedTable.tsx │ │ └── __tests__ │ │ │ ├── ErrorBoundary.test.tsx │ │ │ └── LoadingSkeleton.test.tsx │ ├── contexts │ │ └── ThemeContext.tsx │ ├── hooks │ │ ├── useDebounce.ts │ │ ├── useElkLayout.ts │ │ └── useForceLayout.ts │ ├── index.css │ ├── lib │ │ ├── __tests__ │ │ │ └── validation.test.ts │ │ ├── api.ts │ │ ├── store.ts │ │ ├── time.ts │ │ ├── timeUtils.ts │ │ └── validation.ts │ ├── main.tsx │ ├── pages │ │ ├── DeviceDetails.tsx │ │ └── NetworkView.tsx │ ├── test │ │ ├── setup.ts │ │ └── utils.tsx │ ├── types │ │ └── tailscale.ts │ ├── utils │ │ ├── networkTypes.ts │ │ └── networkUtils.ts │ └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── vitest.config.ts └── k8s ├── deployment.yaml ├── httproute.yaml ├── kustomization.yaml ├── secret.yaml └── service.yaml /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/README.md -------------------------------------------------------------------------------- /backend/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/.gitignore -------------------------------------------------------------------------------- /backend/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/README.md -------------------------------------------------------------------------------- /backend/backend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/backend -------------------------------------------------------------------------------- /backend/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/go.mod -------------------------------------------------------------------------------- /backend/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/go.sum -------------------------------------------------------------------------------- /backend/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/internal/config/config.go -------------------------------------------------------------------------------- /backend/internal/handlers/handlers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/internal/handlers/handlers.go -------------------------------------------------------------------------------- /backend/internal/services/tailscale.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/internal/services/tailscale.go -------------------------------------------------------------------------------- /backend/internal/utils/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/internal/utils/http.go -------------------------------------------------------------------------------- /backend/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/backend/main.go -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/env.example -------------------------------------------------------------------------------- /frontend/.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/.eslintignore -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/.gitignore -------------------------------------------------------------------------------- /frontend/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/eslint.config.mjs -------------------------------------------------------------------------------- /frontend/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/index.html -------------------------------------------------------------------------------- /frontend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/package-lock.json -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/package.json -------------------------------------------------------------------------------- /frontend/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/postcss.config.js -------------------------------------------------------------------------------- /frontend/public/favicon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/public/favicon.svg -------------------------------------------------------------------------------- /frontend/src/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/App.tsx -------------------------------------------------------------------------------- /frontend/src/components/DeviceList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/DeviceList.tsx -------------------------------------------------------------------------------- /frontend/src/components/EmptyState.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/EmptyState.tsx -------------------------------------------------------------------------------- /frontend/src/components/ErrorBoundary.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/ErrorBoundary.tsx -------------------------------------------------------------------------------- /frontend/src/components/FilterPanel.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/FilterPanel.tsx -------------------------------------------------------------------------------- /frontend/src/components/LoadingSkeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/LoadingSkeleton.tsx -------------------------------------------------------------------------------- /frontend/src/components/LogViewer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/LogViewer.tsx -------------------------------------------------------------------------------- /frontend/src/components/MetricCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/MetricCard.tsx -------------------------------------------------------------------------------- /frontend/src/components/NetworkEdge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/NetworkEdge.tsx -------------------------------------------------------------------------------- /frontend/src/components/NetworkGraph.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/NetworkGraph.tsx -------------------------------------------------------------------------------- /frontend/src/components/NetworkNode.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/NetworkNode.tsx -------------------------------------------------------------------------------- /frontend/src/components/ReactFlowGraph.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/ReactFlowGraph.tsx -------------------------------------------------------------------------------- /frontend/src/components/ThemeToggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/ThemeToggle.tsx -------------------------------------------------------------------------------- /frontend/src/components/VirtualizedTable.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/VirtualizedTable.tsx -------------------------------------------------------------------------------- /frontend/src/components/__tests__/ErrorBoundary.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/__tests__/ErrorBoundary.test.tsx -------------------------------------------------------------------------------- /frontend/src/components/__tests__/LoadingSkeleton.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/components/__tests__/LoadingSkeleton.test.tsx -------------------------------------------------------------------------------- /frontend/src/contexts/ThemeContext.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/contexts/ThemeContext.tsx -------------------------------------------------------------------------------- /frontend/src/hooks/useDebounce.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/hooks/useDebounce.ts -------------------------------------------------------------------------------- /frontend/src/hooks/useElkLayout.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/hooks/useElkLayout.ts -------------------------------------------------------------------------------- /frontend/src/hooks/useForceLayout.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/hooks/useForceLayout.ts -------------------------------------------------------------------------------- /frontend/src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/index.css -------------------------------------------------------------------------------- /frontend/src/lib/__tests__/validation.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/lib/__tests__/validation.test.ts -------------------------------------------------------------------------------- /frontend/src/lib/api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/lib/api.ts -------------------------------------------------------------------------------- /frontend/src/lib/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/lib/store.ts -------------------------------------------------------------------------------- /frontend/src/lib/time.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/lib/time.ts -------------------------------------------------------------------------------- /frontend/src/lib/timeUtils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/lib/timeUtils.ts -------------------------------------------------------------------------------- /frontend/src/lib/validation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/lib/validation.ts -------------------------------------------------------------------------------- /frontend/src/main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/main.tsx -------------------------------------------------------------------------------- /frontend/src/pages/DeviceDetails.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/pages/DeviceDetails.tsx -------------------------------------------------------------------------------- /frontend/src/pages/NetworkView.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/pages/NetworkView.tsx -------------------------------------------------------------------------------- /frontend/src/test/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/test/setup.ts -------------------------------------------------------------------------------- /frontend/src/test/utils.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/test/utils.tsx -------------------------------------------------------------------------------- /frontend/src/types/tailscale.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/types/tailscale.ts -------------------------------------------------------------------------------- /frontend/src/utils/networkTypes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/utils/networkTypes.ts -------------------------------------------------------------------------------- /frontend/src/utils/networkUtils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/utils/networkUtils.ts -------------------------------------------------------------------------------- /frontend/src/vite-env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/src/vite-env.d.ts -------------------------------------------------------------------------------- /frontend/tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/tailwind.config.js -------------------------------------------------------------------------------- /frontend/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/tsconfig.json -------------------------------------------------------------------------------- /frontend/tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/tsconfig.node.json -------------------------------------------------------------------------------- /frontend/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/vite.config.ts -------------------------------------------------------------------------------- /frontend/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/frontend/vitest.config.ts -------------------------------------------------------------------------------- /k8s/deployment.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/k8s/deployment.yaml -------------------------------------------------------------------------------- /k8s/httproute.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/k8s/httproute.yaml -------------------------------------------------------------------------------- /k8s/kustomization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/k8s/kustomization.yaml -------------------------------------------------------------------------------- /k8s/secret.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/k8s/secret.yaml -------------------------------------------------------------------------------- /k8s/service.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajsinghtech/tsflow/HEAD/k8s/service.yaml --------------------------------------------------------------------------------