Merge remote-tracking branch 'origin/develop' into pc/backups-ui-fixes

This commit is contained in:
Peter Clement 2022-10-25 16:27:32 +01:00
commit 45c98041ff
32 changed files with 190 additions and 82 deletions

View File

@ -79,7 +79,11 @@ spec:
- name: MINIO_URL - name: MINIO_URL
value: {{ .Values.services.objectStore.url }} value: {{ .Values.services.objectStore.url }}
- name: PLUGIN_BUCKET_NAME - name: PLUGIN_BUCKET_NAME
value: {{ .Values.services.objectStore.pluginBucketName | default "plugins" | quote }} value: {{ .Values.services.objectStore.pluginBucketName | quote }}
- name: APPS_BUCKET_NAME
value: {{ .Values.services.objectStore.appsBucketName | quote }}
- name: GLOBAL_CLOUD_BUCKET_NAME
value: {{ .Values.services.objectStore.globalBucketName | quote }}
- name: PORT - name: PORT
value: {{ .Values.services.apps.port | quote }} value: {{ .Values.services.apps.port | quote }}
{{ if .Values.services.worker.publicApiRateLimitPerSecond }} {{ if .Values.services.worker.publicApiRateLimitPerSecond }}

View File

@ -78,7 +78,11 @@ spec:
- name: MINIO_URL - name: MINIO_URL
value: {{ .Values.services.objectStore.url }} value: {{ .Values.services.objectStore.url }}
- name: PLUGIN_BUCKET_NAME - name: PLUGIN_BUCKET_NAME
value: {{ .Values.services.objectStore.pluginBucketName | default "plugins" | quote }} value: {{ .Values.services.objectStore.pluginBucketName | quote }}
- name: APPS_BUCKET_NAME
value: {{ .Values.services.objectStore.appsBucketName | quote }}
- name: GLOBAL_CLOUD_BUCKET_NAME
value: {{ .Values.services.objectStore.globalBucketName | quote }}
- name: PORT - name: PORT
value: {{ .Values.services.worker.port | quote }} value: {{ .Values.services.worker.port | quote }}
- name: MULTI_TENANCY - name: MULTI_TENANCY

View File

@ -0,0 +1,24 @@
#!/bin/sh
# vim:sw=4:ts=4:et
set -e
ME=$(basename $0)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
DEFAULT_CONF_FILE="/etc/nginx/conf.d/default.conf"
# check if we have ipv6 available
if [ ! -f "/proc/net/if_inet6" ]; then
# ipv6 not available so delete lines from nginx conf
if [ -f "$NGINX_CONF_FILE" ]; then
sed -i '/listen \[::\]/d' $NGINX_CONF_FILE
fi
if [ -f "$DEFAULT_CONF_FILE" ]; then
sed -i '/listen \[::\]/d' $DEFAULT_CONF_FILE
fi
echo "$ME: info: ipv6 not available so delete lines from nginx conf"
else
echo "$ME: info: ipv6 is available so no need to delete lines from nginx conf"
fi
exit 0

View File

@ -5,7 +5,12 @@ FROM nginx:latest
# override the output dir to output directly to /etc/nginx instead of /etc/nginx/conf.d # override the output dir to output directly to /etc/nginx instead of /etc/nginx/conf.d
ENV NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx ENV NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx
COPY .generated-nginx.prod.conf /etc/nginx/templates/nginx.conf.template COPY .generated-nginx.prod.conf /etc/nginx/templates/nginx.conf.template
COPY 10-listen-on-ipv6-by-default.sh /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
# IPv6 removal needs to happen after envsubst
RUN rm -rf /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
COPY 80-listen-on-ipv6-by-default.sh /docker-entrypoint.d/80-listen-on-ipv6-by-default.sh
RUN chmod +x /docker-entrypoint.d/80-listen-on-ipv6-by-default.sh
# Error handling # Error handling
COPY error.html /usr/share/nginx/html/error.html COPY error.html /usr/share/nginx/html/error.html

View File

@ -18,6 +18,7 @@ declare -a DOCKER_VARS=("APP_PORT" "APPS_URL" "ARCHITECTURE" "BUDIBASE_ENVIRONME
[[ -z "${WORKER_URL}" ]] && export WORKER_URL=http://localhost:4002 [[ -z "${WORKER_URL}" ]] && export WORKER_URL=http://localhost:4002
[[ -z "${APPS_URL}" ]] && export APPS_URL=http://localhost:4001 [[ -z "${APPS_URL}" ]] && export APPS_URL=http://localhost:4001
# export CUSTOM_DOMAIN=budi001.custom.com # export CUSTOM_DOMAIN=budi001.custom.com
# Azure App Service customisations # Azure App Service customisations
if [[ "${TARGETBUILD}" = "aas" ]]; then if [[ "${TARGETBUILD}" = "aas" ]]; then
DATA_DIR=/home DATA_DIR=/home
@ -27,6 +28,13 @@ else
DATA_DIR=${DATA_DIR:-/data} DATA_DIR=${DATA_DIR:-/data}
fi fi
# Mount NFS or GCP Filestore if env vars exist for it
if [[ -z ${FILESHARE_IP} && -z ${FILESHARE_NAME} ]]; then
echo "Mount file share ${FILESHARE_IP}:/${FILESHARE_NAME} to ${DATA_DIR}"
mount -o nolock ${FILESHARE_IP}:/${FILESHARE_NAME} ${DATA_DIR}
echo "Mounting completed."
fi
if [ -f "${DATA_DIR}/.env" ]; then if [ -f "${DATA_DIR}/.env" ]; then
# Read in the .env file and export the variables # Read in the .env file and export the variables
for LINE in $(cat ${DATA_DIR}/.env); do export $LINE; done for LINE in $(cat ${DATA_DIR}/.env); do export $LINE; done

View File

@ -1,5 +1,5 @@
{ {
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"npmClient": "yarn", "npmClient": "yarn",
"packages": [ "packages": [
"packages/*" "packages/*"

View File

@ -1,6 +1,6 @@
{ {
"name": "@budibase/backend-core", "name": "@budibase/backend-core",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Budibase backend core libraries used in server and worker", "description": "Budibase backend core libraries used in server and worker",
"main": "dist/src/index.js", "main": "dist/src/index.js",
"types": "dist/src/index.d.ts", "types": "dist/src/index.d.ts",
@ -20,7 +20,7 @@
"test:watch": "jest --watchAll" "test:watch": "jest --watchAll"
}, },
"dependencies": { "dependencies": {
"@budibase/types": "2.0.30-alpha.17", "@budibase/types": "2.0.34-alpha.1",
"@shopify/jest-koa-mocks": "5.0.1", "@shopify/jest-koa-mocks": "5.0.1",
"@techpass/passport-openidconnect": "0.3.2", "@techpass/passport-openidconnect": "0.3.2",
"aws-sdk": "2.1030.0", "aws-sdk": "2.1030.0",

View File

@ -55,7 +55,12 @@ export const doWithLock = async (opts: LockOptions, task: any) => {
let lock let lock
try { try {
// aquire lock // aquire lock
let name: string = `${tenancy.getTenantId()}_${opts.name}` let name: string
if (opts.systemLock) {
name = opts.name
} else {
name = `${tenancy.getTenantId()}_${opts.name}`
}
if (opts.nameSuffix) { if (opts.nameSuffix) {
name = name + `_${opts.nameSuffix}` name = name + `_${opts.nameSuffix}`
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@budibase/bbui", "name": "@budibase/bbui",
"description": "A UI solution used in the different Budibase projects.", "description": "A UI solution used in the different Budibase projects.",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"license": "MPL-2.0", "license": "MPL-2.0",
"svelte": "src/index.js", "svelte": "src/index.js",
"module": "dist/bbui.es.js", "module": "dist/bbui.es.js",
@ -38,7 +38,7 @@
], ],
"dependencies": { "dependencies": {
"@adobe/spectrum-css-workflow-icons": "^1.2.1", "@adobe/spectrum-css-workflow-icons": "^1.2.1",
"@budibase/string-templates": "2.0.30-alpha.17", "@budibase/string-templates": "2.0.34-alpha.1",
"@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actionbutton": "^1.0.1",
"@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1",
"@spectrum-css/avatar": "^3.0.2", "@spectrum-css/avatar": "^3.0.2",

View File

@ -1,6 +1,6 @@
{ {
"name": "@budibase/builder", "name": "@budibase/builder",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"license": "GPL-3.0", "license": "GPL-3.0",
"private": true, "private": true,
"scripts": { "scripts": {
@ -71,10 +71,10 @@
} }
}, },
"dependencies": { "dependencies": {
"@budibase/bbui": "2.0.30-alpha.17", "@budibase/bbui": "2.0.34-alpha.1",
"@budibase/client": "2.0.30-alpha.17", "@budibase/client": "2.0.34-alpha.1",
"@budibase/frontend-core": "2.0.30-alpha.17", "@budibase/frontend-core": "2.0.34-alpha.1",
"@budibase/string-templates": "2.0.30-alpha.17", "@budibase/string-templates": "2.0.34-alpha.1",
"@sentry/browser": "5.19.1", "@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1", "@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1", "@spectrum-css/vars": "^3.0.1",

View File

@ -8,6 +8,7 @@
import CreateEditRow from "./modals/CreateEditRow.svelte" import CreateEditRow from "./modals/CreateEditRow.svelte"
import CreateEditUser from "./modals/CreateEditUser.svelte" import CreateEditUser from "./modals/CreateEditUser.svelte"
import CreateEditColumn from "./modals/CreateEditColumn.svelte" import CreateEditColumn from "./modals/CreateEditColumn.svelte"
import { cloneDeep } from "lodash/fp"
import { import {
TableNames, TableNames,
UNEDITABLE_USER_FIELDS, UNEDITABLE_USER_FIELDS,
@ -110,7 +111,7 @@
} }
const editColumn = field => { const editColumn = field => {
editableColumn = schema?.[field] editableColumn = cloneDeep(schema?.[field])
if (editableColumn) { if (editableColumn) {
editColumnModal.show() editColumnModal.show()
} }

View File

@ -488,7 +488,7 @@
]} ]}
getOptionLabel={option => option.label} getOptionLabel={option => option.label}
getOptionValue={option => option.value} getOptionValue={option => option.value}
tooltip="Dynamic formula are calculated when retrieved, but cannot be filtered, tooltip="Dynamic formula are calculated when retrieved, but cannot be filtered or sorted by,
while static formula are calculated when the row is saved." while static formula are calculated when the row is saved."
/> />
{/if} {/if}

View File

@ -7,6 +7,7 @@ import TableSelect from "./controls/TableSelect.svelte"
import ColorPicker from "./controls/ColorPicker.svelte" import ColorPicker from "./controls/ColorPicker.svelte"
import { IconSelect } from "./controls/IconSelect" import { IconSelect } from "./controls/IconSelect"
import FieldSelect from "./controls/FieldSelect.svelte" import FieldSelect from "./controls/FieldSelect.svelte"
import SortableFieldSelect from "./controls/SortableFieldSelect.svelte"
import MultiFieldSelect from "./controls/MultiFieldSelect.svelte" import MultiFieldSelect from "./controls/MultiFieldSelect.svelte"
import SearchFieldSelect from "./controls/SearchFieldSelect.svelte" import SearchFieldSelect from "./controls/SearchFieldSelect.svelte"
import SchemaSelect from "./controls/SchemaSelect.svelte" import SchemaSelect from "./controls/SchemaSelect.svelte"
@ -41,6 +42,7 @@ const componentMap = {
filter: FilterEditor, filter: FilterEditor,
url: URLSelect, url: URLSelect,
columns: ColumnEditor, columns: ColumnEditor,
"field/sortable": SortableFieldSelect,
"field/string": FormFieldSelect, "field/string": FormFieldSelect,
"field/number": FormFieldSelect, "field/number": FormFieldSelect,
"field/options": FormFieldSelect, "field/options": FormFieldSelect,

View File

@ -0,0 +1,47 @@
<script>
import { Select } from "@budibase/bbui"
import {
getDatasourceForProvider,
getSchemaForDatasource,
} from "builderStore/dataBinding"
import { currentAsset } from "builderStore"
import { createEventDispatcher } from "svelte"
import { UNSORTABLE_TYPES } from "constants"
export let componentInstance = {}
export let value = ""
export let placeholder
const dispatch = createEventDispatcher()
$: datasource = getDatasourceForProvider($currentAsset, componentInstance)
$: schema = getSchemaForDatasource($currentAsset, datasource).schema
$: options = getSortableFields(schema)
$: boundValue = getValidValue(value, options)
const getSortableFields = schema => {
return Object.entries(schema || {})
.filter(entry => !UNSORTABLE_TYPES.includes(entry[1].type))
.map(entry => entry[0])
}
const getValidValue = (value, options) => {
// Reset value if there aren't any options
if (!Array.isArray(options)) {
return null
}
// Reset value if the value isn't found in the options
if (options.indexOf(value) === -1) {
return null
}
return value
}
const onChange = value => {
boundValue = getValidValue(value.detail, options)
dispatch("change", boundValue)
}
</script>
<Select {placeholder} value={boundValue} on:change={onChange} {options} />

View File

@ -55,7 +55,7 @@
Add plugin Add plugin
</Button> </Button>
</div> </div>
{#if filteredPlugins?.length} {#if $plugins?.length}
<div class="filters"> <div class="filters">
<div class="select"> <div class="select">
<Select <Select

View File

@ -1,6 +1,6 @@
{ {
"name": "@budibase/cli", "name": "@budibase/cli",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Budibase CLI, for developers, self hosting and migrations.", "description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js", "main": "src/index.js",
"bin": { "bin": {
@ -26,9 +26,9 @@
"outputPath": "build" "outputPath": "build"
}, },
"dependencies": { "dependencies": {
"@budibase/backend-core": "2.0.30-alpha.17", "@budibase/backend-core": "2.0.34-alpha.1",
"@budibase/string-templates": "2.0.30-alpha.17", "@budibase/string-templates": "2.0.34-alpha.1",
"@budibase/types": "2.0.30-alpha.17", "@budibase/types": "2.0.34-alpha.1",
"axios": "0.21.2", "axios": "0.21.2",
"chalk": "4.1.0", "chalk": "4.1.0",
"cli-progress": "3.11.2", "cli-progress": "3.11.2",

View File

@ -3654,7 +3654,7 @@
"key": "filter" "key": "filter"
}, },
{ {
"type": "field", "type": "field/sortable",
"label": "Sort Column", "label": "Sort Column",
"key": "sortColumn" "key": "sortColumn"
}, },
@ -4479,7 +4479,7 @@
"key": "filter" "key": "filter"
}, },
{ {
"type": "field", "type": "field/sortable",
"label": "Sort Column", "label": "Sort Column",
"key": "sortColumn" "key": "sortColumn"
}, },
@ -4648,7 +4648,7 @@
"key": "filter" "key": "filter"
}, },
{ {
"type": "field", "type": "field/sortable",
"label": "Sort Column", "label": "Sort Column",
"key": "sortColumn" "key": "sortColumn"
}, },
@ -4815,7 +4815,7 @@
"key": "filter" "key": "filter"
}, },
{ {
"type": "field", "type": "field/sortable",
"label": "Sort Column", "label": "Sort Column",
"key": "sortColumn" "key": "sortColumn"
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "@budibase/client", "name": "@budibase/client",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"license": "MPL-2.0", "license": "MPL-2.0",
"module": "dist/budibase-client.js", "module": "dist/budibase-client.js",
"main": "dist/budibase-client.js", "main": "dist/budibase-client.js",
@ -19,9 +19,9 @@
"dev:builder": "rollup -cw" "dev:builder": "rollup -cw"
}, },
"dependencies": { "dependencies": {
"@budibase/bbui": "2.0.30-alpha.17", "@budibase/bbui": "2.0.34-alpha.1",
"@budibase/frontend-core": "2.0.30-alpha.17", "@budibase/frontend-core": "2.0.34-alpha.1",
"@budibase/string-templates": "2.0.30-alpha.17", "@budibase/string-templates": "2.0.34-alpha.1",
"@spectrum-css/button": "^3.0.3", "@spectrum-css/button": "^3.0.3",
"@spectrum-css/card": "^3.0.3", "@spectrum-css/card": "^3.0.3",
"@spectrum-css/divider": "^1.0.3", "@spectrum-css/divider": "^1.0.3",

View File

@ -515,8 +515,8 @@
display: contents; display: contents;
} }
.component.pad :global(> *) { .component.pad :global(> *) {
padding: var(--spacing-l) !important; padding: var(--spacing-m) !important;
gap: var(--spacing-l) !important; gap: var(--spacing-m) !important;
border: 2px dashed var(--spectrum-global-color-gray-400) !important; border: 2px dashed var(--spectrum-global-color-gray-400) !important;
border-radius: 4px !important; border-radius: 4px !important;
transition: padding 260ms ease-out, border 260ms ease-out; transition: padding 260ms ease-out, border 260ms ease-out;

View File

@ -1,12 +1,12 @@
{ {
"name": "@budibase/frontend-core", "name": "@budibase/frontend-core",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Budibase frontend core libraries used in builder and client", "description": "Budibase frontend core libraries used in builder and client",
"author": "Budibase", "author": "Budibase",
"license": "MPL-2.0", "license": "MPL-2.0",
"svelte": "src/index.js", "svelte": "src/index.js",
"dependencies": { "dependencies": {
"@budibase/bbui": "2.0.30-alpha.17", "@budibase/bbui": "2.0.34-alpha.1",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"svelte": "^3.46.2" "svelte": "^3.46.2"
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "@budibase/sdk", "name": "@budibase/sdk",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Budibase Public API SDK", "description": "Budibase Public API SDK",
"author": "Budibase", "author": "Budibase",
"license": "MPL-2.0", "license": "MPL-2.0",

View File

@ -1,7 +1,7 @@
{ {
"name": "@budibase/server", "name": "@budibase/server",
"email": "hi@budibase.com", "email": "hi@budibase.com",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Budibase Web Server", "description": "Budibase Web Server",
"main": "src/index.ts", "main": "src/index.ts",
"repository": { "repository": {
@ -77,11 +77,11 @@
"license": "GPL-3.0", "license": "GPL-3.0",
"dependencies": { "dependencies": {
"@apidevtools/swagger-parser": "10.0.3", "@apidevtools/swagger-parser": "10.0.3",
"@budibase/backend-core": "2.0.30-alpha.17", "@budibase/backend-core": "2.0.34-alpha.1",
"@budibase/client": "2.0.30-alpha.17", "@budibase/client": "2.0.34-alpha.1",
"@budibase/pro": "2.0.30-alpha.17", "@budibase/pro": "2.0.34-alpha.1",
"@budibase/string-templates": "2.0.30-alpha.17", "@budibase/string-templates": "2.0.34-alpha.1",
"@budibase/types": "2.0.30-alpha.17", "@budibase/types": "2.0.34-alpha.1",
"@bull-board/api": "3.7.0", "@bull-board/api": "3.7.0",
"@bull-board/koa": "3.9.4", "@bull-board/koa": "3.9.4",
"@elastic/elasticsearch": "7.10.0", "@elastic/elasticsearch": "7.10.0",

View File

@ -122,7 +122,6 @@ module.exports = server.listen(env.PORT || 0, async () => {
eventEmitter.emitPort(env.PORT) eventEmitter.emitPort(env.PORT)
fileSystem.init() fileSystem.init()
await redis.init() await redis.init()
await initPro()
// run migrations on startup if not done via http // run migrations on startup if not done via http
// not recommended in a clustered environment // not recommended in a clustered environment
@ -180,8 +179,11 @@ module.exports = server.listen(env.PORT || 0, async () => {
// check for version updates // check for version updates
await installation.checkInstallVersion() await installation.checkInstallVersion()
// done last - this will never complete // done last - these will never complete
await automations.init() let promises = []
promises.push(automations.init())
promises.push(initPro())
await Promise.all(promises)
}) })
const shutdown = () => { const shutdown = () => {

View File

@ -116,8 +116,8 @@ exports.externalTrigger = async function (
exports.rebootTrigger = async () => { exports.rebootTrigger = async () => {
// reboot cron option is only available on the main thread at // reboot cron option is only available on the main thread at
// startup and only usable in self host // startup and only usable in self host and single tenant environments
if (env.isInThread() || !env.SELF_HOSTED) { if (env.isInThread() || !env.SELF_HOSTED || env.MULTI_TENANCY) {
return return
} }
// iterate through all production apps, find the reboot crons // iterate through all production apps, find the reboot crons

View File

@ -97,6 +97,7 @@ const migrateWithLock = async (options?: MigrationOptions) => {
type: LockType.TRY_ONCE, type: LockType.TRY_ONCE,
name: LockName.MIGRATIONS, name: LockName.MIGRATIONS,
ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes
systemLock: true,
}, },
async () => { async () => {
await migrations.runMigrations(MIGRATIONS, options) await migrations.runMigrations(MIGRATIONS, options)

View File

@ -1094,12 +1094,12 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@budibase/backend-core@2.0.30-alpha.17": "@budibase/backend-core@2.0.34-alpha.1":
version "2.0.30-alpha.17" version "2.0.34-alpha.1"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.30-alpha.17.tgz#57a5b8894c9453445d81fc45d792f482d2ef98c2" resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.34-alpha.1.tgz#855277b12c31d7f9bc2d83b8b8c84031924cae50"
integrity sha512-PoWVpJlMNls/xIdKMjAQ7qCLqgZsEScqC40sBj/SUCAOGlDuzVKCQYk3hAnF+Q+5kLiWkPRoOsxu6fUh0viIFg== integrity sha512-4GZ3PzVIHBNtWkcUy6XvThGisdY+79waLiLngUp1HDawO+xJrpr1rA0WofwoYrK14ZfQzib8ujfMZWH2ujEtBQ==
dependencies: dependencies:
"@budibase/types" "2.0.30-alpha.17" "@budibase/types" "2.0.34-alpha.1"
"@shopify/jest-koa-mocks" "5.0.1" "@shopify/jest-koa-mocks" "5.0.1"
"@techpass/passport-openidconnect" "0.3.2" "@techpass/passport-openidconnect" "0.3.2"
aws-sdk "2.1030.0" aws-sdk "2.1030.0"
@ -1181,13 +1181,13 @@
svelte-flatpickr "^3.2.3" svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0" svelte-portal "^1.0.0"
"@budibase/pro@2.0.30-alpha.17": "@budibase/pro@2.0.34-alpha.1":
version "2.0.30-alpha.17" version "2.0.34-alpha.1"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.30-alpha.17.tgz#f6c01d0f5983bc28aad4e0e6a11efa3f9fab6340" resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.34-alpha.1.tgz#7da5e46bb38b7defe49b6029bd28cde1c7850eba"
integrity sha512-TvU5CJdTdd8c/aTymg2EzMfXg24i3ZdpjBfsFTDhnS3BOFP/rpMU2LyHCbhhFj6dvJzLNwY2FOKh+RYkL0hxNw== integrity sha512-pIDQ0WXL3YfqBX0SjBGA9uxRFcHh+ydsC2aRe0gKCeTriNx0F76WlY4SiIn/5LuwnaH3xIcOAViMOGPDF1WTiQ==
dependencies: dependencies:
"@budibase/backend-core" "2.0.30-alpha.17" "@budibase/backend-core" "2.0.34-alpha.1"
"@budibase/types" "2.0.30-alpha.17" "@budibase/types" "2.0.34-alpha.1"
"@koa/router" "8.0.8" "@koa/router" "8.0.8"
bull "4.10.1" bull "4.10.1"
joi "17.6.0" joi "17.6.0"
@ -1211,10 +1211,10 @@
svelte-apexcharts "^1.0.2" svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0" svelte-flatpickr "^3.1.0"
"@budibase/types@2.0.30-alpha.17": "@budibase/types@2.0.34-alpha.1":
version "2.0.30-alpha.17" version "2.0.34-alpha.1"
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.30-alpha.17.tgz#c860278094551731f0a232288c47c5b4d129678a" resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.34-alpha.1.tgz#8e7a093ac12bedcb71a5b075cdd4d8bd543823b5"
integrity sha512-wCGHNIJXfd8C8i9lIxlCqnbE3fLPeQy6csNbvyEpt6gw/4ixDwUJbtnL6r9NzPdpjdZl5OlaqDPm+Xy4jWLI6Q== integrity sha512-YbID4zuwktUNgX5PRvJVgt6LzuXLDVt0Vxs5SNOd+IsoC6yz8fZjKC4pNj4wd6QAiIw2+eOxzaNFbj8ogE1tPg==
"@bull-board/api@3.7.0": "@bull-board/api@3.7.0":
version "3.7.0" version "3.7.0"

View File

@ -1,6 +1,6 @@
{ {
"name": "@budibase/string-templates", "name": "@budibase/string-templates",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Handlebars wrapper for Budibase templating.", "description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs", "main": "src/index.cjs",
"module": "dist/bundle.mjs", "module": "dist/bundle.mjs",

View File

@ -1,6 +1,6 @@
{ {
"name": "@budibase/types", "name": "@budibase/types",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Budibase types", "description": "Budibase types",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",

View File

@ -28,4 +28,8 @@ export interface LockOptions {
* The suffix to add to the lock name for additional uniqueness * The suffix to add to the lock name for additional uniqueness
*/ */
nameSuffix?: string nameSuffix?: string
/**
* This is a system-wide lock - don't use tenancy in lock key
*/
systemLock?: boolean
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "@budibase/worker", "name": "@budibase/worker",
"email": "hi@budibase.com", "email": "hi@budibase.com",
"version": "2.0.30-alpha.17", "version": "2.0.34-alpha.1",
"description": "Budibase background service", "description": "Budibase background service",
"main": "src/index.ts", "main": "src/index.ts",
"repository": { "repository": {
@ -36,10 +36,10 @@
"author": "Budibase", "author": "Budibase",
"license": "GPL-3.0", "license": "GPL-3.0",
"dependencies": { "dependencies": {
"@budibase/backend-core": "2.0.30-alpha.17", "@budibase/backend-core": "2.0.34-alpha.1",
"@budibase/pro": "2.0.30-alpha.17", "@budibase/pro": "2.0.34-alpha.1",
"@budibase/string-templates": "2.0.30-alpha.17", "@budibase/string-templates": "2.0.34-alpha.1",
"@budibase/types": "2.0.30-alpha.17", "@budibase/types": "2.0.34-alpha.1",
"@koa/router": "8.0.8", "@koa/router": "8.0.8",
"@sentry/node": "6.17.7", "@sentry/node": "6.17.7",
"@techpass/passport-openidconnect": "0.3.2", "@techpass/passport-openidconnect": "0.3.2",

View File

@ -53,6 +53,7 @@ const migrateWithLock = async (options?: MigrationOptions) => {
type: LockType.TRY_ONCE, type: LockType.TRY_ONCE,
name: LockName.MIGRATIONS, name: LockName.MIGRATIONS,
ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes
systemLock: true,
}, },
async () => { async () => {
await migrations.runMigrations(MIGRATIONS, options) await migrations.runMigrations(MIGRATIONS, options)

View File

@ -291,12 +291,12 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@budibase/backend-core@2.0.30-alpha.17": "@budibase/backend-core@2.0.34-alpha.1":
version "2.0.30-alpha.17" version "2.0.34-alpha.1"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.30-alpha.17.tgz#57a5b8894c9453445d81fc45d792f482d2ef98c2" resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.34-alpha.1.tgz#855277b12c31d7f9bc2d83b8b8c84031924cae50"
integrity sha512-PoWVpJlMNls/xIdKMjAQ7qCLqgZsEScqC40sBj/SUCAOGlDuzVKCQYk3hAnF+Q+5kLiWkPRoOsxu6fUh0viIFg== integrity sha512-4GZ3PzVIHBNtWkcUy6XvThGisdY+79waLiLngUp1HDawO+xJrpr1rA0WofwoYrK14ZfQzib8ujfMZWH2ujEtBQ==
dependencies: dependencies:
"@budibase/types" "2.0.30-alpha.17" "@budibase/types" "2.0.34-alpha.1"
"@shopify/jest-koa-mocks" "5.0.1" "@shopify/jest-koa-mocks" "5.0.1"
"@techpass/passport-openidconnect" "0.3.2" "@techpass/passport-openidconnect" "0.3.2"
aws-sdk "2.1030.0" aws-sdk "2.1030.0"
@ -328,22 +328,22 @@
uuid "8.3.2" uuid "8.3.2"
zlib "1.0.5" zlib "1.0.5"
"@budibase/pro@2.0.30-alpha.17": "@budibase/pro@2.0.34-alpha.1":
version "2.0.30-alpha.17" version "2.0.34-alpha.1"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.30-alpha.17.tgz#f6c01d0f5983bc28aad4e0e6a11efa3f9fab6340" resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.34-alpha.1.tgz#7da5e46bb38b7defe49b6029bd28cde1c7850eba"
integrity sha512-TvU5CJdTdd8c/aTymg2EzMfXg24i3ZdpjBfsFTDhnS3BOFP/rpMU2LyHCbhhFj6dvJzLNwY2FOKh+RYkL0hxNw== integrity sha512-pIDQ0WXL3YfqBX0SjBGA9uxRFcHh+ydsC2aRe0gKCeTriNx0F76WlY4SiIn/5LuwnaH3xIcOAViMOGPDF1WTiQ==
dependencies: dependencies:
"@budibase/backend-core" "2.0.30-alpha.17" "@budibase/backend-core" "2.0.34-alpha.1"
"@budibase/types" "2.0.30-alpha.17" "@budibase/types" "2.0.34-alpha.1"
"@koa/router" "8.0.8" "@koa/router" "8.0.8"
bull "4.10.1" bull "4.10.1"
joi "17.6.0" joi "17.6.0"
node-fetch "^2.6.1" node-fetch "^2.6.1"
"@budibase/types@2.0.30-alpha.17": "@budibase/types@2.0.34-alpha.1":
version "2.0.30-alpha.17" version "2.0.34-alpha.1"
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.30-alpha.17.tgz#c860278094551731f0a232288c47c5b4d129678a" resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.34-alpha.1.tgz#8e7a093ac12bedcb71a5b075cdd4d8bd543823b5"
integrity sha512-wCGHNIJXfd8C8i9lIxlCqnbE3fLPeQy6csNbvyEpt6gw/4ixDwUJbtnL6r9NzPdpjdZl5OlaqDPm+Xy4jWLI6Q== integrity sha512-YbID4zuwktUNgX5PRvJVgt6LzuXLDVt0Vxs5SNOd+IsoC6yz8fZjKC4pNj4wd6QAiIw2+eOxzaNFbj8ogE1tPg==
"@cspotcode/source-map-consumer@0.8.0": "@cspotcode/source-map-consumer@0.8.0":
version "0.8.0" version "0.8.0"