Skip to content
Merged
Show file tree
Hide file tree
Changes from 52 commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
a91ab9b
nav ui tidy up
joebudi Jan 9, 2026
45be8fb
added tags to chat and agents
joebudi Jan 9, 2026
a222376
minimized nav spacing fixed
joebudi Jan 9, 2026
73e72c9
Updated nav to accommodate new designs
joebudi Jan 13, 2026
8c3c2b0
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 14, 2026
b71271e
workspace home feature flag
andz-bb Jan 14, 2026
b8d1475
github stars cached endpoint
andz-bb Jan 19, 2026
216c5fc
basic workspace home metrics
andz-bb Jan 19, 2026
954a0ec
add workspace home endpoints
andz-bb Jan 19, 2026
d1bcaa8
workspace home wip skeleton and redirects
andz-bb Jan 19, 2026
89b7801
workspace home side nav updates, dynamic github stars
andz-bb Jan 19, 2026
b0850d6
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 19, 2026
6683ed6
fix missing import
andz-bb Jan 19, 2026
9065648
lint fix
andz-bb Jan 19, 2026
fb1d103
feature flag merge fix
andz-bb Jan 20, 2026
f53c8cd
UI improvements
andz-bb Jan 20, 2026
7778bf4
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 20, 2026
f5db904
split workspace home down into components, improve table
andz-bb Jan 20, 2026
d76304f
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 20, 2026
d28c265
favouriting fixes
andz-bb Jan 21, 2026
caf9cdd
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 21, 2026
313a5a7
lint fixes
andz-bb Jan 21, 2026
d26f96e
workspace user access and automation run metrics
andz-bb Jan 21, 2026
e9ae49a
fix screen colours
andz-bb Jan 21, 2026
c705713
more minimal publish status badge
andz-bb Jan 21, 2026
9d72594
fix comment
andz-bb Jan 21, 2026
94e6ee6
fix comment
andz-bb Jan 21, 2026
92ec67a
table improvements
andz-bb Jan 21, 2026
0163884
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 22, 2026
a1cb267
use 14px fonts in workspace home
andz-bb Jan 22, 2026
34f0614
lint fix
andz-bb Jan 22, 2026
82f997b
Remove unnecessary horizontal rule from SideNav component
joebudi Jan 22, 2026
3a52b4f
Enhance workspace home layout and styling: added margin to HomeMetric…
joebudi Jan 22, 2026
5e2bc90
Refactor HomeControls and HomeTable components: replaced badge spans …
joebudi Jan 22, 2026
631b38f
switch the fav button with more icon
joebudi Jan 23, 2026
ace2301
lint fixes
andz-bb Jan 27, 2026
0ffe00b
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 27, 2026
2aef3c2
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 27, 2026
83b52c0
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Jan 28, 2026
0dd63e5
improve workspace home tests
andz-bb Feb 2, 2026
0b072ae
create popover menu in sidebar
andz-bb Feb 2, 2026
3722f6f
workspace home actions
andz-bb Feb 2, 2026
b8f2576
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Feb 2, 2026
40e4008
css improvements
andz-bb Feb 2, 2026
33a08b6
sort icon fix
andz-bb Feb 2, 2026
50ea157
workspace home responsive fixes
andz-bb Feb 2, 2026
6e4548d
github stars card
andz-bb Feb 2, 2026
01094a9
workspace home overflow scroll
andz-bb Feb 2, 2026
d58a7cb
auto initialise workspace favourites when sidebar pinned open
andz-bb Feb 2, 2026
aec11c2
sidebar structure updates/minor styling fixes
andz-bb Feb 2, 2026
4afd05d
remove workspace home type sort on breadcrumb links
andz-bb Feb 2, 2026
80b2dd1
merge fix fix
andz-bb Feb 2, 2026
3ab3e2a
sidebar style
andz-bb Feb 2, 2026
eebde80
sort indicator clarity
andz-bb Feb 2, 2026
6a00090
fix links
andz-bb Feb 2, 2026
4763841
merge fix
andz-bb Feb 3, 2026
931c9e5
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Feb 3, 2026
7d090ca
Merge branch 'master' into workspace-home
andz-bb Feb 3, 2026
ca000a9
add github star fetch timeout
andz-bb Feb 3, 2026
74be8f2
validate workspaceId in countUsersByApp
andz-bb Feb 3, 2026
aa84999
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Feb 3, 2026
7a26472
style change
andz-bb Feb 3, 2026
6a18458
svelte5 routing improvement
andz-bb Feb 3, 2026
4e8e6fd
make feature flags apply reactively
andz-bb Feb 3, 2026
6bedcea
Merge branch 'master' into workspace-home
andz-bb Feb 3, 2026
29f1688
Merge branch 'master' into workspace-home
andz-bb Feb 4, 2026
4f61e72
Merge branch 'master' into workspace-home
andz-bb Feb 4, 2026
6e0b582
make BB logo link to workspace home
andz-bb Feb 4, 2026
0dc2a32
move workspace home types to @budibase/types
andz-bb Feb 4, 2026
8f07bc1
Merge branch 'master' into workspace-home
andz-bb Feb 4, 2026
02dda24
add create modals to the side nav so they can be used from anywhere
andz-bb Feb 4, 2026
e757f08
Merge branch 'master' into workspace-home
andz-bb Feb 4, 2026
1be6190
Merge branch 'workspace-home' of https://github.com/Budibase/budibase…
andz-bb Feb 4, 2026
34ea39a
appId -> workspaceId
andz-bb Feb 4, 2026
1b12ffc
use context.getWorkspaceId
andz-bb Feb 4, 2026
7e717f0
clean up favourite icon css
andz-bb Feb 4, 2026
f0f5f72
use redis for github stars cache
andz-bb Feb 4, 2026
06c3840
remove create table param
andz-bb Feb 4, 2026
6e9abc8
appId -> workspaceId
andz-bb Feb 4, 2026
6b28692
Merge branch 'master' into workspace-home
andz-bb Feb 5, 2026
e1f5b09
Merge branch 'master' into workspace-home
andz-bb Feb 6, 2026
1010f88
rename user count by app to workspace, improve test
andz-bb Feb 6, 2026
081c1cd
implement metrics cache
andz-bb Feb 6, 2026
6ec55c4
Merge branch 'master' into workspace-home
andz-bb Feb 6, 2026
26a4391
type fix
andz-bb Feb 6, 2026
3e694d8
Merge branch 'master' of https://github.com/Budibase/budibase into wo…
andz-bb Feb 10, 2026
7ba66a3
Merge branch 'master' into workspace-home
andz-bb Feb 10, 2026
df86000
Merge branch 'master' into workspace-home
andz-bb Feb 10, 2026
263b127
Merge branch 'master' into workspace-home
andz-bb Feb 10, 2026
7d5e27e
Merge branch 'master' into workspace-home
andz-bb Feb 10, 2026
1529738
Merge branch 'master' into workspace-home
andz-bb Feb 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -114,3 +114,4 @@ budibase-datasource
*.iml
.nx
.claude
.opencode
1 change: 1 addition & 0 deletions packages/backend-core/src/features/features.ts
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ export class FlagSet<T extends { [name: string]: boolean }> {
const featureFlagDefaults: Record<FeatureFlag, boolean> = {
[FeatureFlag.USE_ZOD_VALIDATOR]: false,
[FeatureFlag.AI_AGENTS]: false,
[FeatureFlag.WORKSPACE_HOME]: false,
[FeatureFlag.DEBUG_UI]: env.isDev(),
[FeatureFlag.DEV_USE_CLIENT_FROM_STORAGE]: false,
}
Expand Down
10 changes: 8 additions & 2 deletions packages/backend-core/src/users/db.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import * as accountSdk from "../accounts"
import * as cache from "../cache"
import { getGlobalDB, getIdentity, getTenantId } from "../context"
import * as dbUtils from "../db"
import { getUsersByWorkspaceParams } from "../docIds/params"
import env from "../environment"
import { EmailUnavailableError, HTTPError } from "../errors"
import * as platform from "../platform"
Expand Down Expand Up @@ -182,9 +183,14 @@ export class UserDB {
}

static async countUsersByApp(appId: string) {
let response: any = await usersCore.searchGlobalUsersByApp(appId, {})
const response = await dbUtils.queryGlobalViewRaw<User>(
dbUtils.ViewName.USER_BY_WORKSPACE,
getUsersByWorkspaceParams(appId, {
include_docs: false,
})
)
return {
userCount: response.length,
userCount: response.rows.length,
}
}

Expand Down
45 changes: 14 additions & 31 deletions packages/builder/src/components/common/PublishStatusBadge.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -7,52 +7,35 @@
const statusDisplayName: Record<PublishResourceState, string> = {
[PublishResourceState.PUBLISHED]: "Live",

[PublishResourceState.DISABLED]: "Off",
[PublishResourceState.DISABLED]: "Draft",
}
</script>

<div
<span
class="status"
class:published={status === PublishResourceState.PUBLISHED}
class:disabled={status === PublishResourceState.DISABLED}
class:loading
>
{statusDisplayName[status]}
</div>
</span>

<style>
.status {
padding: 2px 6px 2px 18px;
border-radius: 8px;
display: inline;
color: white;
position: relative;
text-transform: capitalize;
background: var(--color);

&.published {
--color: #004c2e;
border: 1px solid #005d39;
}
font-family: var(--font-sans);
font-size: 14px;
line-height: 17px;
font-weight: 400;
color: var(--color);
}

&.disabled {
--color: var(--spectrum-global-color-gray-300);
border: 1px solid var(--spectrum-global-color-gray-400);
}
.status.published {
--color: #8ca171;
}

&::after {
content: " ";
display: block;
width: 8px;
height: 8px;
background: var(--color);
filter: brightness(3);
border-radius: 50%;
position: absolute;
left: 6px;
top: 50%;
transform: translateY(-50%);
}
.status.disabled {
--color: var(--spectrum-global-color-gray-600);
}
.loading {
opacity: 0.5;
Expand Down
11 changes: 8 additions & 3 deletions packages/builder/src/components/common/WorkspaceSelect.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@
display: flex;
align-items: center;
background: var(--spectrum-global-color-gray-200);
border-radius: 8px;
border-radius: 6px;
justify-content: space-between;
cursor: pointer;
transition: background-color 130ms ease-in-out;
Expand All @@ -345,7 +345,7 @@
display: flex;
gap: var(--spacing-s);
align-items: center;
font-size: var(--font-size-m);
font-size: 13px;
flex: 1 1 0;
min-width: 0;
overflow: hidden;
Expand All @@ -358,8 +358,13 @@
text-overflow: ellipsis;
white-space: nowrap;
}
.workspace-menu-text :global(i) {
font-size: 14px;
width: 14px;
height: 14px;
}
.workspace-menu-text:hover {
border-radius: 8px 0 0 8px;
border-radius: 6px 0 0 6px;
}
.workspace-menu.disabled .workspace-menu-text:hover {
border-radius: 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
<script lang="ts">
import { Icon, TooltipPosition, TooltipType } from "@budibase/bbui"
import { Icon } from "@budibase/bbui"
import { API } from "@/api"
import { type WorkspaceFavourite } from "@budibase/types"
import { workspaceFavouriteStore } from "@/stores/builder"

export let favourite: WorkspaceFavourite | undefined = undefined
export let size: "S" | "XS" | "M" | "L" | "XL" | "XXL" | "XXXL" = "XS"
export let position: TooltipPosition = TooltipPosition.Top
export let noWrap = false

let waiting = false
</script>
Expand All @@ -17,15 +15,9 @@
name="star"
hoverable
weight={favourite._id ? "fill" : "regular"}
color={favourite._id
? "var(--spectrum-global-color-yellow-1000)"
: undefined}
tooltip={favourite._id ? "Remove from favourites" : "Add to favourites"}
tooltipType={TooltipType.Info}
tooltipPosition={position}
tooltipWrap={noWrap}
color={favourite._id ? "var(--spectrum-global-color-gray-600)" : undefined}
hoverColor={favourite._id
? "var(--spectrum-global-color-yellow-700)"
? "var(--spectrum-global-color-gray-600)"
: undefined}
{size}
on:click={async e => {
Expand All @@ -36,7 +28,10 @@
if (favourite._id && favourite._rev) {
await API.workspace.delete(favourite._id, favourite._rev)
} else {
await API.workspace.create(favourite)
await API.workspace.create({
resourceId: favourite.resourceId,
resourceType: favourite.resourceType,
})
}
await workspaceFavouriteStore.sync()
} catch (e) {
Expand Down
Loading
Loading