From e09d24e7323e73791e7bb31fa7fac1d3acf0c299 Mon Sep 17 00:00:00 2001 From: Kegsay Date: Wed, 17 Jun 2020 12:05:56 +0100 Subject: [PATCH 1/4] Move account/device DBs to userapi (#1141) --- appservice/api/query.go | 2 +- clientapi/clientapi.go | 4 ++-- clientapi/consumers/roomserver.go | 2 +- clientapi/routing/account_data.go | 2 +- clientapi/routing/createroom.go | 2 +- clientapi/routing/device.go | 2 +- clientapi/routing/filter.go | 2 +- clientapi/routing/joinroom.go | 2 +- clientapi/routing/login.go | 4 ++-- clientapi/routing/logout.go | 2 +- clientapi/routing/membership.go | 2 +- clientapi/routing/memberships.go | 2 +- clientapi/routing/profile.go | 2 +- clientapi/routing/register.go | 2 +- clientapi/routing/room_tagging.go | 2 +- clientapi/routing/routing.go | 4 ++-- clientapi/routing/sendtyping.go | 2 +- clientapi/routing/threepid.go | 2 +- clientapi/threepid/invites.go | 2 +- cmd/create-account/main.go | 4 ++-- internal/setup/base.go | 4 ++-- internal/setup/monolith.go | 4 ++-- userapi/internal/api.go | 4 ++-- {clientapi/auth => userapi}/storage/accounts/interface.go | 0 .../storage/accounts/postgres/account_data_table.go | 0 .../storage/accounts/postgres/accounts_table.go | 0 .../storage/accounts/postgres/filter_table.go | 0 .../storage/accounts/postgres/membership_table.go | 0 .../storage/accounts/postgres/profile_table.go | 0 .../auth => userapi}/storage/accounts/postgres/storage.go | 0 .../storage/accounts/postgres/threepid_table.go | 0 .../storage/accounts/sqlite3/account_data_table.go | 0 .../storage/accounts/sqlite3/accounts_table.go | 0 .../auth => userapi}/storage/accounts/sqlite3/constraint.go | 0 .../storage/accounts/sqlite3/constraint_wasm.go | 0 .../auth => userapi}/storage/accounts/sqlite3/filter_table.go | 0 .../storage/accounts/sqlite3/membership_table.go | 0 .../storage/accounts/sqlite3/profile_table.go | 0 .../auth => userapi}/storage/accounts/sqlite3/storage.go | 0 .../storage/accounts/sqlite3/threepid_table.go | 0 {clientapi/auth => userapi}/storage/accounts/storage.go | 4 ++-- {clientapi/auth => userapi}/storage/accounts/storage_wasm.go | 2 +- {clientapi/auth => userapi}/storage/devices/interface.go | 0 .../storage/devices/postgres/devices_table.go | 0 .../auth => userapi}/storage/devices/postgres/storage.go | 0 .../auth => userapi}/storage/devices/sqlite3/devices_table.go | 0 .../auth => userapi}/storage/devices/sqlite3/storage.go | 0 {clientapi/auth => userapi}/storage/devices/storage.go | 4 ++-- {clientapi/auth => userapi}/storage/devices/storage_wasm.go | 2 +- userapi/userapi.go | 4 ++-- userapi/userapi_test.go | 4 ++-- 51 files changed, 40 insertions(+), 40 deletions(-) rename {clientapi/auth => userapi}/storage/accounts/interface.go (100%) rename {clientapi/auth => userapi}/storage/accounts/postgres/account_data_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/postgres/accounts_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/postgres/filter_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/postgres/membership_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/postgres/profile_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/postgres/storage.go (100%) rename {clientapi/auth => userapi}/storage/accounts/postgres/threepid_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/account_data_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/accounts_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/constraint.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/constraint_wasm.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/filter_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/membership_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/profile_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/storage.go (100%) rename {clientapi/auth => userapi}/storage/accounts/sqlite3/threepid_table.go (100%) rename {clientapi/auth => userapi}/storage/accounts/storage.go (90%) rename {clientapi/auth => userapi}/storage/accounts/storage_wasm.go (94%) rename {clientapi/auth => userapi}/storage/devices/interface.go (100%) rename {clientapi/auth => userapi}/storage/devices/postgres/devices_table.go (100%) rename {clientapi/auth => userapi}/storage/devices/postgres/storage.go (100%) rename {clientapi/auth => userapi}/storage/devices/sqlite3/devices_table.go (100%) rename {clientapi/auth => userapi}/storage/devices/sqlite3/storage.go (100%) rename {clientapi/auth => userapi}/storage/devices/storage.go (90%) rename {clientapi/auth => userapi}/storage/devices/storage_wasm.go (94%) diff --git a/appservice/api/query.go b/appservice/api/query.go index 0a5cc9f1d..29e374aca 100644 --- a/appservice/api/query.go +++ b/appservice/api/query.go @@ -22,8 +22,8 @@ import ( "database/sql" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/internal/eventutil" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/clientapi/clientapi.go b/clientapi/clientapi.go index 637e1469e..174eb1bf1 100644 --- a/clientapi/clientapi.go +++ b/clientapi/clientapi.go @@ -18,8 +18,6 @@ import ( "github.com/Shopify/sarama" "github.com/gorilla/mux" appserviceAPI "github.com/matrix-org/dendrite/appservice/api" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/clientapi/consumers" "github.com/matrix-org/dendrite/clientapi/producers" "github.com/matrix-org/dendrite/clientapi/routing" @@ -29,6 +27,8 @@ import ( "github.com/matrix-org/dendrite/internal/transactions" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" "github.com/sirupsen/logrus" ) diff --git a/clientapi/consumers/roomserver.go b/clientapi/consumers/roomserver.go index caa028ba3..beeda042b 100644 --- a/clientapi/consumers/roomserver.go +++ b/clientapi/consumers/roomserver.go @@ -18,10 +18,10 @@ import ( "context" "encoding/json" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/roomserver/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/Shopify/sarama" diff --git a/clientapi/routing/account_data.go b/clientapi/routing/account_data.go index 5e0509a50..875249b32 100644 --- a/clientapi/routing/account_data.go +++ b/clientapi/routing/account_data.go @@ -19,10 +19,10 @@ import ( "io/ioutil" "net/http" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/producers" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" diff --git a/clientapi/routing/createroom.go b/clientapi/routing/createroom.go index 2bb537b0d..be7124828 100644 --- a/clientapi/routing/createroom.go +++ b/clientapi/routing/createroom.go @@ -26,12 +26,12 @@ import ( roomserverVersion "github.com/matrix-org/dendrite/roomserver/version" "github.com/matrix-org/dendrite/userapi/api" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/threepid" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/internal/eventutil" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" log "github.com/sirupsen/logrus" diff --git a/clientapi/routing/device.go b/clientapi/routing/device.go index 02acb462e..403937c9c 100644 --- a/clientapi/routing/device.go +++ b/clientapi/routing/device.go @@ -19,9 +19,9 @@ import ( "encoding/json" "net/http" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) diff --git a/clientapi/routing/filter.go b/clientapi/routing/filter.go index 7c583045f..6520e6e40 100644 --- a/clientapi/routing/filter.go +++ b/clientapi/routing/filter.go @@ -17,10 +17,10 @@ package routing import ( "net/http" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) diff --git a/clientapi/routing/joinroom.go b/clientapi/routing/joinroom.go index a00b34a57..e190beefd 100644 --- a/clientapi/routing/joinroom.go +++ b/clientapi/routing/joinroom.go @@ -17,11 +17,11 @@ package routing import ( "net/http" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) diff --git a/clientapi/routing/login.go b/clientapi/routing/login.go index 25231a3aa..1b894a566 100644 --- a/clientapi/routing/login.go +++ b/clientapi/routing/login.go @@ -20,13 +20,13 @@ import ( "context" "github.com/matrix-org/dendrite/clientapi/auth" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/userutil" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) diff --git a/clientapi/routing/logout.go b/clientapi/routing/logout.go index f1276082b..3ce47169e 100644 --- a/clientapi/routing/logout.go +++ b/clientapi/routing/logout.go @@ -17,9 +17,9 @@ package routing import ( "net/http" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) diff --git a/clientapi/routing/membership.go b/clientapi/routing/membership.go index c7b91613f..0d4b0d88d 100644 --- a/clientapi/routing/membership.go +++ b/clientapi/routing/membership.go @@ -22,7 +22,6 @@ import ( appserviceAPI "github.com/matrix-org/dendrite/appservice/api" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/threepid" @@ -31,6 +30,7 @@ import ( "github.com/matrix-org/dendrite/roomserver/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" diff --git a/clientapi/routing/memberships.go b/clientapi/routing/memberships.go index a5bb2a908..574a2c480 100644 --- a/clientapi/routing/memberships.go +++ b/clientapi/routing/memberships.go @@ -17,7 +17,7 @@ package routing import ( "net/http" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/internal/config" diff --git a/clientapi/routing/profile.go b/clientapi/routing/profile.go index a72ad3bcc..7c2cd19bc 100644 --- a/clientapi/routing/profile.go +++ b/clientapi/routing/profile.go @@ -21,13 +21,13 @@ import ( appserviceAPI "github.com/matrix-org/dendrite/appservice/api" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/internal/eventutil" "github.com/matrix-org/dendrite/roomserver/api" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrix" diff --git a/clientapi/routing/register.go b/clientapi/routing/register.go index fddf9253a..69ebdfd70 100644 --- a/clientapi/routing/register.go +++ b/clientapi/routing/register.go @@ -37,11 +37,11 @@ import ( "github.com/matrix-org/dendrite/clientapi/auth" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/userutil" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib/tokens" "github.com/matrix-org/util" diff --git a/clientapi/routing/room_tagging.go b/clientapi/routing/room_tagging.go index a3fe0e426..b1cfcca86 100644 --- a/clientapi/routing/room_tagging.go +++ b/clientapi/routing/room_tagging.go @@ -20,11 +20,11 @@ import ( "github.com/sirupsen/logrus" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/producers" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrix" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go index 5e8a606ac..0fe687b30 100644 --- a/clientapi/routing/routing.go +++ b/clientapi/routing/routing.go @@ -21,8 +21,6 @@ import ( "github.com/gorilla/mux" appserviceAPI "github.com/matrix-org/dendrite/appservice/api" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/producers" eduServerAPI "github.com/matrix-org/dendrite/eduserver/api" @@ -32,6 +30,8 @@ import ( "github.com/matrix-org/dendrite/internal/transactions" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) diff --git a/clientapi/routing/sendtyping.go b/clientapi/routing/sendtyping.go index 213e7fdcf..9b6a0b39b 100644 --- a/clientapi/routing/sendtyping.go +++ b/clientapi/routing/sendtyping.go @@ -16,12 +16,12 @@ import ( "database/sql" "net/http" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/userutil" "github.com/matrix-org/dendrite/eduserver/api" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/util" ) diff --git a/clientapi/routing/threepid.go b/clientapi/routing/threepid.go index c712c1c37..e7aaadf54 100644 --- a/clientapi/routing/threepid.go +++ b/clientapi/routing/threepid.go @@ -18,12 +18,12 @@ import ( "net/http" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/threepid" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" diff --git a/clientapi/threepid/invites.go b/clientapi/threepid/invites.go index d9da5c503..c308cb1f4 100644 --- a/clientapi/threepid/invites.go +++ b/clientapi/threepid/invites.go @@ -25,11 +25,11 @@ import ( "time" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/internal/eventutil" "github.com/matrix-org/dendrite/roomserver/api" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/cmd/create-account/main.go b/cmd/create-account/main.go index 9c1e45932..ff022ec3c 100644 --- a/cmd/create-account/main.go +++ b/cmd/create-account/main.go @@ -20,8 +20,8 @@ import ( "fmt" "os" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/internal/setup/base.go b/internal/setup/base.go index e287cfbd0..66424a609 100644 --- a/internal/setup/base.go +++ b/internal/setup/base.go @@ -28,9 +28,9 @@ import ( "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/naffka" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/internal" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/Shopify/sarama" "github.com/gorilla/mux" diff --git a/internal/setup/monolith.go b/internal/setup/monolith.go index bb81f7403..24bee9502 100644 --- a/internal/setup/monolith.go +++ b/internal/setup/monolith.go @@ -19,8 +19,6 @@ import ( "github.com/gorilla/mux" appserviceAPI "github.com/matrix-org/dendrite/appservice/api" "github.com/matrix-org/dendrite/clientapi" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" eduServerAPI "github.com/matrix-org/dendrite/eduserver/api" "github.com/matrix-org/dendrite/federationapi" federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" @@ -35,6 +33,8 @@ import ( serverKeyAPI "github.com/matrix-org/dendrite/serverkeyapi/api" "github.com/matrix-org/dendrite/syncapi" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/userapi/internal/api.go b/userapi/internal/api.go index 3a4131666..ae021f575 100644 --- a/userapi/internal/api.go +++ b/userapi/internal/api.go @@ -21,12 +21,12 @@ import ( "fmt" "github.com/matrix-org/dendrite/appservice/types" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/clientapi/userutil" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/dendrite/userapi/api" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/clientapi/auth/storage/accounts/interface.go b/userapi/storage/accounts/interface.go similarity index 100% rename from clientapi/auth/storage/accounts/interface.go rename to userapi/storage/accounts/interface.go diff --git a/clientapi/auth/storage/accounts/postgres/account_data_table.go b/userapi/storage/accounts/postgres/account_data_table.go similarity index 100% rename from clientapi/auth/storage/accounts/postgres/account_data_table.go rename to userapi/storage/accounts/postgres/account_data_table.go diff --git a/clientapi/auth/storage/accounts/postgres/accounts_table.go b/userapi/storage/accounts/postgres/accounts_table.go similarity index 100% rename from clientapi/auth/storage/accounts/postgres/accounts_table.go rename to userapi/storage/accounts/postgres/accounts_table.go diff --git a/clientapi/auth/storage/accounts/postgres/filter_table.go b/userapi/storage/accounts/postgres/filter_table.go similarity index 100% rename from clientapi/auth/storage/accounts/postgres/filter_table.go rename to userapi/storage/accounts/postgres/filter_table.go diff --git a/clientapi/auth/storage/accounts/postgres/membership_table.go b/userapi/storage/accounts/postgres/membership_table.go similarity index 100% rename from clientapi/auth/storage/accounts/postgres/membership_table.go rename to userapi/storage/accounts/postgres/membership_table.go diff --git a/clientapi/auth/storage/accounts/postgres/profile_table.go b/userapi/storage/accounts/postgres/profile_table.go similarity index 100% rename from clientapi/auth/storage/accounts/postgres/profile_table.go rename to userapi/storage/accounts/postgres/profile_table.go diff --git a/clientapi/auth/storage/accounts/postgres/storage.go b/userapi/storage/accounts/postgres/storage.go similarity index 100% rename from clientapi/auth/storage/accounts/postgres/storage.go rename to userapi/storage/accounts/postgres/storage.go diff --git a/clientapi/auth/storage/accounts/postgres/threepid_table.go b/userapi/storage/accounts/postgres/threepid_table.go similarity index 100% rename from clientapi/auth/storage/accounts/postgres/threepid_table.go rename to userapi/storage/accounts/postgres/threepid_table.go diff --git a/clientapi/auth/storage/accounts/sqlite3/account_data_table.go b/userapi/storage/accounts/sqlite3/account_data_table.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/account_data_table.go rename to userapi/storage/accounts/sqlite3/account_data_table.go diff --git a/clientapi/auth/storage/accounts/sqlite3/accounts_table.go b/userapi/storage/accounts/sqlite3/accounts_table.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/accounts_table.go rename to userapi/storage/accounts/sqlite3/accounts_table.go diff --git a/clientapi/auth/storage/accounts/sqlite3/constraint.go b/userapi/storage/accounts/sqlite3/constraint.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/constraint.go rename to userapi/storage/accounts/sqlite3/constraint.go diff --git a/clientapi/auth/storage/accounts/sqlite3/constraint_wasm.go b/userapi/storage/accounts/sqlite3/constraint_wasm.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/constraint_wasm.go rename to userapi/storage/accounts/sqlite3/constraint_wasm.go diff --git a/clientapi/auth/storage/accounts/sqlite3/filter_table.go b/userapi/storage/accounts/sqlite3/filter_table.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/filter_table.go rename to userapi/storage/accounts/sqlite3/filter_table.go diff --git a/clientapi/auth/storage/accounts/sqlite3/membership_table.go b/userapi/storage/accounts/sqlite3/membership_table.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/membership_table.go rename to userapi/storage/accounts/sqlite3/membership_table.go diff --git a/clientapi/auth/storage/accounts/sqlite3/profile_table.go b/userapi/storage/accounts/sqlite3/profile_table.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/profile_table.go rename to userapi/storage/accounts/sqlite3/profile_table.go diff --git a/clientapi/auth/storage/accounts/sqlite3/storage.go b/userapi/storage/accounts/sqlite3/storage.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/storage.go rename to userapi/storage/accounts/sqlite3/storage.go diff --git a/clientapi/auth/storage/accounts/sqlite3/threepid_table.go b/userapi/storage/accounts/sqlite3/threepid_table.go similarity index 100% rename from clientapi/auth/storage/accounts/sqlite3/threepid_table.go rename to userapi/storage/accounts/sqlite3/threepid_table.go diff --git a/clientapi/auth/storage/accounts/storage.go b/userapi/storage/accounts/storage.go similarity index 90% rename from clientapi/auth/storage/accounts/storage.go rename to userapi/storage/accounts/storage.go index 42ec14fc4..87f626bf9 100644 --- a/clientapi/auth/storage/accounts/storage.go +++ b/userapi/storage/accounts/storage.go @@ -19,9 +19,9 @@ package accounts import ( "net/url" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts/postgres" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts/sqlite3" "github.com/matrix-org/dendrite/internal/sqlutil" + "github.com/matrix-org/dendrite/userapi/storage/accounts/postgres" + "github.com/matrix-org/dendrite/userapi/storage/accounts/sqlite3" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/clientapi/auth/storage/accounts/storage_wasm.go b/userapi/storage/accounts/storage_wasm.go similarity index 94% rename from clientapi/auth/storage/accounts/storage_wasm.go rename to userapi/storage/accounts/storage_wasm.go index 6c221ccf5..692567059 100644 --- a/clientapi/auth/storage/accounts/storage_wasm.go +++ b/userapi/storage/accounts/storage_wasm.go @@ -18,8 +18,8 @@ import ( "fmt" "net/url" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts/sqlite3" "github.com/matrix-org/dendrite/internal/sqlutil" + "github.com/matrix-org/dendrite/userapi/storage/accounts/sqlite3" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/clientapi/auth/storage/devices/interface.go b/userapi/storage/devices/interface.go similarity index 100% rename from clientapi/auth/storage/devices/interface.go rename to userapi/storage/devices/interface.go diff --git a/clientapi/auth/storage/devices/postgres/devices_table.go b/userapi/storage/devices/postgres/devices_table.go similarity index 100% rename from clientapi/auth/storage/devices/postgres/devices_table.go rename to userapi/storage/devices/postgres/devices_table.go diff --git a/clientapi/auth/storage/devices/postgres/storage.go b/userapi/storage/devices/postgres/storage.go similarity index 100% rename from clientapi/auth/storage/devices/postgres/storage.go rename to userapi/storage/devices/postgres/storage.go diff --git a/clientapi/auth/storage/devices/sqlite3/devices_table.go b/userapi/storage/devices/sqlite3/devices_table.go similarity index 100% rename from clientapi/auth/storage/devices/sqlite3/devices_table.go rename to userapi/storage/devices/sqlite3/devices_table.go diff --git a/clientapi/auth/storage/devices/sqlite3/storage.go b/userapi/storage/devices/sqlite3/storage.go similarity index 100% rename from clientapi/auth/storage/devices/sqlite3/storage.go rename to userapi/storage/devices/sqlite3/storage.go diff --git a/clientapi/auth/storage/devices/storage.go b/userapi/storage/devices/storage.go similarity index 90% rename from clientapi/auth/storage/devices/storage.go rename to userapi/storage/devices/storage.go index d0d203427..e094d202a 100644 --- a/clientapi/auth/storage/devices/storage.go +++ b/userapi/storage/devices/storage.go @@ -19,9 +19,9 @@ package devices import ( "net/url" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices/postgres" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices/sqlite3" "github.com/matrix-org/dendrite/internal/sqlutil" + "github.com/matrix-org/dendrite/userapi/storage/devices/postgres" + "github.com/matrix-org/dendrite/userapi/storage/devices/sqlite3" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/clientapi/auth/storage/devices/storage_wasm.go b/userapi/storage/devices/storage_wasm.go similarity index 94% rename from clientapi/auth/storage/devices/storage_wasm.go rename to userapi/storage/devices/storage_wasm.go index e32471d8c..a5a515eff 100644 --- a/clientapi/auth/storage/devices/storage_wasm.go +++ b/userapi/storage/devices/storage_wasm.go @@ -18,8 +18,8 @@ import ( "fmt" "net/url" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices/sqlite3" "github.com/matrix-org/dendrite/internal/sqlutil" + "github.com/matrix-org/dendrite/userapi/storage/devices/sqlite3" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/userapi/userapi.go b/userapi/userapi.go index 961d04fe0..7aadec06a 100644 --- a/userapi/userapi.go +++ b/userapi/userapi.go @@ -16,12 +16,12 @@ package userapi import ( "github.com/gorilla/mux" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/internal/config" "github.com/matrix-org/dendrite/userapi/api" "github.com/matrix-org/dendrite/userapi/internal" "github.com/matrix-org/dendrite/userapi/inthttp" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/userapi/userapi_test.go b/userapi/userapi_test.go index 509bdd7e8..163b10ec7 100644 --- a/userapi/userapi_test.go +++ b/userapi/userapi_test.go @@ -8,13 +8,13 @@ import ( "testing" "github.com/gorilla/mux" - "github.com/matrix-org/dendrite/clientapi/auth/storage/accounts" - "github.com/matrix-org/dendrite/clientapi/auth/storage/devices" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/internal/test" "github.com/matrix-org/dendrite/userapi" "github.com/matrix-org/dendrite/userapi/api" "github.com/matrix-org/dendrite/userapi/inthttp" + "github.com/matrix-org/dendrite/userapi/storage/accounts" + "github.com/matrix-org/dendrite/userapi/storage/devices" "github.com/matrix-org/gomatrixserverlib" ) From c4d9b374927309e327c19f1985ad65c3b78ab5ee Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Wed, 17 Jun 2020 13:54:47 +0100 Subject: [PATCH 2/4] add test --- sytest-whitelist | 1 + 1 file changed, 1 insertion(+) diff --git a/sytest-whitelist b/sytest-whitelist index 8f3d128d7..244cfe8cc 100644 --- a/sytest-whitelist +++ b/sytest-whitelist @@ -331,3 +331,4 @@ Can download file 'ascii' Can download file 'name with spaces' Can download file 'name;with;semicolons' Can download specifying a different ASCII file name +Inbound /v1/send_join rejects joins from other servers From 38053a5bb7af9bba522225fc62bee73d363bff85 Mon Sep 17 00:00:00 2001 From: Kegsay Date: Wed, 17 Jun 2020 13:55:55 +0100 Subject: [PATCH 3/4] Do not wrap send_join errors on /v1/send_join (#1143) * Do not wrap v1 send_join errors in [code, body] * Don't wrap errors --- federationapi/routing/routing.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/federationapi/routing/routing.go b/federationapi/routing/routing.go index 649a43c66..645f397de 100644 --- a/federationapi/routing/routing.go +++ b/federationapi/routing/routing.go @@ -18,6 +18,7 @@ import ( "net/http" "github.com/gorilla/mux" + "github.com/matrix-org/dendrite/clientapi/jsonerror" eduserverAPI "github.com/matrix-org/dendrite/eduserver/api" federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" "github.com/matrix-org/dendrite/internal/config" @@ -203,12 +204,20 @@ func Setup( res := SendJoin( httpReq, request, cfg, rsAPI, keys, roomID, eventID, ) + // not all responses get wrapped in [code, body] + var body interface{} + body = []interface{}{ + res.Code, res.JSON, + } + jerr, ok := res.JSON.(*jsonerror.MatrixError) + if ok { + body = jerr + } + return util.JSONResponse{ Headers: res.Headers, Code: res.Code, - JSON: []interface{}{ - res.Code, res.JSON, - }, + JSON: body, } }, )).Methods(http.MethodPut) From 23bed196e61d4dfb8719e6bfff82888173519cde Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Wed, 17 Jun 2020 14:26:45 +0100 Subject: [PATCH 4/4] Fallback parsing for Content-Disposition minefield (#1144) --- mediaapi/routing/download.go | 27 ++++++++++++++++++++++----- sytest-whitelist | 2 ++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/mediaapi/routing/download.go b/mediaapi/routing/download.go index fa1bb2573..7e121de3e 100644 --- a/mediaapi/routing/download.go +++ b/mediaapi/routing/download.go @@ -47,6 +47,10 @@ const mediaIDCharacters = "A-Za-z0-9_=-" // Note: unfortunately regex.MustCompile() cannot be assigned to a const var mediaIDRegex = regexp.MustCompile("^[" + mediaIDCharacters + "]+$") +// Regular expressions to help us cope with Content-Disposition parsing +var rfc2183 = regexp.MustCompile(`filename\=utf-8\"(.*)\"`) +var rfc6266 = regexp.MustCompile(`filename\*\=utf-8\'\'(.*)`) + // downloadRequest metadata included in or derivable from a download or thumbnail request // https://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-media-r0-download-servername-mediaid // http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-media-r0-thumbnail-servername-mediaid @@ -378,8 +382,8 @@ func (r *downloadRequest) addDownloadFilenameToHeaders( } else { // For UTF-8 filenames, we quote always, as that's the standard w.Header().Set("Content-Disposition", fmt.Sprintf( - `inline; filename=utf-8"%s"`, - unescaped, + `inline; filename*=utf-8''%s`, + url.QueryEscape(unescaped), )) } @@ -700,9 +704,22 @@ func (r *downloadRequest) fetchRemoteFile( } r.MediaMetadata.FileSizeBytes = types.FileSizeBytes(contentLength) r.MediaMetadata.ContentType = types.ContentType(resp.Header.Get("Content-Type")) - _, params, err := mime.ParseMediaType(resp.Header.Get("Content-Disposition")) - if err == nil && params["filename"] != "" { - r.MediaMetadata.UploadName = types.Filename(params["filename"]) + + dispositionHeader := resp.Header.Get("Content-Disposition") + if _, params, e := mime.ParseMediaType(dispositionHeader); e == nil { + if params["filename"] != "" { + r.MediaMetadata.UploadName = types.Filename(params["filename"]) + } else if params["filename*"] != "" { + r.MediaMetadata.UploadName = types.Filename(params["filename*"]) + } + } else { + if matches := rfc6266.FindStringSubmatch(dispositionHeader); len(matches) > 1 { + // Always prefer the RFC6266 UTF-8 name if possible + r.MediaMetadata.UploadName = types.Filename(matches[1]) + } else if matches := rfc2183.FindStringSubmatch(dispositionHeader); len(matches) > 1 { + // Otherwise, see if an RFC2183 name was provided (ASCII only) + r.MediaMetadata.UploadName = types.Filename(matches[1]) + } } r.Logger.Info("Transferring remote file") diff --git a/sytest-whitelist b/sytest-whitelist index 244cfe8cc..e68605628 100644 --- a/sytest-whitelist +++ b/sytest-whitelist @@ -331,4 +331,6 @@ Can download file 'ascii' Can download file 'name with spaces' Can download file 'name;with;semicolons' Can download specifying a different ASCII file name +Can download with Unicode file name over federation +Can download specifying a different Unicode file name Inbound /v1/send_join rejects joins from other servers