Merge branch 'master' into master-develop

This commit is contained in:
Andrew Kingston 2022-10-25 12:03:33 +01:00
commit 603c8744a5
25 changed files with 167 additions and 76 deletions

View File

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

View File

@ -79,6 +79,10 @@ spec:
value: {{ .Values.services.objectStore.url }}
- name: PLUGIN_BUCKET_NAME
value: {{ .Values.services.objectStore.pluginBucketName | default "plugins" | quote }}
- name: APPS_BUCKET_NAME
value: {{ .Values.services.objectStore.appsBucketName | default "apps" | quote }}
- name: GLOBAL_CLOUD_BUCKET_NAME
value: {{ .Values.services.objectStore.globalBucketName | default "global" | quote }}
- name: PORT
value: {{ .Values.services.worker.port | quote }}
- 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
ENV NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx
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
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 "${APPS_URL}" ]] && export APPS_URL=http://localhost:4001
# export CUSTOM_DOMAIN=budi001.custom.com
# Azure App Service customisations
if [[ "${TARGETBUILD}" = "aas" ]]; then
DATA_DIR=/home
@ -27,6 +28,13 @@ else
DATA_DIR=${DATA_DIR:-/data}
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
# Read in the .env file and export the variables
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.33",
"npmClient": "yarn",
"packages": [
"packages/*"

View File

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

View File

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

View File

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

View File

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

View File

@ -488,7 +488,7 @@
]}
getOptionLabel={option => option.label}
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."
/>
{/if}

View File

@ -7,6 +7,7 @@ import TableSelect from "./controls/TableSelect.svelte"
import ColorPicker from "./controls/ColorPicker.svelte"
import { IconSelect } from "./controls/IconSelect"
import FieldSelect from "./controls/FieldSelect.svelte"
import SortableFieldSelect from "./controls/SortableFieldSelect.svelte"
import MultiFieldSelect from "./controls/MultiFieldSelect.svelte"
import SearchFieldSelect from "./controls/SearchFieldSelect.svelte"
import SchemaSelect from "./controls/SchemaSelect.svelte"
@ -41,6 +42,7 @@ const componentMap = {
filter: FilterEditor,
url: URLSelect,
columns: ColumnEditor,
"field/sortable": SortableFieldSelect,
"field/string": FormFieldSelect,
"field/number": 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
</Button>
</div>
{#if filteredPlugins?.length}
{#if $plugins?.length}
<div class="filters">
<div class="select">
<Select

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1094,18 +1094,17 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@budibase/backend-core@2.0.30-alpha.17":
version "2.0.30-alpha.17"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.30-alpha.17.tgz#57a5b8894c9453445d81fc45d792f482d2ef98c2"
integrity sha512-PoWVpJlMNls/xIdKMjAQ7qCLqgZsEScqC40sBj/SUCAOGlDuzVKCQYk3hAnF+Q+5kLiWkPRoOsxu6fUh0viIFg==
"@budibase/backend-core@2.0.33":
version "2.0.33"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.33.tgz#adb9e727deeb8a46932f8f12090a9562dc34bb54"
integrity sha512-cHlBvk7JW351WfzvzE13VkPxcTwjFY/+dORsANjm2WeesmO9SKDINzakTEISI1EpJCl4r/b7P4jpx3OgX+iecg==
dependencies:
"@budibase/types" "2.0.30-alpha.17"
"@budibase/types" "^2.0.33"
"@shopify/jest-koa-mocks" "5.0.1"
"@techpass/passport-openidconnect" "0.3.2"
aws-sdk "2.1030.0"
bcrypt "5.0.1"
bcryptjs "2.4.3"
bull "4.10.1"
dotenv "16.0.1"
emitter-listener "1.1.2"
ioredis "4.28.0"
@ -1181,15 +1180,14 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
"@budibase/pro@2.0.30-alpha.17":
version "2.0.30-alpha.17"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.30-alpha.17.tgz#f6c01d0f5983bc28aad4e0e6a11efa3f9fab6340"
integrity sha512-TvU5CJdTdd8c/aTymg2EzMfXg24i3ZdpjBfsFTDhnS3BOFP/rpMU2LyHCbhhFj6dvJzLNwY2FOKh+RYkL0hxNw==
"@budibase/pro@2.0.33":
version "2.0.33"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.33.tgz#be74080445036373c2cb34798b5a6f6a11267f7e"
integrity sha512-bVQmw/qY9WqDkmdX38Ga0UdQg7xd+uLzXAqRPkuOBeKr+gXvIdYrRHuuaoos47asxhd9+NcwjyYNai6FZ/w30w==
dependencies:
"@budibase/backend-core" "2.0.30-alpha.17"
"@budibase/types" "2.0.30-alpha.17"
"@budibase/backend-core" "2.0.33"
"@budibase/types" "2.0.33"
"@koa/router" "8.0.8"
bull "4.10.1"
joi "17.6.0"
node-fetch "^2.6.1"
@ -1211,10 +1209,10 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
"@budibase/types@2.0.30-alpha.17":
version "2.0.30-alpha.17"
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.30-alpha.17.tgz#c860278094551731f0a232288c47c5b4d129678a"
integrity sha512-wCGHNIJXfd8C8i9lIxlCqnbE3fLPeQy6csNbvyEpt6gw/4ixDwUJbtnL6r9NzPdpjdZl5OlaqDPm+Xy4jWLI6Q==
"@budibase/types@2.0.33", "@budibase/types@^2.0.33":
version "2.0.33"
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.33.tgz#0e87fd976ad9e5a84f05b3dfa0daf71e9150cd7b"
integrity sha512-QVUciZO4wkJpWyWNgP1MxKdfDzP1of6iDLFfo6J/lgp5voluFxEZsY0A5MOMQEf8TFw990h3gCOCNaN/GwMviw==
"@bull-board/api@3.7.0":
version "3.7.0"

View File

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

View File

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

View File

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

View File

@ -291,18 +291,17 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@budibase/backend-core@2.0.30-alpha.17":
version "2.0.30-alpha.17"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.30-alpha.17.tgz#57a5b8894c9453445d81fc45d792f482d2ef98c2"
integrity sha512-PoWVpJlMNls/xIdKMjAQ7qCLqgZsEScqC40sBj/SUCAOGlDuzVKCQYk3hAnF+Q+5kLiWkPRoOsxu6fUh0viIFg==
"@budibase/backend-core@2.0.33":
version "2.0.33"
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.33.tgz#adb9e727deeb8a46932f8f12090a9562dc34bb54"
integrity sha512-cHlBvk7JW351WfzvzE13VkPxcTwjFY/+dORsANjm2WeesmO9SKDINzakTEISI1EpJCl4r/b7P4jpx3OgX+iecg==
dependencies:
"@budibase/types" "2.0.30-alpha.17"
"@budibase/types" "^2.0.33"
"@shopify/jest-koa-mocks" "5.0.1"
"@techpass/passport-openidconnect" "0.3.2"
aws-sdk "2.1030.0"
bcrypt "5.0.1"
bcryptjs "2.4.3"
bull "4.10.1"
dotenv "16.0.1"
emitter-listener "1.1.2"
ioredis "4.28.0"
@ -328,22 +327,21 @@
uuid "8.3.2"
zlib "1.0.5"
"@budibase/pro@2.0.30-alpha.17":
version "2.0.30-alpha.17"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.30-alpha.17.tgz#f6c01d0f5983bc28aad4e0e6a11efa3f9fab6340"
integrity sha512-TvU5CJdTdd8c/aTymg2EzMfXg24i3ZdpjBfsFTDhnS3BOFP/rpMU2LyHCbhhFj6dvJzLNwY2FOKh+RYkL0hxNw==
"@budibase/pro@2.0.33":
version "2.0.33"
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.33.tgz#be74080445036373c2cb34798b5a6f6a11267f7e"
integrity sha512-bVQmw/qY9WqDkmdX38Ga0UdQg7xd+uLzXAqRPkuOBeKr+gXvIdYrRHuuaoos47asxhd9+NcwjyYNai6FZ/w30w==
dependencies:
"@budibase/backend-core" "2.0.30-alpha.17"
"@budibase/types" "2.0.30-alpha.17"
"@budibase/backend-core" "2.0.33"
"@budibase/types" "2.0.33"
"@koa/router" "8.0.8"
bull "4.10.1"
joi "17.6.0"
node-fetch "^2.6.1"
"@budibase/types@2.0.30-alpha.17":
version "2.0.30-alpha.17"
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.30-alpha.17.tgz#c860278094551731f0a232288c47c5b4d129678a"
integrity sha512-wCGHNIJXfd8C8i9lIxlCqnbE3fLPeQy6csNbvyEpt6gw/4ixDwUJbtnL6r9NzPdpjdZl5OlaqDPm+Xy4jWLI6Q==
"@budibase/types@2.0.33", "@budibase/types@^2.0.33":
version "2.0.33"
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.33.tgz#0e87fd976ad9e5a84f05b3dfa0daf71e9150cd7b"
integrity sha512-QVUciZO4wkJpWyWNgP1MxKdfDzP1of6iDLFfo6J/lgp5voluFxEZsY0A5MOMQEf8TFw990h3gCOCNaN/GwMviw==
"@cspotcode/source-map-consumer@0.8.0":
version "0.8.0"