Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 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
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