Releases: shellhub-io/shellhub
v0.21.4
What's Changed
- ui: bump vuetify from 3.11.0 to 3.11.2 in /ui by @dependabot[bot] in #5602
- ui: bump typescript-eslint from 8.48.0 to 8.48.1 in /ui by @dependabot[bot] in #5596
- fix(ui): fix
MemberInvite's email label spacing by @luizhf42 in #5608 - chore(deps): bump actions/setup-node from 6.0.0 to 6.1.0 by @dependabot[bot] in #5607
- cli: bump github.com/spf13/cobra from 1.10.1 to 1.10.2 in /cli by @dependabot[bot] in #5601
- ui: bump express from 4.21.2 to 4.22.1 in /ui by @dependabot[bot] in #5599
- agent: bump github.com/spf13/cobra from 1.10.1 to 1.10.2 in /agent by @dependabot[bot] in #5597
- api: bump github.com/spf13/cobra from 1.10.1 to 1.10.2 in /api by @dependabot[bot] in #5598
- docker: api: bump alpine from 3.22.2 to 3.23.0 in /api by @dependabot[bot] in #5606
- docker: ssh: bump alpine from 3.22.2 to 3.23.0 in /ssh by @dependabot[bot] in #5605
- docker: cli: bump alpine from 3.22.2 to 3.23.0 in /cli by @dependabot[bot] in #5604
- docker: gateway: bump alpine from 3.22.2 to 3.23.0 in /gateway by @dependabot[bot] in #5603
- feat(ui): show namespace type in
SettingNamespacecomponent by @luizhf42 in #5609 - ui: bump vue-tsc from 3.1.5 to 3.1.7 in /ui by @dependabot[bot] in #5600
- fix(ui): fix
SettingTagsbehavior with no tags in list by @luizhf42 in #5610 - fix(ui): correct admin table background and improve test selectors by @luannmoreira in #5586
- fix(ui): items-per-page input handling only on blur DataTable by @luannmoreira in #5612
- feat(agent): add support for optional environment variables in install.sh by @gustavosbarreto in #5613
- feat(ui): add new Tags view separate from Settings by @luizhf42 in #5611
- refactor(ui): improve terminal connection UI and add SSHID helper by @gustavosbarreto in #5614
- fix(ui): enable
TagSelectoreven when namespace has no tags by @luizhf42 in #5615 - refactor(ui): add settings button to namespace switcher by @gustavosbarreto in #5617
- refactor(ui): remove stats store usage from device UI components by @luannmoreira in #5590
- fix(api): support X-Tenant-ID header in tag requests by @heiytor in #5618
- refactor(ui): refactor Tags API wrapper and store by @luizhf42 in #5616
- refactor(ui): simplify and validate items-per-page input handling by @luannmoreira in #5619
- fix(ui): fix Connection Announcement edit dialog by @luizhf42 in #5621
- fix(ui): fix SSHID Helper related issues by @luizhf42 in #5620
- agent: bump golang.org/x/sys from 0.38.0 to 0.39.0 in /agent by @dependabot[bot] in #5627
- ssh: bump github.com/labstack/echo/v4 from 4.13.4 to 4.14.0 in /ssh by @dependabot[bot] in #5631
- ui: bump asciinema-player from 3.12.1 to 3.13.4 in /ui by @dependabot[bot] in #5635
- ui: bump typescript-eslint from 8.48.1 to 8.49.0 in /ui by @dependabot[bot] in #5636
- docker: ui: bump nginx from 1.29.3-alpine to 1.29.4-alpine in /ui by @dependabot[bot] in #5637
- api: bump golang.org/x/crypto from 0.45.0 to 0.46.0 in /api by @dependabot[bot] in #5634
- ui: bump eslint-plugin-jest from 29.2.1 to 29.5.0 in /ui by @dependabot[bot] in #5640
- feat(ui): add "Add Private Key" button to
TerminalLoginForm's select by @luizhf42 in #5622 - test(ui): add API mocks to
DevicesDropdowntests by @luizhf42 in #5624 - refactor(ui): move
hasNamespacescomputed to namespaces store by @luizhf42 in #5623 - ui: bump sass from 1.94.2 to 1.96.0 in /ui by @dependabot[bot] in #5639
- ui: bump vuetify from 3.11.2 to 3.11.3 in /ui by @dependabot[bot] in #5638
- bump(ui): revert Node.js LTS version bump by @luizhf42 in #5644
- chore(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #5643
- chore(deps): bump actions/cache from 3 to 5 by @dependabot[bot] in #5642
- chore(deps): bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #5641
- agent: bump golang.org/x/crypto from 0.45.0 to 0.46.0 in /agent by @dependabot[bot] in #5630
- agent: bump github.com/labstack/echo/v4 from 4.13.4 to 4.14.0 in /agent by @dependabot[bot] in #5628
- api: bump github.com/labstack/echo/v4 from 4.13.4 to 4.14.0 in /api by @dependabot[bot] in #5632
- refactor(api): migrate membership invitations to a dedicated collection by @heiytor in #5532
- feat(ui): implement new invitations menu, view, dialogs and management system by @luizhf42 in #5585
- feat(ui): add items per page persistence to
DataTableby @luizhf42 in #5646 - test(ui): update
InvitationListsnapshot by @luizhf42 in #5645 - feat(ui): create PageHeader component and refactor views by @gustavosbarreto in #5647
- fix(ui): suppress Sass legacy JS API deprecation warnings by @gustavosbarreto in #5648
- feat(ui): add FormBricks survey to setup wizard flow by @gustavosbarreto in #5649
- test(ui): add
@pinia/testingand mount helper for tests by @luizhf42 in #5650 - feat(ui): add Rename Device button to accepted devices list by @luizhf42 in #5651
- feat(ui): use
PageHeaderinTeamInvitationsview by @luizhf42 in #5652 - fix(ui): replace text-white with theme-safe emphasis colors by @luannmoreira in #5653
- fix(ui): standardize WebEndpoints search bar placement by @luannmoreira in #5654
- feat(ui): add onboarding survey to setup wizard by @gustavosbarreto in #5656
- test(ui): improve
AppLayouttests by @luizhf42 in #5655 - refactor(ui): replace page titles in admin with PageHeader component by @luannmoreira in #5658
- docker: api: bump alpine from 3.23.0 to 3.23.2 in /api by @dependabot[bot] in #5668
- docker: cli: bump alpine from 3.23.0 to 3.23.2 in /cli by @dependabot[bot] in #5667
- ui: bump vue-tsc from 3.1.8 to 3.2.1 in /ui by @dependabot[bot] in #5665
- docker: gateway: bump alpine from 3.23.0 to 3.23.2 in /gateway by @dependabot[bot] in #5664
- ui: bump @vue/runtime-dom from 3.5.25 to 3.5.26 in /ui by @dependabot[bot] in #5663
- ui: bump eslint from 9.39.1 to 9.39.2 in /ui by @dependabot[bot] in #5662
- ui: bump vue-router from 4.6.3 to 4.6.4 in /ui by @dependabot[bot] in #5660
- fix(api): preserve null values for unique indexed fields in UserUpdate by @heiytor in #5670
- refactor(ui): improve session play button and active status display by @luannmoreira in #5659
- fix(tests): support testcontainers in Docker-in-Docker environment by @gustavosbarreto in #5671
- ui: bump typescript-eslint from 8.49.0 to 8.50.1 in /ui by @dependabot[bot] in #5676
- ui: bump sass from 1.96.0 to 1.97.1 in /ui by @dependabot[bot] in #5675
- ui: bump eslint-plugin-jest from 29.5.0 to 29.11.1 in /ui by @dependabot[bot] in #5674
- ui: bump vuetify from 3.11.3 to 3.11.5 in /ui by @dependabot[bot] in #5673
- ui: bump asciinema-player from 3.13.4 to 3.13.5 in /u...
v0.21.3
What's Changed
- refactor(api,openapi): simplify tag endpoints by @heiytor in #5594
- chore: bump shellhub version to v0.21.3 by @gustavosbarreto in #5595
Full Changelog: v0.21.2...v0.21.3
v0.21.2
What's Changed
- fix(ui): fix Welcome dialog opening behavior by @luizhf42 in #5587
- fix: ensure nsenter and setpriv match the target architecture by @CloudCray in #5588
- chore: bump shellhub version to v0.21.2 by @gustavosbarreto in #5591
New Contributors
- @CloudCray made their first contribution in #5588
Full Changelog: v0.21.1...v0.21.2
What's Changed
- fix(ui): fix Welcome dialog opening behavior by @luizhf42 in #5587
- fix: ensure nsenter and setpriv match the target architecture by @CloudCray in #5588
- chore: bump shellhub version to v0.21.2 by @gustavosbarreto in #5591
- fix(agent): include primary group in ListGroups by @gustavosbarreto in #5592
New Contributors
- @CloudCray made their first contribution in #5588
Full Changelog: v0.21.1...v0.21.2
What's Changed
- fix(ui): fix Welcome dialog opening behavior by @luizhf42 in #5587
- fix: ensure nsenter and setpriv match the target architecture by @CloudCray in #5588
- chore: bump shellhub version to v0.21.2 by @gustavosbarreto in #5591
- fix(agent): include primary group in ListGroups by @gustavosbarreto in #5592
- ci: update DigitalOcean Spaces credentials in OpenAPI workflow by @gustavosbarreto in #5593
New Contributors
- @CloudCray made their first contribution in #5588
Full Changelog: v0.21.1...v0.21.2
v0.21.1
What's Changed
- chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.45.0 by @dependabot[bot] in #5573
- ui: bump vuetify from 3.10.11 to 3.11.0 in /ui by @dependabot[bot] in #5577
- ui: bump @vue/runtime-dom from 3.5.22 to 3.5.25 in /ui by @dependabot[bot] in #5576
- api: bump github.com/getsentry/sentry-go from 0.38.0 to 0.40.0 in /api by @dependabot[bot] in #5574
- ui: bump typescript-eslint from 8.46.4 to 8.48.0 in /ui by @dependabot[bot] in #5575
- fix(ui): import global CSS in admin's
App.vueby @luizhf42 in #5570 - refactor(ui): improve admin's
NamespaceEditdefineModelby @luizhf42 in #5571 - fix(ui): fix
Setupview UI and behavior by @luizhf42 in #5578 - chore(ui): remove
console.logby @luizhf42 in #5579 - feat(api): enable setup endpoint for Enterprise environments by @heiytor in #5580
- fix(ui): redirect to
Setupif user doesn't have first account by @luizhf42 in #5581 - chore: bump shellhub version to v0.21.1 by @gustavosbarreto in #5582
Full Changelog: v0.21.0...v0.21.1
What's Changed
- chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.45.0 by @dependabot[bot] in #5573
- ui: bump vuetify from 3.10.11 to 3.11.0 in /ui by @dependabot[bot] in #5577
- ui: bump @vue/runtime-dom from 3.5.22 to 3.5.25 in /ui by @dependabot[bot] in #5576
- api: bump github.com/getsentry/sentry-go from 0.38.0 to 0.40.0 in /api by @dependabot[bot] in #5574
- ui: bump typescript-eslint from 8.46.4 to 8.48.0 in /ui by @dependabot[bot] in #5575
- fix(ui): import global CSS in admin's
App.vueby @luizhf42 in #5570 - refactor(ui): improve admin's
NamespaceEditdefineModelby @luizhf42 in #5571 - fix(ui): fix
Setupview UI and behavior by @luizhf42 in #5578 - chore(ui): remove
console.logby @luizhf42 in #5579 - feat(api): enable setup endpoint for Enterprise environments by @heiytor in #5580
- fix(ui): redirect to
Setupif user doesn't have first account by @luizhf42 in #5581 - chore: bump shellhub version to v0.21.1 by @gustavosbarreto in #5582
- fix(ui): check Welcome's
hasDevicesonly on mount by @luizhf42 in #5583
Full Changelog: v0.21.0...v0.21.1
What's Changed
- chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.45.0 by @dependabot[bot] in #5573
- ui: bump vuetify from 3.10.11 to 3.11.0 in /ui by @dependabot[bot] in #5577
- ui: bump @vue/runtime-dom from 3.5.22 to 3.5.25 in /ui by @dependabot[bot] in #5576
- api: bump github.com/getsentry/sentry-go from 0.38.0 to 0.40.0 in /api by @dependabot[bot] in #5574
- ui: bump typescript-eslint from 8.46.4 to 8.48.0 in /ui by @dependabot[bot] in #5575
- fix(ui): import global CSS in admin's
App.vueby @luizhf42 in #5570 - refactor(ui): improve admin's
NamespaceEditdefineModelby @luizhf42 in #5571 - fix(ui): fix
Setupview UI and behavior by @luizhf42 in #5578 - chore(ui): remove
console.logby @luizhf42 in #5579 - feat(api): enable setup endpoint for Enterprise environments by @heiytor in #5580
- fix(ui): redirect to
Setupif user doesn't have first account by @luizhf42 in #5581 - chore: bump shellhub version to v0.21.1 by @gustavosbarreto in #5582
- fix(ui): check Welcome's
hasDevicesonly on mount by @luizhf42 in #5583 - fix(agent): correct setpriv binary path in Dockerfile by @gustavosbarreto in #5584
Full Changelog: v0.21.0...v0.21.1
v0.21.0
ShellHub v0.21.0
What Changed in This Version?
v0.21.0 focuses on visible improvements that directly impact user experience. We redesigned interfaces, unified admin authentication and modernized the terminal.
🎨 Completely Redesigned Interface
The Admin Console has been completely revamped with a consistent visual identity. All pages now follow the same design system as the main interface.
Why it matters: Before, the Admin Console felt like a separate tool. Now there's a unified visual experience throughout ShellHub.
🔐 Unified Admin Login System
The Previous Problem
Before this version, logging in as admin was confusing:
- Login to the main interface
- Separate login to the Admin Console
- Logging out of one didn't affect the other
The Solution
One single login for everything. Now:
- You log in normally to the main interface
- If you have admin privileges, you see the "Admin Console" button in the menu
- Click and you're taken to the Admin Console already authenticated
- Logging out anywhere logs you out of everything
🖥️ Completely New Web Terminal
Visual Themes
The SSH terminal now supports different color themes. The main ones are:
- Default: Classic ShellHub theme
- Dracula: Dark theme popular among developers
- Monokai: Vibrant colors with good contrast
- Solarized Dark: Scientific color palette optimized for low eye strain
- Solarized Light: Light version of Solarized
Font Selection
You can customize the web terminal font according to your preference.
📦 Updated Stack
Frontend
- Node.js 22: More modern and performant runtime
- Vuetify 3.10.11: Updated visual components
- XTerm.js 5: Modernized terminal
Backend
- Go 1.24: Latest version with performance improvements
- Alpine 3.22: Updated Docker base images
For the full list of changes, check out the complete changelog on GitHub.
Thanks to all contributors and the community for making this release possible!
v0.21.0-rc.2
What's Changed
- api: bump github.com/stretchr/testify from 1.10.0 to 1.11.0 in /api by @dependabot[bot] in #5178
- ui: bump @vueuse/core from 13.5.0 to 13.7.0 in /ui by @dependabot[bot] in #5179
- ui: bump turndown from 7.2.0 to 7.2.1 in /ui by @dependabot[bot] in #5180
- ui: bump vue-tsc from 3.0.4 to 3.0.6 in /ui by @dependabot[bot] in #5181
- ui: bump @types/node from 18.19.122 to 18.19.123 in /ui by @dependabot[bot] in #5183
- ui: bump vuetify from 3.9.4 to 3.9.5 in /ui by @dependabot[bot] in #5182
- ssh: bump github.com/stretchr/testify from 1.10.0 to 1.11.0 in /ssh by @dependabot[bot] in #5184
- feat(api,ssh,ui): remove SHELLHUB_BILLING environment variable by @henrybarreto in #5169
- refactor(ui): migrate main UI's store from Vuex to Pinia by @luizhf42 in #5097
- ui: bump @vueuse/core from 13.7.0 to 13.8.0 in /ui by @dependabot[bot] in #5199
- ui: bump @vue/runtime-dom from 3.5.18 to 3.5.20 in /ui by @dependabot[bot] in #5198
- cli: bump github.com/stretchr/testify from 1.11.0 to 1.11.1 in /cli by @dependabot[bot] in #5195
- api: bump github.com/stretchr/testify from 1.11.0 to 1.11.1 in /api by @dependabot[bot] in #5194
- ssh: bump github.com/stretchr/testify from 1.11.0 to 1.11.1 in /ssh by @dependabot[bot] in #5193
- refactor(ui): use injected
isAdmininDataTableby @luizhf42 in #5200 - ui: bump sass from 1.90.0 to 1.91.0 in /ui by @dependabot[bot] in #5197
- api: bump github.com/ulikunitz/xz from 0.5.11 to 0.5.14 in /api by @dependabot[bot] in #5191
- chore(deps): bump github.com/ulikunitz/xz from 0.5.11 to 0.5.14 by @dependabot[bot] in #5190
- ui: bump vuetify from 3.9.5 to 3.9.6 in /ui by @dependabot[bot] in #5196
- refactor(ui): create standard
@closeevent forBaseDialogby @luizhf42 in #5192 - Refactor/query options by @heiytor in #5107
- fix(ui): ensure name is loaded before MFA recovery and reset by @luannmoreira in #5202
- refactor: install script by @gustavosbarreto in #5096
- feat: update device icons by @gustavosbarreto in #5204
- fix(ui): fix session log deletion by @luizhf42 in #5205
- fix(ui): fix device and container listing by @luizhf42 in #5208
- ui: bump terser from 5.43.1 to 5.44.0 in /ui by @dependabot[bot] in #5209
- ui: bump @fortawesome/free-solid-svg-icons from 7.0.0 to 7.0.1 in /ui by @dependabot[bot] in #5210
- ui: bump @fortawesome/free-brands-svg-icons from 7.0.0 to 7.0.1 in /ui by @dependabot[bot] in #5211
- api: bump github.com/spf13/cobra from 1.9.1 to 1.10.1 in /api by @dependabot[bot] in #5212
- ui: bump @fortawesome/fontawesome-svg-core from 7.0.0 to 7.0.1 in /ui by @dependabot[bot] in #5213
- cli: bump github.com/spf13/cobra from 1.9.1 to 1.10.1 in /cli by @dependabot[bot] in #5215
- agent: bump github.com/spf13/cobra from 1.9.1 to 1.10.1 in /agent by @dependabot[bot] in #5216
- ui: bump @fortawesome/free-regular-svg-icons from 7.0.0 to 7.0.1 in /ui by @dependabot[bot] in #5214
- chore(deps): bump actions/setup-node from 4 to 5 by @dependabot[bot] in #5217
- chore(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #5218
- feat(ui): enhance DeviceAdd dialog with modern UI and advanced options by @gustavosbarreto in #5206
- feat(ui): add skeleton background to NoItemsMessage by @gustavosbarreto in #5221
- chore(ci): update golang to 1.23 on ci by @henrybarreto in #5224
- fix(gateway): fix healthcheck failure when PROXY protocol is enabled by @gustavosbarreto in #5228
- refactor(ui): refactor utils by @luizhf42 in #5207
- feat(ui): separate reusable DeviceLink component by @luizhf42 in #5227
- feat(scripts): Improve requirements detection for WSL by @Ossanes in #5230
- fix(ui): fix change password behavior when confirming new password by @luizhf42 in #5223
- fix(ui): fix Web Endpoints view by @luizhf42 in #5220
- fix(ui): fix Session Details page UI by @luizhf42 in #5232
- fix(api): remove unused queries package by @heiytor in #5225
- refactor(api): implement centralized tag collection by @heiytor in #4517
- fix(ui): fix Device Details UI to keep the standard by @luizhf42 in #5233
- fix(agent): use user's shell from passwd entry instead of process' one by @henrybarreto in #5234
- ui: bump axios from 1.11.0 to 1.12.1 in /ui by @dependabot[bot] in #5237
- ui: bump vite from 5.4.19 to 5.4.20 in /ui by @dependabot[bot] in #5238
- fix(api,ssh): update script that generate private keys in pkcs8 format by @henrybarreto in #5231
- ui: bump @fortawesome/fontawesome-free from 7.0.0 to 7.0.1 in /ui by @dependabot[bot] in #5243
- ui: bump vue-tsc from 3.0.6 to 3.0.7 in /ui by @dependabot[bot] in #5247
- ui: bump vuetify from 3.9.6 to 3.10.0 in /ui by @dependabot[bot] in #5246
- ui: bump sass from 1.91.0 to 1.92.1 in /ui by @dependabot[bot] in #5245
- ui: bump @vueuse/core from 13.8.0 to 13.9.0 in /ui by @dependabot[bot] in #5241
- api: bump github.com/getsentry/sentry-go from 0.35.1 to 0.35.2 in /api by @dependabot[bot] in #5239
- fix(api): some tag behaviours by @heiytor in #5248
- refactor(ui): refactor admin's stores to Pinia Setup syntax by @luizhf42 in #5236
- refactor(ui): handle new tags objects by @luannmoreira in #4632
- fix(ui): align Device & FirewallRules tests with tag objects by @luannmoreira in #5250
- fix(api): allow sessions' listing on admin panel by @henrybarreto in #5251
- fix(ui): fix build errors related to the Tags change by @luizhf42 in #5254
- feat(ui): add BaseDialog, WindowDialog, FormDialog and MessageDialog components by @gustavosbarreto in #5252
- ui/migrate device dialogs by @gustavosbarreto in #5255
- ui: bump sass from 1.92.1 to 1.93.0 in /ui by @dependabot[bot] in #5263
- ui: bump yup from 1.7.0 to 1.7.1 in /ui by @dependabot[bot] in #5262
- ui: bump @vue/runtime-dom from 3.5.20 to 3.5.21 in /ui by @dependabot[bot] in #5261
- ui: bump vue-gtag from 3.5.2 to 3.6.1 in /ui by @dependabot[bot] in #5260
- api: bump github.com/getsentry/sentry-go from 0.35.2 to 0.35.3 in /api by @dependabot[bot] in #5259
- ui: bump axios from 1.12.1 to 1.12.2 in /ui by @dependabot[bot] in #5257
- fix(ui): fix warnings and errors in tag-related tests by @luizhf42 in #5256
- fix(ui): persist filters and sorting in several admin stores by @luannmoreira in #5253
- fix(ui): start layout state in store as an empty value by @luizhf42 in #5264
- ui/migrate device dialogs2 by @gustavosbarreto in #5266
- refactor(ui): improve Forgot Password view by @luizhf42 in #5267
- fix(ui): fix Terminal Dialog by @luizhf42 in #5268
- fix(ui): fix dialog-related build errors b...
v0.20.1
What's Changed
- ui: bump @types/node from 18.19.121 to 18.19.122 in /ui by @dependabot[bot] in #5134
- ui: bump sass from 1.89.2 to 1.90.0 in /ui by @dependabot[bot] in #5135
- ui: bump yup from 1.6.1 to 1.7.0 in /ui by @dependabot[bot] in #5137
- api: bump golang.org/x/crypto from 0.40.0 to 0.41.0 in /api by @dependabot[bot] in #5138
- ssh: bump golang.org/x/crypto from 0.40.0 to 0.41.0 in /ssh by @dependabot[bot] in #5140
- chore(deps): bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #5142
- ui: bump typescript from 5.8.3 to 5.9.2 in /ui by @dependabot[bot] in #5139
- fix(ui): mock
onBeforeRouteLeavein tests by @luizhf42 in #5131 - ssh: bump golang.org/x/net from 0.42.0 to 0.43.0 in /ssh by @dependabot[bot] in #5141
- ui: bump vuetify from 3.9.2 to 3.9.4 in /ui by @dependabot[bot] in #5136
- fix(snap): rename references to shellhub-agent snap package to shellhub by @henrybarreto in #5143
- feat(snap): add --classic flag and use latest/stable channel for ShellHub snap by @henrybarreto in #5144
- feat(snap): get snap settings from envs while installing by @henrybarreto in #5145
- feat(snap): get preferred hostname from env while installing by @henrybarreto in #5148
- fix(api,pkg): update device version when authenticating by @henrybarreto in #5147
- chore(deps): bump github.com/docker/docker from 27.1.1+incompatible to 28.0.0+incompatible by @dependabot[bot] in #5150
- fix(ui): fix MFA settings by @luizhf42 in #5152
- fix(ui): ensure Chatwoot is properly reset on logout by @luannmoreira in #5153
- chore(api): remove useless MFA store by @heiytor in #5149
- api: bump github.com/getsentry/sentry-go from 0.35.0 to 0.35.1 in /api by @dependabot[bot] in #5154
- docker: ui: bump nginx from 1.29.0-alpine to 1.29.1-alpine in /ui by @dependabot[bot] in #5156
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #5155
- feat(api)!: remove unused device methods by @heiytor in #5157
- refactor(api): replace APIKeyGet methods with unified APIKeyResolve by @heiytor in #5158
- feat(api): add namespace conflicts detection system by @heiytor in #5159
- refactor(api): remove unused opts parameter from NamespaceGetPreferred by @heiytor in #5161
- refactor(api)!: replace session record methods with generic operations by @heiytor in #5163
- Refactor/api/rename device edit by @heiytor in #5160
- feat(agent): deal with 429 and 503 HTTP status and Retry-After header by @henrybarreto in #5146
- Refactor/api/simplify device update by @heiytor in #5162
- feat(gateway): add rate limit to api routes by @henrybarreto in #5165
- fix(agent): normalize container's name into shellhub's device name by @henrybarreto in #5164
- feat(agent): add function to create connector with custom docker client by @henrybarreto in #5166
- feat(pkg): add MaxDevices and Billing fields to NamespaceChanges by @heiytor in #5167
- fix(env): increase default rate limit burst value by @henrybarreto in #5168
- agent: bump golang.org/x/crypto from 0.31.0 to 0.35.0 in /agent by @dependabot[bot] in #4733
- chore(deps): bump golang.org/x/crypto from 0.31.0 to 0.35.0 by @dependabot[bot] in #4736
- agent: bump golang.org/x/net from 0.33.0 to 0.38.0 in /agent by @dependabot[bot] in #4742
- chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 in /gateway by @dependabot[bot] in #4744
- chore(ui): update OpenAPI specification by @luizhf42 in #5170
- chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 by @dependabot[bot] in #5173
- chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 in /tests by @dependabot[bot] in #5174
- ui: bump cipher-base from 1.0.4 to 1.0.6 in /ui by @dependabot[bot] in #5177
- chore(ssh): update golang-jwt to v5 by @henrybarreto in #5175
- ui: bump sha.js from 2.4.11 to 2.4.12 in /ui by @dependabot[bot] in #5176
- chore: bump shellhub version to v0.20.1-rc.1 by @gustavosbarreto in #5172
- chore: bump shellhub version to v0.20.1 by @gustavosbarreto in #5187
Full Changelog: v0.20.0...v0.20.1
v0.20.0
We're excited to share ShellHub v0.20.0, featuring the new Web Endpoints system and enhanced SAML configuration.
✨ New Features
🌐 Web Endpoints
We've introduced Web Endpoints as a replacement for the legacy tunnel system. This new approach provides:
- Web-accessible endpoints for your devices
- Cleaner management interface
- Available in preview mode on ShellHub Cloud
- Full availability in ShellHub Enterprise
🔐 SAML Improvements (Enterprise)
Enhanced SAML configuration for Enterprise customers includes:
- Support for multiple URL types (POST and Redirect URLs)
- Improved X.509 certificate validation
- Better error messaging and automatic certificate formatting
🚀 Improvements
💻 Web Terminal
- Faster WebSocket connections with better performance
- Terminal handling now complies with RFC 4254
- More responsive interface across devices
🎯 User Experience
- Streamlined device management
- Better navigation and reusable components
- More consistent interface elements
⚡ Performance & Reliability
- Optimized device lookup (only shows accepted devices)
- Consolidated device management system
- Added Cloudflare DNS provider support
- Enhanced SSH error handling
- Improved certificate validation
🐛 Bug Fixes
Interface
- Fixed namespace editing when changing device limits
- Corrected copy icon behavior in command fields
- Centered Snackbar notifications
- Fixed placeholder display in select components
SSH & Terminal
- Prevented crashes when agent output is empty
- Fixed function naming issue in SSH key handling
- Applied correct 4096 character limit for terminal input
- Updated device lookup parameters
Backend
- Prevented non-accepted devices from being added to removal lists
- Simplified device status update process
- Changed agent updater to remove containers instead of stopping them
v0.19.2
What's Changed
- fix(ui): update SessionPlay props in DetailsSessions by @luizhf42 in #4895
- ui: bump @types/node from 18.19.110 to 18.19.111 in /ui by @dependabot in #4900
- ui: bump vee-validate from 4.15.0 to 4.15.1 in /ui by @dependabot in #4899
- ui: bump terser from 5.39.2 to 5.41.0 in /ui by @dependabot in #4898
- ui: bump @tinymce/tinymce-vue from 6.1.0 to 6.2.0 in /ui by @dependabot in #4897
- ui: bump pinia from 3.0.2 to 3.0.3 in /ui by @dependabot in #4896
- api: bump golang.org/x/sync from 0.14.0 to 0.15.0 in /api by @dependabot in #4905
- ssh: bump golang.org/x/crypto from 0.38.0 to 0.39.0 in /ssh by @dependabot in #4904
- api: bump go.mongodb.org/mongo-driver from 1.17.3 to 1.17.4 in /api by @dependabot in #4903
- api: bump golang.org/x/crypto from 0.38.0 to 0.39.0 in /api by @dependabot in #4902
- refactor(api): device get methods by @heiytor in #4893
- fix(ui): change namespace add panel using env flag by @luannmoreira in #4867
- ssh: bump golang.org/x/net from 0.40.0 to 0.41.0 in /ssh by @dependabot in #4901
- refactor(ssh): use structure to represent seats instead of a counter by @henrybarreto in #4887
- refactor(ui): refactor admin's NamespaceExport by @luizhf42 in #4908
- fix(api,ssh): remove direct-tcpip ssh event by @henrybarreto in #4910
- ui: bump sass from 1.89.1 to 1.89.2 in /ui by @dependabot in #4919
- ui: bump terser from 5.41.0 to 5.42.0 in /ui by @dependabot in #4918
- ui: bump vuetify from 3.8.7 to 3.8.9 in /ui by @dependabot in #4917
- ui: bump axios from 1.9.0 to 1.10.0 in /ui by @dependabot in #4916
- refactor(ui): refactor and rename
BoxMessage.vueby @luizhf42 in #4912 - feat: use user's private key on signature for web session by @henrybarreto in #4891
- refactor(ui): remove
console.errorcalls by @luizhf42 in #4914 - feat(ui): support SSH private key auth in terminal session by @luannmoreira in #4913
- chore(deps): bump stefanzweifel/git-auto-commit-action from 5 to 6 by @dependabot in #4920
- refactor(ui): replace direct clipboard copy with CopyWarning component by @luannmoreira in #4906
- feat(api): introduce device cache counter by @heiytor in #4921
- refactor(ui): refactor
DataTablecomponent by @luizhf42 in #4890 - fix(ui): fix admin's user list by @luizhf42 in #4915
- fix(ssh): override host header on http tunnel request by @henrybarreto in #4922
- fix(ui): fix admin's namespaces' device count by @luizhf42 in #4923
- fix(ui): correct SSH challenge signing with base64 input by @luannmoreira in #4927
- fix(agent): avoid panic when user isn't found by @henrybarreto in #4930
- feat(ssh): simplify web terminal flow by control messages as JSON requests by @henrybarreto in #4928
- refactor(ui): terminal blob websocket handling by @luannmoreira in #4931
- refactor(api): simplify device authentication flow by @heiytor in #4924
- fix(ui): fix device/container sorting in DeviceTable by @luizhf42 in #4926
- refactor(ui): use new DataTable in admin by @luizhf42 in #4929
- ui: bump terser from 5.42.0 to 5.43.1 in /ui by @dependabot in #4937
- ui: bump @types/node from 18.19.111 to 18.19.112 in /ui by @dependabot in #4938
- ui: bump vuetify from 3.8.9 to 3.8.10 in /ui by @dependabot in #4939
- ui: bump @vue/runtime-dom from 3.5.16 to 3.5.17 in /ui by @dependabot in #4940
- fix(api): remove omitempty tag in models.Device#Tags by @heiytor in #4941
- fix(api): remove redundant CreateCollection method by @heiytor in #4943
- feat(ui): add loading state to Play Session button by @luizhf42 in #4942
- ui: bump pbkdf2 from 3.1.2 to 3.1.3 in /ui by @dependabot in #4944
- fix(ui): fix quick connection card min-height by @luizhf42 in #4935
- fix(api): remove namespace from cache when device count is increased by @henrybarreto in #4933
- chore: bump shellhub version to v0.19.2-rc.1 by @gustavosbarreto in #4945
- refactor: replace specific user getter methods with unified UserResolve by @heiytor in #4946
- api: bump github.com/getsentry/sentry-go from 0.33.0 to 0.34.0 in /api by @dependabot in #4949
- docker: ui: bump nginx from 1.27.4-alpine to 1.29.0-alpine in /ui by @dependabot in #4954
- ui: bump @rushstack/eslint-patch from 1.11.0 to 1.12.0 in /ui by @dependabot in #4953
- ui: bump dotenv from 16.5.0 to 16.6.1 in /ui by @dependabot in #4952
- ui: bump vuetify from 3.8.10 to 3.8.11 in /ui by @dependabot in #4951
- ui: bump @types/node from 18.19.112 to 18.19.113 in /ui by @dependabot in #4950
- chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.0.0 to 2.3.0 in /tests by @dependabot in #4947
- chore(api): small fixes and refactors on session's store. by @henrybarreto in #4932
- fix(ssh): avoid potencial concurrency problems when creating and updating seats by @henrybarreto in #4955
- fix(api): count the right collection for sessions events by @henrybarreto in #4957
- fix(api): evaluate cloud namespace limits before enterprise' one by @henrybarreto in #4958
- chore: bump shellhub version to v0.19.2-rc.2 by @gustavosbarreto in #4959
- tests(api): readd removed test to migration 99 by @henrybarreto in #4956
- fix(api): removed device counter by @heiytor in #4961
- chore: bump shellhub version to v0.19.2 by @gustavosbarreto in #4962
- feat(api): check for cloud and billing to perform billing device limits by @henrybarreto in #4963
Full Changelog: v0.19.1...v0.19.2
v0.19.1
What's Changed
- fix(ui): fix field name in TunnelCreate by @luizhf42 in #4865
- refactor(ui): refactor UserExport in admin by @luizhf42 in #4864
- docker: gateway: bump alpine from 3.21.3 to 3.22.0 in /gateway by @dependabot in #4877
- docker: cli: bump alpine from 3.21.3 to 3.22.0 in /cli by @dependabot in #4876
- docker: api: bump alpine from 3.21.3 to 3.22.0 in /api by @dependabot in #4875
- docker: ssh: bump alpine from 3.21.3 to 3.22.0 in /ssh by @dependabot in #4874
- ui: bump vuetify from 3.8.6 to 3.8.7 in /ui by @dependabot in #4873
- ui: bump @vue/runtime-dom from 3.5.14 to 3.5.16 in /ui by @dependabot in #4872
- ui: bump sass from 1.89.0 to 1.89.1 in /ui by @dependabot in #4871
- ui: bump @types/node from 18.19.103 to 18.19.110 in /ui by @dependabot in #4870
- ui: bump asciinema-player from 3.9.0 to 3.10.0 in /ui by @dependabot in #4869
- fix(ui): prevent tooltip click from triggering parent handlers by @luannmoreira in #4868
- feat(api): add flexible device resolution with query parameter by @heiytor in #4858
- fix(ssh): sync agent exiting code with data pipe by @henrybarreto in #4880
- fix(ssh): don't retry to save the session when http not acceptable is returned by @henrybarreto in #4879
- chore: bump shellhub version to v0.19.1-rc.1 by @gustavosbarreto in #4881
- fix(ui): fix player's time handlers by @luizhf42 in #4883
- chore: bump shellhub version to v0.19.1-rc.2 by @gustavosbarreto in #4884
- refactor(api): add
DeviceResolvemethod to dynamically resolve devices by @heiytor in #4886 - fix(ui): fix player playback time for sessions longer than 24h by @luizhf42 in #4885
- feat(ui): create new device details URL with new API
resolverroute by @luizhf42 in #4878 - refactor(ui): change Connector Add to Container Modal in empty Containers view by @luannmoreira in #4889
- feat(ui): add tooltip to SessionPlay for not recorded sessions by @luizhf42 in #4888
- fix(ui): add await to
getConnectorscall by @luizhf42 in #4892 - chore: bump shellhub version to v0.19.1 by @gustavosbarreto in #4894
Full Changelog: v0.19.0...v0.19.1