diff --git a/hosting/couchdb/runner.sh b/hosting/couchdb/runner.sh
index 2e4d26122f..b576c886c2 100644
--- a/hosting/couchdb/runner.sh
+++ b/hosting/couchdb/runner.sh
@@ -26,27 +26,48 @@ if [[ "${TARGETBUILD}" = "aas" ]]; then
sed -i "s#DATA_DIR#/home#g" /opt/clouseau/clouseau.ini
sed -i "s#DATA_DIR#/home#g" /opt/couchdb/etc/local.ini
elif [[ "${TARGETBUILD}" = "single" ]]; then
+ # In the single image build, the Dockerfile specifies /data as a volume
+ # mount, so we use that for all persistent data.
sed -i "s#DATA_DIR#/data#g" /opt/clouseau/clouseau.ini
sed -i "s#DATA_DIR#/data#g" /opt/couchdb/etc/local.ini
elif [[ -n $KUBERNETES_SERVICE_HOST ]]; then
# In Kubernetes the directory /opt/couchdb/data has a persistent volume
# mount for storing database data.
sed -i "s#DATA_DIR#/opt/couchdb/data#g" /opt/clouseau/clouseau.ini
- sed -i "s#DATA_DIR#/opt/couchdb/data#g" /opt/couchdb/etc/local.ini
+
+ # We remove the database_dir and view_index_dir settings from the local.ini
+ # in Kubernetes because it will default to /opt/couchdb/data which is what
+ # our Helm chart was using prior to us switching to using our own CouchDB
+ # image.
+ sed -i "s#^database_dir.*\$##g" /opt/couchdb/etc/local.ini
+ sed -i "s#^view_index_dir.*\$##g" /opt/couchdb/etc/local.ini
+
+ # We remove the -name setting from the vm.args file in Kubernetes because
+ # it will default to the pod FQDN, which is what's required for clustering
+ # to work.
sed -i "s/^-name .*$//g" /opt/couchdb/etc/vm.args
else
+ # For all other builds, we use /data for persistent data.
sed -i "s#DATA_DIR#/data#g" /opt/clouseau/clouseau.ini
sed -i "s#DATA_DIR#/data#g" /opt/couchdb/etc/local.ini
fi
+# Start Clouseau. Budibase won't function correctly without Clouseau running, it
+# powers the search API endpoints which are used to do all sorts, including
+# populating app grids.
/opt/clouseau/bin/clouseau > /dev/stdout 2>&1 &
+
+# Start CouchDB.
/docker-entrypoint.sh /opt/couchdb/bin/couchdb &
+# Wati for CouchDB to start up.
while [[ $(curl -s -w "%{http_code}\n" http://localhost:5984/_up -o /dev/null) -ne 200 ]]; do
echo 'Waiting for CouchDB to start...';
sleep 5;
done
+# CouchDB needs the `_users` and `_replicator` databases to exist before it will
+# function correctly, so we create them here.
curl -X PUT http://${COUCHDB_USER}:${COUCHDB_PASSWORD}@localhost:5984/_users
curl -X PUT http://${COUCHDB_USER}:${COUCHDB_PASSWORD}@localhost:5984/_replicator
sleep infinity
\ No newline at end of file
diff --git a/lerna.json b/lerna.json
index 38872a31b1..e54b76c5e9 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "2.13.18",
+ "version": "2.13.19",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/bbui/src/Form/Core/Switch.svelte b/packages/bbui/src/Form/Core/Switch.svelte
index ffbef6b27d..deffc19167 100644
--- a/packages/bbui/src/Form/Core/Switch.svelte
+++ b/packages/bbui/src/Form/Core/Switch.svelte
@@ -18,6 +18,7 @@
checked={value}
{disabled}
on:change={onChange}
+ on:click
{id}
type="checkbox"
class="spectrum-Switch-input"
diff --git a/packages/bbui/src/Form/Toggle.svelte b/packages/bbui/src/Form/Toggle.svelte
index d452aa8f80..1fbad949ca 100644
--- a/packages/bbui/src/Form/Toggle.svelte
+++ b/packages/bbui/src/Form/Toggle.svelte
@@ -19,5 +19,5 @@