From ca3fe7150bbb6008e379dab18cf1b8dd587e912e Mon Sep 17 00:00:00 2001 From: Khairul Hidayat Date: Fri, 8 Nov 2024 15:09:32 +0700 Subject: [PATCH] tidy up --- frontend/app/{ => term}/index.tsx | 38 +++++++++---------- .../containers/interactive-session.tsx | 10 ++--- server/.env.example | 5 +++ server/app/ws/term.go | 5 ++- server/go.mod | 2 +- server/go.sum | 10 ++++- 6 files changed, 40 insertions(+), 30 deletions(-) rename frontend/app/{ => term}/index.tsx (81%) create mode 100644 server/.env.example diff --git a/frontend/app/index.tsx b/frontend/app/term/index.tsx similarity index 81% rename from frontend/app/index.tsx rename to frontend/app/term/index.tsx index 7de956a..c53ba69 100644 --- a/frontend/app/index.tsx +++ b/frontend/app/term/index.tsx @@ -15,25 +15,25 @@ const HomePage = () => { type: "ssh", params: { hostId: "01jc3v9w609f8e2wzw60amv195" }, }, - { - id: "2", - type: "pve", - params: { client: "vnc", hostId: "01jc3wp2b3zvgr777f4e3caw4w" }, - }, - { - id: "3", - type: "pve", - params: { client: "xtermjs", hostId: "01jc3z3yyn2fgb77tyfxc1tkfy" }, - }, - { - id: "4", - type: "incus", - params: { - client: "xtermjs", - hostId: "01jc3xz9db0v54dg10hk70a13b", - shell: "fish", - }, - }, + // { + // id: "2", + // type: "pve", + // params: { client: "vnc", hostId: "01jc3wp2b3zvgr777f4e3caw4w" }, + // }, + // { + // id: "3", + // type: "pve", + // params: { client: "xtermjs", hostId: "01jc3z3yyn2fgb77tyfxc1tkfy" }, + // }, + // { + // id: "4", + // type: "incus", + // params: { + // client: "xtermjs", + // hostId: "01jc3xz9db0v54dg10hk70a13b", + // shell: "fish", + // }, + // }, ]); const [curSession, setSession] = useState(0); diff --git a/frontend/components/containers/interactive-session.tsx b/frontend/components/containers/interactive-session.tsx index 8262db5..3cc0ff7 100644 --- a/frontend/components/containers/interactive-session.tsx +++ b/frontend/components/containers/interactive-session.tsx @@ -5,16 +5,12 @@ import VNCViewer from "./vncviewer"; type SSHSessionProps = { type: "ssh"; - params: { - hostId: string; - }; }; type PVESessionProps = { type: "pve"; params: { client: "vnc" | "xtermjs"; - hostId: string; }; }; @@ -22,15 +18,15 @@ type IncusSessionProps = { type: "incus"; params: { client: "vnc" | "xtermjs"; - hostId: string; shell?: string; }; }; -export type InteractiveSessionProps = +export type InteractiveSessionProps = { params: { hostId: string } } & ( | SSHSessionProps | PVESessionProps - | IncusSessionProps; + | IncusSessionProps +); const InteractiveSession = ({ type, params }: InteractiveSessionProps) => { const query = new URLSearchParams(params); diff --git a/server/.env.example b/server/.env.example new file mode 100644 index 0000000..e61fe68 --- /dev/null +++ b/server/.env.example @@ -0,0 +1,5 @@ + +DATABASE_URL= + +# Generate a 32-byte (256-bit) key for AES-256 encryption using `openssl rand -base64 32` +ENCRYPTION_KEY="" diff --git a/server/app/ws/term.go b/server/app/ws/term.go index 4370b57..f09f04a 100644 --- a/server/app/ws/term.go +++ b/server/app/ws/term.go @@ -1,6 +1,8 @@ package ws import ( + "log" + "github.com/gofiber/contrib/websocket" "rul.sh/vaulterm/app/hosts" "rul.sh/vaulterm/lib" @@ -11,9 +13,10 @@ func HandleTerm(c *websocket.Conn) { hostId := c.Query("hostId") hostRepo := hosts.NewHostsRepository() - data, _ := hostRepo.Get(hostId) + data, err := hostRepo.Get(hostId) if data == nil { + log.Printf("Cannot find host! Error: %s\n", err.Error()) c.WriteMessage(websocket.TextMessage, []byte("Host not found")) return } diff --git a/server/go.mod b/server/go.mod index 03ba620..cb5429d 100644 --- a/server/go.mod +++ b/server/go.mod @@ -11,6 +11,7 @@ require ( github.com/oklog/ulid/v2 v2.1.0 github.com/stretchr/testify v1.9.0 golang.org/x/crypto v0.28.0 + gorm.io/datatypes v1.2.4 gorm.io/driver/postgres v1.5.9 gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.12 @@ -50,6 +51,5 @@ require ( golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.19.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gorm.io/datatypes v1.2.4 // indirect gorm.io/driver/mysql v1.5.6 // indirect ) diff --git a/server/go.sum b/server/go.sum index 7a78e3c..9979d05 100644 --- a/server/go.sum +++ b/server/go.sum @@ -15,12 +15,14 @@ github.com/gofiber/contrib/websocket v1.3.2 h1:AUq5PYeKwK50s0nQrnluuINYeep1c4nRC github.com/gofiber/contrib/websocket v1.3.2/go.mod h1:07u6QGMsvX+sx7iGNCl5xhzuUVArWwLQ3tBIH24i+S8= github.com/gofiber/fiber/v2 v2.52.5 h1:tWoP1MJQjGEe4GB5TUGOi7P2E0ZMMRx5ZTG4rT+yGMo= github.com/gofiber/fiber/v2 v2.52.5/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= +github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= @@ -48,6 +50,8 @@ github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZ github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= +github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= @@ -98,6 +102,8 @@ gorm.io/driver/postgres v1.5.9 h1:DkegyItji119OlcaLjqN11kHoUgZ/j13E0jkJZgD6A8= gorm.io/driver/postgres v1.5.9/go.mod h1:DX3GReXH+3FPWGrrgffdvCk3DQ1dwDPdmbenSkweRGI= gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= +gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= +gorm.io/driver/sqlserver v1.4.1/go.mod h1:DJ4P+MeZbc5rvY58PnmN1Lnyvb5gw5NPzGshHDnJLig= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8= gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=