Skip to content

138 dockstatwidgets - #139

Open
Its4Nik wants to merge 28 commits into
devfrom
138-dockstatwidgets
Open

138 dockstatwidgets#139
Its4Nik wants to merge 28 commits into
devfrom
138-dockstatwidgets

Conversation

@Its4Nik

@Its4Nik Its4Nik commented Jul 25, 2026

Copy link
Copy Markdown
Owner

No description provided.

Its4Nik added 8 commits July 9, 2026 15:44
…: Correct Websocket usage for new pub/sub pattern.
- React Flow data-pipe graph editor with node palette and
  property panel
- Node template registry shared between backend and frontend
- Advanced transformers: groupBy, pivot, flatten, topN, window,
  mapFields
- WebSocket data source provider for live data in data-pipes
- Default widget manifest (gauge, bar chart, heatmap, honeycomb)
- Frontend hooks for dashboard and dataflow mutations/queries
- Reuse useLocalLogin hook in LocalRegistration to
  automatically log in after successful account creation
- Clear stale auth data from localStorage on login failure
- Bump @elysiajs/eden, turbo, and @changesets/cli
- Comment out tsgo language server override in Zed config
- Avoid explicit `any` or generic `Elysia` return type annotations in
  WS/widget route handlers to prevent route map collapse.
- Refine `MutationInput` helper type in `packages/utils`.
- Update `docknode` exports and improve type safety in API routes.
- Decouple `widgets` package from explicit `@dockstat/api` TS reference.
- Add CSS overrides for React Flow surfaces using @dockstat/ui tokens
- Replace Card components with plain buttons in NodePalette
- Update PropertyPanel and DataPipeNodes to use design token classes
- Add serializeDataPipeGraph to convert React Flow graph to API format
- Add prepareQuery and prepareMutateRoute to Eden Client
- Add debugLog option to useTopicSubscription
- Migrate `EdenClientContext` to a central `EdenProvider` and use the
  `useEdenClient` hook for cleaner consumption.
- Consolidate widget dashboard subscriptions to use the shared
  `/api/v2/ws` connection instead of a dedicated endpoint.
- Update `WSTopicHandler` to accept arbitrary string topics for improved
  WebSocket subsystem reuse.
- Optimize dashboard minimap and node handles with theme-aware styling.
- Add pure SVG renderers for all built-in widgets
- Integrate react-grid-layout for dashboard drag and resize
- Apply themed visual styles to dataflow editor nodes
- Define process.env.NODE_ENV in Vite for browser support
@Its4Nik Its4Nik added this to the DockStat v1 - BETA milestone Jul 25, 2026
@Its4Nik Its4Nik self-assigned this Jul 25, 2026
@Its4Nik Its4Nik added this to DockStat Jul 25, 2026
@github-project-automation github-project-automation Bot moved this to Todo in DockStat Jul 25, 2026
@changeset-bot

changeset-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: a2e0905

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @Its4Nik, your pull request is larger than the review limit of 150000 diff characters

@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8668ef3d-be3d-47a1-a1be-b7ad3cb09e3e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 138-dockstatwidgets

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Its4Nik added 7 commits July 25, 2026 14:55
…dling

- Add imperative `call` method to Eden Client for one-off API requests
- Implement automatic 401 redirect to logout across all queries/mutations
- Add `skipAuthHandler` option for auth endpoints (login, allow-guest, providers)
- Create AuthEdenBridge to connect AuthProvider logout with Eden Client
- Refactor all API calls from manual getAuthHeaders() to Eden Client pattern
- Add dashboard "Set as Default" functionality with improved UX
- Add WebSocket listTopics internal command support
- Remove getAuthHeaders() utility function
…-sessions table, /auth/revoke endpoint, cookie cleanup on logout, skipRedirect option, and automatic auth token sync with Eden client.

dockstat/dataflow: Convert NODE_TEMPLATES to a function accepting getWsTopics for dynamic topic options; fix NodePalette layout (full height, scrolling, spacing); pass topics through to PropertyPanel.
ui/Input: Add autoFocus prop.
Want me to commit with this message?
feat(auth): add session management with JWT revocation

- Add auth-sessions table to track JWTs server-side
- Add /auth/revoke endpoint to revoke sessions
- Clear auth cookie and revoke session on logout
- Support skipRedirect option in logout for soft logout
- Sync auth token with Eden client automatically
- Check session validity in middleware (HTTP + WS)

feat(dockstat): dynamic WS topics in dataflow node templates

- Convert NODE_TEMPLATES to a function accepting getWsTopics
- Add "array" and function FieldType for dynamic select options
- Pass getWsTopics through to PropertyPanel
- Fix NodePalette layout: full height, min-h-0, consistent spacing

feat(ui): add autoFocus prop to Input component
- DataflowPage: begin integrating useWsTopics hook for PropertyPanel
- Add opencode agent skills (elysiajs, tanstack-query, react best practices)
- Add skills-lock.json
…tering

Certificate Management:
- New CertificateService supporting SSH (Ed25519/RSA/ECDSA), Docker TLS,
  WebUI TLS, CA, and generic secret generation via node:crypto + selfsigned
- AES-256-GCM encryption at rest with PBKDF2 key derivation from
  DOCKSTAT_CERT_MASTER_KEY env var
- Full CRUD routes: list, get, generate, import, external ref, update,
  delete, reveal (decrypt), and resolve (internal API for backend services)
- certificates_table in SQLite with UUID primary key
- Frontend: settings slide with generate/import/external tabs, cert list
  with reveal/edit/delete, Eden treaty hooks for queries and mutations

WebSocket Topic Filtering:
- Add availableTopics() to DSWebSockerHandler that merges active WS topics
  with internal subscribers, excluding dashboard sink topics
  (widgets/dashboard/*) so only real data sources are listed
- Expose via authenticated GET /ws/topics HTTP route
- Wire useWsTopics hook through DataflowPage -> PropertyPanel -> Field,
  rendering a dynamic dropdown for the websocket-source node's topic field
  using the existing NODE_TEMPLATES({ getWsTopics }) function pattern
…oute naming

- Convert all route imports to lazy() for code splitting with Suspense fallback
- Add Vite manualChunks for grid-layout, motion, query-vendor, react-vendor, xyflow
- Wrap provider values and layout props in useMemo/useCallback to reduce re-renders
- Replace .find()/.includes() array lookups with Map/Set O(1) lookups
- Replace Math.min/Math.max with single-pass for-loops in widget components
- Remove console.log statements and unused imports
- Add Elysia name properties to routes for Eden treaty compatibility
- Parallelize independent API calls in stacks page
- Add cancellation logic to useLocalAuthCheck effect
@gitguardian

gitguardian Bot commented Jul 28, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
35245168 Triggered SMTP credentials 98ceb32 .agents/skills/elysiajs/integrations/react-email.md View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant