internal/

directory
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2026 License: MIT

Directories

Path Synopsis
Package adminapi implements the panel JSON API mounted at /api/v1/admin: cookie sessions (auth_tokens kind=web), CSRF double-submit (X-CSRF-Token), TOTP, OIDC panel login and CRUD for users, groups, devices, address books, audit, identity providers, server control and settings.
Package adminapi implements the panel JSON API mounted at /api/v1/admin: cookie sessions (auth_tokens kind=web), CSRF double-submit (X-CSRF-Token), TOTP, OIDC panel login and CRUD for users, groups, devices, address books, audit, identity providers, server control and settings.
Package app wires configuration, storage, auth primitives and HTTP handlers into a runnable server, and implements the rdpanel command line.
Package app wires configuration, storage, auth primitives and HTTP handlers into a runnable server, and implements the rdpanel command line.
Package auth implements credential primitives: password hashing and verification (argon2id, bcrypt, legacy rustdesk-api md5), client JWTs, opaque session tokens, TOTP, recovery codes and login rate limiting.
Package auth implements credential primitives: password hashing and verification (argon2id, bcrypt, legacy rustdesk-api md5), client JWTs, opaque session tokens, TOTP, recovery codes and login rate limiting.
Package buildinfo exposes version metadata injected at link time:
Package buildinfo exposes version metadata injected at link time:
Package clientapi implements the RustDesk client wire API mounted at /api (login, logout, currentUser, address books, accessible users/peers, heartbeat, sysinfo, audit, device provisioning).
Package clientapi implements the RustDesk client wire API mounted at /api (login, logout, currentUser, address books, accessible users/peers, heartbeat, sysinfo, audit, device provisioning).
Package config loads and validates rdpanel configuration.
Package config loads and validates rdpanel configuration.
Package crypto provides authenticated encryption for secrets at rest, key file management, random tokens and token hashing.
Package crypto provides authenticated encryption for secrets at rest, key file management, random tokens and token hashing.
Package db opens the SQLite database, applies embedded goose migrations and provides transaction helpers shared by the repositories in internal/store.
Package db opens the SQLite database, applies embedded goose migrations and provides transaction helpers shared by the repositories in internal/store.
Package events is the in-process pub/sub for presence, device, audit and hbbs health events, exposed to the panel as Server-Sent Events at /api/v1/events.
Package events is the in-process pub/sub for presence, device, audit and hbbs health events, exposed to the panel as Server-Sent Events at /api/v1/events.
hbbs
control
Package control is a typed client for the hbbs/hbbr loopback admin channels (docs/research/hbbs-integration.md §1).
Package control is a typed client for the hbbs/hbbr loopback admin channels (docs/research/hbbs-integration.md §1).
hbbstest
Package hbbstest provides test doubles for hbbs/hbbr.
Package hbbstest provides test doubles for hbbs/hbbr.
presence
Package presence polls hbbs for the online state of every known device.
Package presence polls hbbs for the online state of every known device.
reconcile
Package reconcile keeps hbbs/hbbr runtime settings in line with the desired state stored in the panel database (server_settings).
Package reconcile keeps hbbs/hbbr runtime settings in line with the desired state stored in the panel database (server_settings).
relaystats
Package relaystats exports hbbr relay activity as Prometheus gauges.
Package relaystats exports hbbr relay activity as Prometheus gauges.
wire
Package wire hand-encodes the tiny subset of the hbbs rendezvous protocol the panel needs: the length-prefixed TCP framing used by hbbs/hbbr and the RendezvousMessage envelope carrying OnlineRequest / OnlineResponse / KeyExchange.
Package wire hand-encodes the tiny subset of the hbbs rendezvous protocol the panel needs: the length-prefixed TCP framing used by hbbs/hbbr and the RendezvousMessage envelope carrying OnlineRequest / OnlineResponse / KeyExchange.
Package httpx contains HTTP middleware and helpers shared by every API surface: client IP resolution, request logging, panic recovery, metrics and JSON error responses.
Package httpx contains HTTP middleware and helpers shared by every API surface: client IP resolution, request logging, panic recovery, metrics and JSON error responses.
Package legacy imports a lejianwen/rustdesk-api v2.7 SQLite database (`rustdeskapi.db`) into the RD Panel schema.
Package legacy imports a lejianwen/rustdesk-api v2.7 SQLite database (`rustdeskapi.db`) into the RD Panel schema.
Package loginlog is a minimal writer for the login_events table used by the panel login and the OIDC flows (stream B1).
Package loginlog is a minimal writer for the login_events table used by the panel login and the OIDC flows (stream B1).
Package mail sends the panel's transactional e-mails (address verification, sign-in codes, password reset, test message) over SMTP with net/smtp: implicit TLS, STARTTLS or plain, PLAIN/LOGIN authentication, and multipart/alternative (text + minimal HTML) bodies.
Package mail sends the panel's transactional e-mails (address verification, sign-in codes, password reset, test message) over SMTP with net/smtp: implicit TLS, STARTTLS or plain, PLAIN/LOGIN authentication, and multipart/alternative (text + minimal HTML) bodies.
mailtest
Package mailtest is an in-process fake SMTP server for tests: it speaks enough ESMTP (EHLO, STARTTLS, AUTH PLAIN/LOGIN, MAIL, RCPT, DATA) for net/smtp and records every accepted message.
Package mailtest is an in-process fake SMTP server for tests: it speaks enough ESMTP (EHLO, STARTTLS, AUTH PLAIN/LOGIN, MAIL, RCPT, DATA) for net/smtp and records every accepted message.
Package mailauth implements the e-mail based account features on top of internal/mail: the effective SMTP configuration (environment/config file, or the panel settings with an AEAD-sealed password), address verification codes, the e-mail second factor (panel login and the RustDesk client /api/login "email_check" step) and password reset links.
Package mailauth implements the e-mail based account features on top of internal/mail: the effective SMTP configuration (environment/config file, or the panel settings with an AEAD-sealed password), address verification codes, the e-mail second factor (panel login and the RustDesk client /api/login "email_check" step) and password reset links.
Package metrics holds the panel's business counters (logins, client tokens, client audit records) and the build-info gauge.
Package metrics holds the panel's business counters (logins, client tokens, client audit records) and the build-info gauge.
Package oidc implements login with external identity providers (GitHub, Google, generic OpenID Connect with discovery) for both the RustDesk client (/api/oidc/*, polling) and the panel (cookie session), plus linking identities to existing accounts.
Package oidc implements login with external identity providers (GitHub, Google, generic OpenID Connect with discovery) for both the RustDesk client (/api/oidc/*, polling) and the panel (cookie session), plus linking identities to existing accounts.
oidctest
Package oidctest provides fake identity providers (generic OIDC with discovery + signed ID tokens, and GitHub) for tests.
Package oidctest provides fake identity providers (generic OIDC with discovery + signed ID tokens, and GitHub) for tests.
Package store holds typed repositories over the panel database.
Package store holds typed repositories over the panel database.
Package updatecheck looks up the latest RD Panel release on GitHub for the About page.
Package updatecheck looks up the latest RD Panel release on GitHub for the About page.
Package web serves the embedded single-page app and sets security headers.
Package web serves the embedded single-page app and sets security headers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL