diff --git a/.github/workflows/deploy-qa.yml b/.github/workflows/deploy-qa.yml
index d850d289ff..0580ac1c3a 100644
--- a/.github/workflows/deploy-qa.yml
+++ b/.github/workflows/deploy-qa.yml
@@ -11,10 +11,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: peter-evans/repository-dispatch@v2
- env:
- PAYLOAD_VERSION: ${{ github.sha }}
- REF_NAME: ${{ github.ref_name}}
with:
repository: budibase/budibase-deploys
event-type: budicloud-qa-deploy
token: ${{ secrets.GH_ACCESS_TOKEN }}
+ client-payload: |-
+ {
+ "PAYLOAD_VERSION": "${{ github.sha }}",
+ "REF_NAME": "${{ github.ref_name}}"
+ }
diff --git a/.github/workflows/release-master.yml b/.github/workflows/release-master.yml
index df25182cd6..bd1efeb2c4 100644
--- a/.github/workflows/release-master.yml
+++ b/.github/workflows/release-master.yml
@@ -165,17 +165,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- - name: Get the current budibase release version
- id: version
- run: |
- release_version=$(cat lerna.json | jq -r '.version')
- echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV
- - uses: passeidireto/trigger-external-workflow-action@main
- env:
- PAYLOAD_VERSION: ${{ env.RELEASE_VERSION }}
- REF_NAME: ${{ github.ref_name}}
+ - uses: peter-evans/repository-dispatch@v2
with:
repository: budibase/budibase-deploys
- event: budicloud-qa-deploy
+ event-type: budicloud-qa-deploy
github_pat: ${{ secrets.GH_ACCESS_TOKEN }}
+ client-payload: |-
+ {
+ "PAYLOAD_VERSION": "${{ github.ref_name }}",
+ "REF_NAME": "${{ github.ref_name}}"
+ }
diff --git a/.github/workflows/release-singleimage.yml b/.github/workflows/release-singleimage.yml
index a3444d5e7a..16b1da186a 100644
--- a/.github/workflows/release-singleimage.yml
+++ b/.github/workflows/release-singleimage.yml
@@ -66,7 +66,7 @@ jobs:
context: .
push: true
platforms: linux/amd64,linux/arm64
- build-args: BUDIBASE_VERSION=$BUDIBASE_VERSION
+ build-args: BUDIBASE_VERSION=${{ env.BUDIBASE_VERSION }}
tags: budibase/budibase,budibase/budibase:${{ env.RELEASE_VERSION }}
file: ./hosting/single/Dockerfile.v2
env:
@@ -79,7 +79,7 @@ jobs:
platforms: linux/amd64
build-args: |
TARGETBUILD=aas
- BUDIBASE_VERSION=$BUDIBASE_VERSION
+ BUDIBASE_VERSION=${{ env.BUDIBASE_VERSION }}
tags: budibase/budibase-aas,budibase/budibase-aas:${{ env.RELEASE_VERSION }}
file: ./hosting/single/Dockerfile.v2
env:
diff --git a/lerna.json b/lerna.json
index f0f51242d1..2d46838e55 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "2.12.4",
+ "version": "2.12.7",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte
index abec380b46..f6621c1508 100644
--- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte
+++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte
@@ -30,15 +30,15 @@
part2: PrettyRelationshipDefinitions.MANY,
},
[RelationshipType.MANY_TO_ONE]: {
- part1: PrettyRelationshipDefinitions.ONE,
- part2: PrettyRelationshipDefinitions.MANY,
+ part1: PrettyRelationshipDefinitions.MANY,
+ part2: PrettyRelationshipDefinitions.ONE,
},
}
let relationshipOpts1 = Object.values(PrettyRelationshipDefinitions)
let relationshipOpts2 = Object.values(PrettyRelationshipDefinitions)
- let relationshipPart1 = PrettyRelationshipDefinitions.MANY
- let relationshipPart2 = PrettyRelationshipDefinitions.ONE
+ let relationshipPart1 = PrettyRelationshipDefinitions.ONE
+ let relationshipPart2 = PrettyRelationshipDefinitions.MANY
let originalFromColumnName = toRelationship.name,
originalToColumnName = fromRelationship.name
diff --git a/packages/builder/src/components/design/settings/componentSettings.js b/packages/builder/src/components/design/settings/componentSettings.js
index 232b4bef31..c2bd08760a 100644
--- a/packages/builder/src/components/design/settings/componentSettings.js
+++ b/packages/builder/src/components/design/settings/componentSettings.js
@@ -1,5 +1,5 @@
import { Checkbox, Select, RadioGroup, Stepper, Input } from "@budibase/bbui"
-import DataSourceSelect from "./controls/DataSourceSelect.svelte"
+import DataSourceSelect from "./controls/DataSourceSelect/DataSourceSelect.svelte"
import S3DataSourceSelect from "./controls/S3DataSourceSelect.svelte"
import DataProviderSelect from "./controls/DataProviderSelect.svelte"
import ButtonActionEditor from "./controls/ButtonActionEditor/ButtonActionEditor.svelte"
diff --git a/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte
new file mode 100644
index 0000000000..f7c79b3862
--- /dev/null
+++ b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte
@@ -0,0 +1,55 @@
+
+
+{#if dividerState}
+
+{/if}
+{#if heading}
+
+ {heading}
+
+{/if}
+
+
+
diff --git a/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceSelect.svelte
similarity index 75%
rename from packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte
rename to packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceSelect.svelte
index 29f32aa345..5cda0ebcca 100644
--- a/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte
+++ b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceSelect.svelte
@@ -7,10 +7,8 @@
import {
Button,
Popover,
- Divider,
Select,
Layout,
- Heading,
Drawer,
DrawerContent,
Icon,
@@ -32,6 +30,7 @@
import IntegrationQueryEditor from "components/integration/index.svelte"
import { makePropSafe as safe } from "@budibase/string-templates"
import ClientBindingPanel from "components/common/bindings/ClientBindingPanel.svelte"
+ import DataSourceCategory from "components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte"
import { API } from "api"
export let value = {}
@@ -279,102 +278,81 @@
-
- Tables
-
-
- {#each tables as table}
- - handleSelected(table)}>{table.label}
- {/each}
-
+
{#if views?.length}
-
-
- Views
-
-
- {#each views as view}
- - handleSelected(view)}>{view.label}
- {/each}
-
+
{/if}
{#if queries?.length}
-
-
- Queries
-
-
- {#each queries as query}
- - handleSelected(query)}
- >
- {query.label}
-
- {/each}
-
+
{/if}
{#if links?.length}
-
-
- Relationships
-
-
- {#each links as link}
- - handleSelected(link)}>{link.label}
- {/each}
-
+
{/if}
{#if fields?.length}
-
-
- Fields
-
-
- {#each fields as field}
- - handleSelected(field)}>{field.label}
- {/each}
-
+
{/if}
{#if jsonArrays?.length}
-
-
- JSON Arrays
-
-
- {#each jsonArrays as field}
- - handleSelected(field)}>{field.label}
- {/each}
-
+
{/if}
{#if showDataProviders && dataProviders?.length}
-
-
- Data Providers
-
-
- {#each dataProviders as provider}
- - handleSelected(provider)}
- >
- {provider.label}
-
- {/each}
-
+
+ {/if}
+
+ {#if otherSources?.length}
+
{/if}
-
-
- Other
-
-
- - handleSelected(custom)}>{custom.label}
- {#if otherSources?.length}
- {#each otherSources as source}
- - handleSelected(source)}>{source.label}
- {/each}
- {/if}
-
@@ -398,31 +376,6 @@
.dropdown {
padding: var(--spacing-m) 0;
z-index: 99999999;
- overflow-y: scroll;
- }
- .title {
- padding: 0 var(--spacing-m) var(--spacing-s) var(--spacing-m);
- }
-
- ul {
- list-style: none;
- padding-left: 0px;
- margin: 0px;
- }
-
- li {
- cursor: pointer;
- margin: 0px;
- padding: var(--spacing-s) var(--spacing-m);
- font-size: var(--font-size-m);
- }
-
- .selected {
- color: var(--spectrum-global-color-blue-600);
- }
-
- li:hover {
- background-color: var(--spectrum-global-color-gray-200);
}
.icon {
diff --git a/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte b/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte
index 80e36328f1..dbeeec53ef 100644
--- a/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte
+++ b/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte
@@ -1,5 +1,5 @@
diff --git a/packages/server/src/sdk/app/tables/migration.ts b/packages/server/src/sdk/app/tables/migration.ts
index 5a6b0c5bc0..718223dbeb 100644
--- a/packages/server/src/sdk/app/tables/migration.ts
+++ b/packages/server/src/sdk/app/tables/migration.ts
@@ -7,6 +7,7 @@ import {
isBBReferenceField,
isRelationshipField,
LinkDocument,
+ LinkInfo,
RelationshipFieldMetadata,
RelationshipType,
Row,
@@ -125,7 +126,23 @@ abstract class UserColumnMigrator implements ColumnMigrator {
protected newColumn: BBReferenceFieldMetadata
) {}
- abstract updateRow(row: Row, link: LinkDocument): void
+ abstract updateRow(row: Row, linkInfo: LinkInfo): void
+
+ pickUserTableLinkSide(link: LinkDocument): LinkInfo {
+ if (link.doc1.tableId === InternalTable.USER_METADATA) {
+ return link.doc1
+ } else {
+ return link.doc2
+ }
+ }
+
+ pickOtherTableLinkSide(link: LinkDocument): LinkInfo {
+ if (link.doc1.tableId === InternalTable.USER_METADATA) {
+ return link.doc2
+ } else {
+ return link.doc1
+ }
+ }
async doMigration(): Promise {
let oldTable = cloneDeep(this.table)
@@ -137,15 +154,17 @@ abstract class UserColumnMigrator implements ColumnMigrator {
let links = await sdk.links.fetchWithDocument(this.table._id!)
for (let link of links) {
+ const userSide = this.pickUserTableLinkSide(link)
+ const otherSide = this.pickOtherTableLinkSide(link)
if (
- link.doc1.tableId !== this.table._id ||
- link.doc1.fieldName !== this.oldColumn.name ||
- link.doc2.tableId !== InternalTable.USER_METADATA
+ otherSide.tableId !== this.table._id ||
+ otherSide.fieldName !== this.oldColumn.name ||
+ userSide.tableId !== InternalTable.USER_METADATA
) {
continue
}
- let row = rowsById[link.doc1.rowId]
+ let row = rowsById[otherSide.rowId]
if (!row) {
// This can happen if the row has been deleted but the link hasn't,
// which was a state that was found during the initial testing of this
@@ -153,7 +172,7 @@ abstract class UserColumnMigrator implements ColumnMigrator {
continue
}
- this.updateRow(row, link)
+ this.updateRow(row, userSide)
}
let db = context.getAppDB()
@@ -175,20 +194,20 @@ abstract class UserColumnMigrator implements ColumnMigrator {
}
class SingleUserColumnMigrator extends UserColumnMigrator {
- updateRow(row: Row, link: LinkDocument): void {
+ updateRow(row: Row, linkInfo: LinkInfo): void {
row[this.newColumn.name] = dbCore.getGlobalIDFromUserMetadataID(
- link.doc2.rowId
+ linkInfo.rowId
)
}
}
class MultiUserColumnMigrator extends UserColumnMigrator {
- updateRow(row: Row, link: LinkDocument): void {
+ updateRow(row: Row, linkInfo: LinkInfo): void {
if (!row[this.newColumn.name]) {
row[this.newColumn.name] = []
}
row[this.newColumn.name].push(
- dbCore.getGlobalIDFromUserMetadataID(link.doc2.rowId)
+ dbCore.getGlobalIDFromUserMetadataID(linkInfo.rowId)
)
}
}
diff --git a/packages/types/src/documents/app/links.ts b/packages/types/src/documents/app/links.ts
index d6b2adddf8..ae7e4de78e 100644
--- a/packages/types/src/documents/app/links.ts
+++ b/packages/types/src/documents/app/links.ts
@@ -1,17 +1,15 @@
import { Document } from "../document"
+export interface LinkInfo {
+ rowId: string
+ fieldName: string
+ tableId: string
+}
+
export interface LinkDocument extends Document {
type: string
- doc1: {
- rowId: string
- fieldName: string
- tableId: string
- }
- doc2: {
- rowId: string
- fieldName: string
- tableId: string
- }
+ doc1: LinkInfo
+ doc2: LinkInfo
}
export interface LinkDocumentValue {
diff --git a/pull_request_template.md b/pull_request_template.md
index 36e2f425d5..fa0f7f2143 100644
--- a/pull_request_template.md
+++ b/pull_request_template.md
@@ -1,18 +1,16 @@
## Description
+
_Describe the problem or feature in addition to a link to the relevant github issues._
-Addresses:
+Addresses:
+
- ``
- ...more if required
## App Export
+
- If possible, attach an app export file along with your request template to make QA testing easier, with minimal setup.
## Screenshots
+
_If a UI facing feature, a short video of the happy path, and some screenshots of the new functionality._
-
-## Documentation
-- [ ] I have reviewed the budibase documentatation to verify if this feature requires any changes. If changes or new docs are required I have written them.
-
-
-