diff --git a/dbrepo-ui/components/OntologiesList.vue b/dbrepo-ui/components/OntologiesList.vue
index 44f0eddc3f4c8b3542cd1b7f237cac05603c6375..c7120cac4a1e58e4a1f22c651f77aebcaf002584 100644
--- a/dbrepo-ui/components/OntologiesList.vue
+++ b/dbrepo-ui/components/OntologiesList.vue
@@ -35,8 +35,8 @@
 </template>
 
 <script>
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/components/database/DatabaseToolbar.vue b/dbrepo-ui/components/database/DatabaseToolbar.vue
index 59b0bc6db65fe888ba74df900580193ff16e92f2..4177ae592cbae97090d0b109c576137b0ee74cbc 100644
--- a/dbrepo-ui/components/database/DatabaseToolbar.vue
+++ b/dbrepo-ui/components/database/DatabaseToolbar.vue
@@ -82,8 +82,8 @@
 </template>
 
 <script>
-import { useCacheStore } from '@/stores/cache'
-import { useUserStore } from '@/stores/user'
+import { useCacheStore } from '@/stores/cache.js'
+import { useUserStore } from '@/stores/user.js'
 import ResourceStatus from '@/components/ResourceStatus.vue'
 
 export default {
diff --git a/dbrepo-ui/components/dialogs/CreateOntology.vue b/dbrepo-ui/components/dialogs/CreateOntology.vue
index 2d5c9102e8902add7620b5863dc2bebaeb3c4187..837c7d817b609935be43f40b8655166257b80b07 100644
--- a/dbrepo-ui/components/dialogs/CreateOntology.vue
+++ b/dbrepo-ui/components/dialogs/CreateOntology.vue
@@ -78,7 +78,7 @@
 
 <script>
 import { notEmpty } from '@/utils'
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/components/dialogs/EditAccess.vue b/dbrepo-ui/components/dialogs/EditAccess.vue
index 856a442592bf9b40000b9295c8b7ed9bc17f6b78..ca18ba497da7a111ad04aa6c33a02a93058a0e9c 100644
--- a/dbrepo-ui/components/dialogs/EditAccess.vue
+++ b/dbrepo-ui/components/dialogs/EditAccess.vue
@@ -65,7 +65,7 @@
 </template>
 
 <script>
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   props: {
diff --git a/dbrepo-ui/components/dialogs/EditMaintenanceMessage.vue b/dbrepo-ui/components/dialogs/EditMaintenanceMessage.vue
index 263f2426dccf1f05200cd04a760b6e05fe087a0b..4940e75d66b28254449ce3ddf834dfa9fce83c7f 100644
--- a/dbrepo-ui/components/dialogs/EditMaintenanceMessage.vue
+++ b/dbrepo-ui/components/dialogs/EditMaintenanceMessage.vue
@@ -84,7 +84,7 @@
 
 <script>
 import { timestampToTimeZonedTimestamp, formatTimestampUTC } from '@/utils'
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   props: {
diff --git a/dbrepo-ui/components/dialogs/Semantics.vue b/dbrepo-ui/components/dialogs/Semantics.vue
index 12fffce66cd5b4647be1ae5b56c5e10be5facac4..e68a4fa55d245cbcb6ad052a8952ad96a9de5e53 100644
--- a/dbrepo-ui/components/dialogs/Semantics.vue
+++ b/dbrepo-ui/components/dialogs/Semantics.vue
@@ -134,7 +134,7 @@
 </template>
 
 <script>
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   props: {
diff --git a/dbrepo-ui/components/dialogs/ViewVisibility.vue b/dbrepo-ui/components/dialogs/ViewVisibility.vue
index 7d113116674f79d6980c71096061fc965c15e93e..6a37bf415348ac9b2fe1c705bd40e762596db26c 100644
--- a/dbrepo-ui/components/dialogs/ViewVisibility.vue
+++ b/dbrepo-ui/components/dialogs/ViewVisibility.vue
@@ -61,7 +61,7 @@
 </template>
 
 <script>
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   props: {
diff --git a/dbrepo-ui/components/identifier/Persist.vue b/dbrepo-ui/components/identifier/Persist.vue
index 5c6d7c62892c7427086b45f6916327d542289dc8..3dba450e634c6db374ccd28bd327ff2823756f3e 100644
--- a/dbrepo-ui/components/identifier/Persist.vue
+++ b/dbrepo-ui/components/identifier/Persist.vue
@@ -829,8 +829,8 @@
 
 <script>
 import { formatYearUTC, formatMonthUTC, formatDayUTC, languages } from '@/utils'
-import { useCacheStore } from '@/stores/cache'
-import { useUserStore } from '@/stores/user'
+import { useCacheStore } from '@/stores/cache.js'
+import { useUserStore } from '@/stores/user.js'
 import { MerkleJson } from 'merkle-json'
 
 export default {
diff --git a/dbrepo-ui/components/identifier/Select.vue b/dbrepo-ui/components/identifier/Select.vue
index e1de8d1b26bc021bdf54d98c106d7e79cd8ec65d..4404a09635c6833e609f74c4f685988550dc97c8 100644
--- a/dbrepo-ui/components/identifier/Select.vue
+++ b/dbrepo-ui/components/identifier/Select.vue
@@ -44,8 +44,8 @@
 <script>
 import Banner from '@/components/identifier/Banner.vue'
 import { formatTimestampUTCLabel } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/components/identifier/Summary.vue b/dbrepo-ui/components/identifier/Summary.vue
index 267693276c18cde26769f387ddc2f3f34ec97689..655a7bb907c9f8a6b868e280097033b157cd893c 100644
--- a/dbrepo-ui/components/identifier/Summary.vue
+++ b/dbrepo-ui/components/identifier/Summary.vue
@@ -142,7 +142,7 @@ import Banner from '@/components/identifier/Banner.vue'
 import Persist from '@/components/identifier/Persist.vue'
 import Creators from '@/components/identifier/Creators.vue'
 import { formatLanguage } from '@/utils'
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/components/subset/Builder.vue b/dbrepo-ui/components/subset/Builder.vue
index 2895476a59ea37a7db0cd768050012bbff9f6cff..b45881479cb5243861ab8137a99999def787e551 100644
--- a/dbrepo-ui/components/subset/Builder.vue
+++ b/dbrepo-ui/components/subset/Builder.vue
@@ -307,8 +307,8 @@
 import TimeDrift from '@/components/TimeDrift.vue'
 import Raw from '@/components/subset/Raw.vue'
 import Results from '@/components/subset/Results.vue'
-import { useCacheStore } from '@/stores/cache'
-import { useUserStore } from '@/stores/user'
+import { useCacheStore } from '@/stores/cache.js'
+import { useUserStore } from '@/stores/user.js'
 import { format } from 'sql-formatter'
 
 export default {
diff --git a/dbrepo-ui/components/subset/SubsetList.vue b/dbrepo-ui/components/subset/SubsetList.vue
index 62a456eb793ae1f95a49fda7569e8fb8799b9ccb..6908b2b4381d88d7b5a7a19ce540b4c88c633e0e 100644
--- a/dbrepo-ui/components/subset/SubsetList.vue
+++ b/dbrepo-ui/components/subset/SubsetList.vue
@@ -46,8 +46,8 @@
 
 <script>
 import { formatTimestampUTCLabel } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/components/subset/SubsetToolbar.vue b/dbrepo-ui/components/subset/SubsetToolbar.vue
index 405bb6d00fe4989a2e73c6abb2bf518194ff5b1a..874e691c5f15766d7b4a0fb4809eb19058418c9c 100644
--- a/dbrepo-ui/components/subset/SubsetToolbar.vue
+++ b/dbrepo-ui/components/subset/SubsetToolbar.vue
@@ -59,8 +59,8 @@
 <script>
 import DownloadButton from '@/components/identifier/DownloadButton.vue'
 import { formatTimestampUTCLabel } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/components/table/TableImport.vue b/dbrepo-ui/components/table/TableImport.vue
index 580839974eeab5525fb090dcc6bdcea977846fec..a4eb63733bb534e83166f76fbf006cf354828291 100644
--- a/dbrepo-ui/components/table/TableImport.vue
+++ b/dbrepo-ui/components/table/TableImport.vue
@@ -264,7 +264,7 @@
 </template>
 
 <script>
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   props: {
diff --git a/dbrepo-ui/components/table/TableList.vue b/dbrepo-ui/components/table/TableList.vue
index 234470076db8bb400542fdebe4274b2eefad8e62..b78e20ae3a6d423a90a636f119d96e4b406ea45d 100644
--- a/dbrepo-ui/components/table/TableList.vue
+++ b/dbrepo-ui/components/table/TableList.vue
@@ -40,8 +40,8 @@
 
 <script>
 import { formatTimestampUTCLabel } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/components/table/TableSchema.vue b/dbrepo-ui/components/table/TableSchema.vue
index 24c4fcd6823cd8d2bf33d3be5d61217978798f5c..baf04272b40573eb7c9fd8ab96a0f8b2947c82e5 100644
--- a/dbrepo-ui/components/table/TableSchema.vue
+++ b/dbrepo-ui/components/table/TableSchema.vue
@@ -196,7 +196,7 @@
 </template>
 
 <script>
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   props: {
diff --git a/dbrepo-ui/components/table/TableToolbar.vue b/dbrepo-ui/components/table/TableToolbar.vue
index 9821cb6fe4bbbbcfb4ad5de1df1160fedb84c722..d6fd4868eae0e65a52d932339ba5bbab6e3ad56f 100644
--- a/dbrepo-ui/components/table/TableToolbar.vue
+++ b/dbrepo-ui/components/table/TableToolbar.vue
@@ -79,8 +79,8 @@
 
 <script>
 import EditTuple from '@/components/dialogs/EditTuple.vue'
-import { useCacheStore } from '@/stores/cache'
-import { useUserStore } from '@/stores/user'
+import { useCacheStore } from '@/stores/cache.js'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/components/user/UserToolbar.vue b/dbrepo-ui/components/user/UserToolbar.vue
index b7452e52c77ca5b10fd4f7f8f070821551a71f60..e5a20c75a3230d80dc3e6f63c27c5bb6a743a463 100644
--- a/dbrepo-ui/components/user/UserToolbar.vue
+++ b/dbrepo-ui/components/user/UserToolbar.vue
@@ -21,7 +21,7 @@
 </template>
 
 <script>
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/components/view/ViewList.vue b/dbrepo-ui/components/view/ViewList.vue
index 1b278a555c1154492882e92773b0f9203057c799..d6539bd253cb7ef40c202633db53d564ec1e6269 100644
--- a/dbrepo-ui/components/view/ViewList.vue
+++ b/dbrepo-ui/components/view/ViewList.vue
@@ -34,8 +34,8 @@
 </template>
 
 <script>
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/components/view/ViewToolbar.vue b/dbrepo-ui/components/view/ViewToolbar.vue
index 6528dd3cd494c8cf878aea2149e41d1a5571e050..4ed83ff43fa777f9f8f663cf020d89d5d58456cd 100644
--- a/dbrepo-ui/components/view/ViewToolbar.vue
+++ b/dbrepo-ui/components/view/ViewToolbar.vue
@@ -57,10 +57,10 @@
 </template>
 
 <script>
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
-import CreateOntology from "@/components/dialogs/CreateOntology.vue"
-import ViewVisibility from "@/components/dialogs/ViewVisibility.vue"
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
+import CreateOntology from '@/components/dialogs/CreateOntology.vue'
+import ViewVisibility from '@/components/dialogs/ViewVisibility.vue'
 
 export default {
   components: {
diff --git a/dbrepo-ui/layouts/default.vue b/dbrepo-ui/layouts/default.vue
index ad00d8117309a83844d42d2c52faa44c34a55a0b..0ad4cb818d353d283c15d0cc7c6240fec513a54b 100644
--- a/dbrepo-ui/layouts/default.vue
+++ b/dbrepo-ui/layouts/default.vue
@@ -175,8 +175,8 @@ useServerHead({
 </script>
 <script>
 import JumboBox from '@/components/JumboBox.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 import { errorCodeKey, makeError } from '@/utils'
 
 export default {
diff --git a/dbrepo-ui/pages/database/[database_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/info.vue
index 02c2c8310ae9bafe8ce458decf6ccdd86a6cba37..6e1e35aabb3b2c150f532edf8c8fea5af610088c 100644
--- a/dbrepo-ui/pages/database/[database_id]/info.vue
+++ b/dbrepo-ui/pages/database/[database_id]/info.vue
@@ -169,8 +169,8 @@ import Summary from '@/components/identifier/Summary.vue'
 import Select from '@/components/identifier/Select.vue'
 import UserBadge from '@/components/user/UserBadge.vue'
 import { sizeToHumanLabel } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/settings.vue b/dbrepo-ui/pages/database/[database_id]/settings.vue
index aed13a4e1e3ca25db85b8f905415a55336ba9fa2..d0fb517daebc37d65c3d18f1faed9f631a0ecff0 100644
--- a/dbrepo-ui/pages/database/[database_id]/settings.vue
+++ b/dbrepo-ui/pages/database/[database_id]/settings.vue
@@ -247,8 +247,8 @@
 <script>
 import DatabaseToolbar from '@/components/database/DatabaseToolbar.vue'
 import EditAccess from '@/components/dialogs/EditAccess.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/data.vue b/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/data.vue
index 37c34a71677e1e8aa92464d43c47d89a95d22a81..f96b6e41758eb2a6e25d6ea3425dfb3c2ea043b3 100644
--- a/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/data.vue
+++ b/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/data.vue
@@ -52,7 +52,7 @@
 import QueryResults from '@/components/subset/Results.vue'
 import SubsetToolbar from '@/components/subset/SubsetToolbar.vue'
 import { formatTimestampUTCLabel } from '@/utils'
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/info.vue
index f27153bebfc710b82f25fb0cc3d3a92297472aac..f067fbadb4a190aff0843e289281971997426772 100644
--- a/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/info.vue
+++ b/dbrepo-ui/pages/database/[database_id]/subset/[subset_id]/info.vue
@@ -92,8 +92,8 @@ import SubsetToolbar from '@/components/subset/SubsetToolbar.vue'
 import Select from '@/components/identifier/Select.vue'
 import UserBadge from '@/components/user/UserBadge.vue'
 import { formatTimestampUTCLabel } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/subset/create.vue b/dbrepo-ui/pages/database/[database_id]/subset/create.vue
index b533dfb1a8e0af06cd1428032ebf188c9d3c4b0f..0fb591f9f8307018da13539491089c68c2a9ba16 100644
--- a/dbrepo-ui/pages/database/[database_id]/subset/create.vue
+++ b/dbrepo-ui/pages/database/[database_id]/subset/create.vue
@@ -7,9 +7,9 @@
 </template>
 
 <script>
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 import Builder from '@/components/subset/Builder.vue'
-import {useCacheStore} from "~/stores/cache.js";
+import {useCacheStore} from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/subset/index.vue b/dbrepo-ui/pages/database/[database_id]/subset/index.vue
index d031b3f3f654f260099e109cc17f5c61cf0c4eb6..2f68604881a0e222dbd280a5c54ff375ca8c0825 100644
--- a/dbrepo-ui/pages/database/[database_id]/subset/index.vue
+++ b/dbrepo-ui/pages/database/[database_id]/subset/index.vue
@@ -9,7 +9,7 @@
 
 <script>
 import SubsetList from '@/components/subset/SubsetList.vue'
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/data.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/data.vue
index 46e7f564a77cb4592c4df36c0bf07f5ce66f8ac1..2e76d4ebd4a62d0744813740d7c4b55e950d54ca 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/data.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/data.vue
@@ -109,8 +109,8 @@ import TableHistory from '@/components/table/TableHistory.vue'
 import TimeDrift from '@/components/TimeDrift.vue'
 import TableToolbar from '@/components/table/TableToolbar.vue'
 import { formatTimestamp } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 import EditTuple from '@/components/dialogs/EditTuple.vue'
 import BlobDownload from '@/components/table/BlobDownload.vue'
 import QueryResults from '@/components/subset/Results.vue'
diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/import.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/import.vue
index 9da3e1c9fd9774ca61be0be90af9a7050d6fba3c..4cf0057ea429438ca08282a63ac27f182f80baf0 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/import.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/import.vue
@@ -30,8 +30,8 @@
 
 <script>
 import TableImport from '@/components/table/TableImport.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue
index 8108e0677e040b5ce500b188e64857398a9c3cb6..916c72b85052ce54c71d0bfa3cbe67708d606b0a 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/info.vue
@@ -123,8 +123,8 @@ import TableToolbar from '@/components/table/TableToolbar.vue'
 import Select from '@/components/identifier/Select.vue'
 import Summary from '@/components/identifier/Summary.vue'
 import UserBadge from '@/components/user/UserBadge.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/[identifier_id]/index.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/[identifier_id]/index.vue
index d444ca4e6229886522e39c0ad8a35b3988fb022e..663b2a5550d7875e1da0c3ed86fab1f24f359350 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/[identifier_id]/index.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/[identifier_id]/index.vue
@@ -8,8 +8,8 @@
 
 <script>
 import Persist from '@/components/identifier/Persist.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/index.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/index.vue
index af5b613df9673387bc4ab660487de4717524ab02..250fedaa5d4676dc6c304d3d71aa9b3a23b21ffc 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/index.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/persist/index.vue
@@ -13,8 +13,8 @@
 
 <script>
 import Persist from '@/components/identifier/Persist.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/schema.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/schema.vue
index 0c92401672bf743943dc1f35bdef3d42cd0df3d0..0c6a60e15b9c052656a61e9d71ec3fcd3d944cb2 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/schema.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/schema.vue
@@ -122,8 +122,8 @@
 
 <script>
 import TableToolbar from '@/components/table/TableToolbar.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/settings.vue b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/settings.vue
index 201917c5c051ffd63028fdb7f6f631e9b0dafce7..3d718d57398324f1099ceff42b80d80a55cf18b5 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/[table_id]/settings.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/[table_id]/settings.vue
@@ -116,8 +116,8 @@
 
 <script>
 import TableToolbar from '@/components/table/TableToolbar.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 import { max } from '@/utils'
 
 export default {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue b/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue
index b031c846ea41b1e3932197401aba95afc9acbb9e..df74cc6e7046e90f6e5e9844769a2e1e8f45e372 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue
@@ -222,8 +222,8 @@
 <script>
 import TableSchema from '@/components/table/TableSchema.vue'
 import { notEmpty } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/create/schema.vue b/dbrepo-ui/pages/database/[database_id]/table/create/schema.vue
index 5f433013bf30d4a450efba6228eb9f693673514f..c900ba31aa104dcc1ce5e3250dd0bb5a2b92f6fa 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/create/schema.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/create/schema.vue
@@ -188,8 +188,8 @@
 <script>
 import TableSchema from '@/components/table/TableSchema.vue'
 import { notEmpty } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/table/index.vue b/dbrepo-ui/pages/database/[database_id]/table/index.vue
index 2f1cf87ec800162f2be19e05916cc99224f26c4a..ae3e3c13f1b173b62514e1ee8887fd648e3f65a1 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/index.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/index.vue
@@ -15,7 +15,7 @@
 <script>
 import TableList from '@/components/table/TableList.vue'
 import DatabaseToolbar from '@/components/database/DatabaseToolbar.vue'
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   name: 'Tables',
diff --git a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/data.vue b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/data.vue
index f4c81f43f0bdd08a1984e5cd23c8af8c1bb003e4..54c54dad00d4764383c8d38e979870391680d563 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/data.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/data.vue
@@ -37,7 +37,7 @@
 <script>
 import TimeDrift from '@/components/TimeDrift.vue'
 import QueryResults from '@/components/subset/Results.vue'
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/info.vue
index 43bfb2b39028857833ba0c15ce09a125141a28f3..c9865a1b4abbefd3bd07361b7c6a5a5ff86b0834 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/info.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/info.vue
@@ -65,8 +65,8 @@ import Summary from '@/components/identifier/Summary.vue'
 import Select from '@/components/identifier/Select.vue'
 import UserBadge from '@/components/user/UserBadge.vue'
 import { formatTimestampUTCLabel } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/[identifier_id]/index.vue b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/[identifier_id]/index.vue
index 86db06f1963fb3e491a939ca389d913db7da473d..8c1f24c2a166150bd1dc3903dfa984c435815f9b 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/[identifier_id]/index.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/[identifier_id]/index.vue
@@ -10,8 +10,8 @@
 
 <script>
 import Persist from '@/components/identifier/Persist.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/index.vue b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/index.vue
index f3a3e18f9df142e3f136caf3d022c218676dfb41..b76d076645e05ef7123215c578d20b489924d523 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/index.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/persist/index.vue
@@ -11,8 +11,8 @@
 
 <script>
 import Persist from '@/components/identifier/Persist.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/schema.vue b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/schema.vue
index e126e19d9050c23b4299f9799b2895490813f33f..477654f656c9dbc5361315d323b8cc638add6ca9 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/schema.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/schema.vue
@@ -53,8 +53,8 @@
 
 <script>
 import TableToolbar from '@/components/table/TableToolbar.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/settings.vue b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/settings.vue
index 27444c9e89aec8cb2f9fb915504f3f9a4aaa97f1..18d73d05768d1a45b36eed9a58ea7841235554b3 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/[view_id]/settings.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/[view_id]/settings.vue
@@ -92,8 +92,8 @@
 
 <script>
 import ViewToolbar from '@/components/view/ViewToolbar.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/view/create.vue b/dbrepo-ui/pages/database/[database_id]/view/create.vue
index 060d186252e1192b3264af89b92b85293ad14d09..47b56cfbad81968d056d028cc48758d250efc612 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/create.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/create.vue
@@ -8,7 +8,7 @@
 
 <script>
 import Builder from '@/components/subset/Builder.vue'
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/database/[database_id]/view/index.vue b/dbrepo-ui/pages/database/[database_id]/view/index.vue
index 4172797328151393813f683200652c2753e783ed..64f777dce3f905f19d2ff8f16e5e4b3de80fd277 100644
--- a/dbrepo-ui/pages/database/[database_id]/view/index.vue
+++ b/dbrepo-ui/pages/database/[database_id]/view/index.vue
@@ -15,7 +15,7 @@
 <script>
 import DatabaseToolbar from '@/components/database/DatabaseToolbar.vue'
 import ViewList from '@/components/view/ViewList.vue'
-import { useCacheStore } from '@/stores/cache'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   name: 'Views',
diff --git a/dbrepo-ui/pages/index.vue b/dbrepo-ui/pages/index.vue
index 6e71854c0dc72ce8f68f75772befc72fcbbf3279..1c30c25e5c7e9edfd52861ca568c492ce39f13a7 100644
--- a/dbrepo-ui/pages/index.vue
+++ b/dbrepo-ui/pages/index.vue
@@ -30,7 +30,7 @@
 <script>
 import DatabaseList from '@/components/database/DatabaseList.vue'
 import DatabaseCreate from '@/components/database/DatabaseCreate.vue'
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/login.vue b/dbrepo-ui/pages/login.vue
index e1b255ed8bc51e2963bb7fb2065d444ef243b8cf..532a221c4823cfd8be39fd53e94c34426311260a 100644
--- a/dbrepo-ui/pages/login.vue
+++ b/dbrepo-ui/pages/login.vue
@@ -79,7 +79,7 @@
 </template>
 
 <script>
-import {useUserStore} from '@/stores/user'
+import {useUserStore} from '@/stores/user.js'
 
 export default {
   data() {
diff --git a/dbrepo-ui/pages/search.vue b/dbrepo-ui/pages/search.vue
index b23c896448e12845d0d4b3f92ce0284b5886bd55..15475b212bc724e0e55d9f0765461990e574618e 100644
--- a/dbrepo-ui/pages/search.vue
+++ b/dbrepo-ui/pages/search.vue
@@ -5,16 +5,6 @@
       <v-toolbar-title>
         {{ header }}
       </v-toolbar-title>
-      <v-spacer />
-      <v-btn
-        v-if="canCreateDatabase"
-        class="mr-2"
-        prepend-icon="mdi-plus"
-        color="secondary"
-        variant="flat"
-        @click.stop="createDbDialog = true">
-        {{ $t('toolbars.database.create.text') }}
-      </v-btn>
     </v-toolbar>
     <v-card
       rounded="0"
@@ -75,7 +65,7 @@
 
 <script>
 import AdvancedSearch from '@/components/search/AdvancedSearch.vue'
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/semantic/index.vue b/dbrepo-ui/pages/semantic/index.vue
index 480483aaf83bf68911090c1f7dcdbe051542676d..db555b4c0d4778401e6988015b1064cc8bd0c82e 100644
--- a/dbrepo-ui/pages/semantic/index.vue
+++ b/dbrepo-ui/pages/semantic/index.vue
@@ -65,8 +65,8 @@
 
 <script>
 import ViewSemanticEntity from '@/components/dialogs/ViewSemanticEntity.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/semantic/ontology/_ontology_id/index.vue b/dbrepo-ui/pages/semantic/ontology/_ontology_id/index.vue
index 108ef73e4bfdb6d6f79357c341808dc264302123..14749460c931c70c8430a28e51a7aa3c13d26ed1 100644
--- a/dbrepo-ui/pages/semantic/ontology/_ontology_id/index.vue
+++ b/dbrepo-ui/pages/semantic/ontology/_ontology_id/index.vue
@@ -106,8 +106,8 @@
 
 <script>
 import { notEmpty } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/pages/semantic/ontology/index.vue b/dbrepo-ui/pages/semantic/ontology/index.vue
index a19b5216c14650cac687b502b2e47706b37ace0a..36898d90739c2d219e9f9987c02527e2409a676f 100644
--- a/dbrepo-ui/pages/semantic/ontology/index.vue
+++ b/dbrepo-ui/pages/semantic/ontology/index.vue
@@ -33,8 +33,8 @@
 <script>
 import OntologiesList from '@/components/OntologiesList.vue'
 import CreateOntology from '@/components/dialogs/CreateOntology.vue'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/user/authentication.vue b/dbrepo-ui/pages/user/authentication.vue
index 4cb3e11a02c34f38cf2a5a197e10c4d33762661f..3a43421a709560b3e841760620321f0c640275f9 100644
--- a/dbrepo-ui/pages/user/authentication.vue
+++ b/dbrepo-ui/pages/user/authentication.vue
@@ -62,7 +62,7 @@
 
 <script>
 import UserToolbar from '@/components/user/UserToolbar.vue'
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/user/developer.vue b/dbrepo-ui/pages/user/developer.vue
index 9b6f80a591a6a23b0059ba916c81a1bfdcc7737f..de52a490aff050b7a7a92c1870645301bf68b9d3 100644
--- a/dbrepo-ui/pages/user/developer.vue
+++ b/dbrepo-ui/pages/user/developer.vue
@@ -91,8 +91,8 @@
 import UserToolbar from '@/components/user/UserToolbar.vue'
 import EditMaintenanceMessage from '@/components/dialogs/EditMaintenanceMessage.vue'
 import { formatTimestampUTCLabel, isActiveMessage, timestampsToHumanDifference } from '@/utils'
-import { useUserStore } from '@/stores/user'
-import { useCacheStore } from '@/stores/cache'
+import { useUserStore } from '@/stores/user.js'
+import { useCacheStore } from '@/stores/cache.js'
 
 export default {
   components: {
diff --git a/dbrepo-ui/pages/user/index.vue b/dbrepo-ui/pages/user/index.vue
index e729d9086f2be6604c2b9d0222c00acc79297f85..accae861052044324dc08ae48f6858e643172c5f 100644
--- a/dbrepo-ui/pages/user/index.vue
+++ b/dbrepo-ui/pages/user/index.vue
@@ -3,7 +3,7 @@
 </template>
 
 <script>
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   data () {
diff --git a/dbrepo-ui/pages/user/info.vue b/dbrepo-ui/pages/user/info.vue
index d2d1b2c8fe44aba72c45beabacff9ca5fc140c2e..9b94dde4dad312bb648e992efbc38120798bf869 100644
--- a/dbrepo-ui/pages/user/info.vue
+++ b/dbrepo-ui/pages/user/info.vue
@@ -124,7 +124,7 @@
 
 <script>
 import UserToolbar from '@/components/user/UserToolbar.vue'
-import { useUserStore } from '@/stores/user'
+import { useUserStore } from '@/stores/user.js'
 
 export default {
   components: {