Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .cspell/dictionary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ OVERLAPPABLE
KHTML
unlines
ccall
appconfigdata

# Document template example (Jinja)
selectattr
Expand Down Expand Up @@ -122,3 +123,5 @@ acche
ecche
dcche
aste

Pendings
2 changes: 1 addition & 1 deletion registry-public/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: registry-public
version: '4.30.0'
version: '4.31.0'
synopsis: Registry Public
description: Registry Public
category: Web
Expand Down
2 changes: 1 addition & 1 deletion registry-server/package.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: registry-server
version: '4.30.0'
version: '4.31.0'
synopsis: Engine Registry
description: Engine Registry
category: Web
Expand Down
14 changes: 0 additions & 14 deletions registry-server/src/Registry/Api/Handler/ActionKey/Api.hs

This file was deleted.

6 changes: 3 additions & 3 deletions registry-server/src/Registry/Api/Handler/Api.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ module Registry.Api.Handler.Api where

import Servant

import Registry.Api.Handler.ActionKey.Api
import Registry.Api.Handler.Config.Api
import Registry.Api.Handler.DocumentTemplate.Api
import Registry.Api.Handler.Info.Api
import Registry.Api.Handler.KnowledgeModelPackage.Api
import Registry.Api.Handler.Locale.Api
import Registry.Api.Handler.Organization.Api
import Registry.Api.Handler.PersistentCommand.Api
import Registry.Api.Handler.UserEmailLink.Api
import Registry.Model.Context.BaseContext

type ApplicationAPI =
InfoAPI
:<|> ActionKeyAPI
:<|> UserEmailLinkAPI
:<|> ConfigAPI
:<|> DocumentTemplateAPI
:<|> KnowledgeModelPackageAPI
Expand All @@ -28,7 +28,7 @@ applicationApi = Proxy
applicationServer :: ServerT ApplicationAPI BaseContextM
applicationServer =
infoServer
:<|> actionKeyServer
:<|> userEmailLinkServer
:<|> configServer
:<|> documentTemplateServer
:<|> knowledgeModelPackageServer
Expand Down
4 changes: 2 additions & 2 deletions registry-server/src/Registry/Api/Handler/Swagger/Api.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import Servant.Swagger
import Servant.Swagger.UI

import Registry.Api.Handler.Api
import Registry.Api.Resource.ActionKey.ActionKeySM ()
import Registry.Api.Resource.Config.ClientConfigSM ()
import Registry.Api.Resource.DocumentTemplate.DocumentTemplateDetailSM ()
import Registry.Api.Resource.DocumentTemplate.DocumentTemplateSimpleSM ()
Expand All @@ -20,6 +19,7 @@ import Registry.Api.Resource.Organization.OrganizationCreateSM ()
import Registry.Api.Resource.Organization.OrganizationSM ()
import Registry.Api.Resource.Organization.OrganizationStateSM ()
import Registry.Api.Resource.PersistentCommand.PersistentCommandSM ()
import Registry.Api.Resource.UserEmailLink.UserEmailLinkSM ()
import Shared.Common.Api.Resource.Common.FileSM ()
import Shared.Common.Api.Resource.Common.SemVer2TupleSM ()
import Shared.Common.Api.Resource.Info.InfoSM ()
Expand All @@ -41,7 +41,7 @@ swagger =
s._swaggerInfo
{ _infoTitle = "Registry API"
, _infoDescription = Just "API specification for Registry"
, _infoVersion = "4.30.0"
, _infoVersion = "4.31.0"
, _infoLicense =
Just $
License
Expand Down
14 changes: 14 additions & 0 deletions registry-server/src/Registry/Api/Handler/UserEmailLink/Api.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module Registry.Api.Handler.UserEmailLink.Api where

import Servant

import Registry.Api.Handler.UserEmailLink.List_POST
import Registry.Model.Context.BaseContext

type UserEmailLinkAPI = List_POST

userEmailLinkApi :: Proxy UserEmailLinkAPI
userEmailLinkApi = Proxy

userEmailLinkServer :: ServerT UserEmailLinkAPI BaseContextM
userEmailLinkServer = list_POST
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
module Registry.Api.Handler.ActionKey.List_POST where
module Registry.Api.Handler.UserEmailLink.List_POST where

import Servant

import Registry.Api.Handler.Common
import Registry.Api.Resource.ActionKey.ActionKeyJM ()
import Registry.Model.ActionKey.ActionKeyType
import Registry.Api.Resource.UserEmailLink.UserEmailLinkJM ()
import Registry.Model.Context.BaseContext
import Registry.Model.Context.ContextLenses ()
import Registry.Model.UserEmailLink.UserEmailLinkType
import Registry.Service.Organization.OrganizationService
import Shared.ActionKey.Api.Resource.ActionKey.ActionKeyDTO
import Shared.ActionKey.Api.Resource.ActionKey.ActionKeyJM ()
import Shared.Common.Api.Handler.Common
import Shared.Common.Model.Context.TransactionState
import Shared.UserEmailLink.Api.Resource.UserEmailLink.UserEmailLinkDTO
import Shared.UserEmailLink.Api.Resource.UserEmailLink.UserEmailLinkJM ()

type List_POST =
ReqBody '[SafeJSON] (ActionKeyDTO ActionKeyType)
:> "action-keys"
ReqBody '[SafeJSON] (UserEmailLinkDTO UserEmailLinkType)
:> "user-email-links"
:> Verb 'POST 201 '[SafeJSON] (Headers '[Header "x-trace-uuid" String] NoContent)

list_POST :: ActionKeyDTO ActionKeyType -> BaseContextM (Headers '[Header "x-trace-uuid" String] NoContent)
list_POST :: UserEmailLinkDTO UserEmailLinkType -> BaseContextM (Headers '[Header "x-trace-uuid" String] NoContent)
list_POST reqDto =
runInUnauthService Transactional $
addTraceUuidHeader =<< do
Expand Down

This file was deleted.

15 changes: 0 additions & 15 deletions registry-server/src/Registry/Api/Resource/ActionKey/ActionKeySM.hs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module Registry.Api.Resource.UserEmailLink.UserEmailLinkJM where

import Data.Aeson

import Registry.Model.UserEmailLink.UserEmailLinkType

instance FromJSON UserEmailLinkType

instance ToJSON UserEmailLinkType
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module Registry.Api.Resource.UserEmailLink.UserEmailLinkSM where

import Data.Swagger

import Registry.Api.Resource.UserEmailLink.UserEmailLinkJM ()
import Registry.Database.Migration.Development.UserEmailLink.Data.UserEmailLinks
import Registry.Model.UserEmailLink.UserEmailLinkType
import Shared.Common.Util.Swagger
import Shared.UserEmailLink.Api.Resource.UserEmailLink.UserEmailLinkDTO
import Shared.UserEmailLink.Api.Resource.UserEmailLink.UserEmailLinkJM ()

instance ToSchema UserEmailLinkType

instance ToSchema (UserEmailLinkDTO UserEmailLinkType) where
declareNamedSchema = toSwagger forgottenTokenUserEmailLinkDto

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module Registry.Database.Mapping.UserEmailLink.UserEmailLinkType where

import Database.PostgreSQL.Simple.FromField
import Database.PostgreSQL.Simple.ToField

import Registry.Model.UserEmailLink.UserEmailLinkType
import Shared.Common.Database.Mapping.Common

instance ToField UserEmailLinkType where
toField = toFieldGenericEnum

instance FromField UserEmailLinkType where
fromField = fromFieldGenericEnum
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ module Registry.Database.Migration.Development.Migration (
runMigration,
) where

import qualified Registry.Database.Migration.Development.ActionKey.ActionKeySchemaMigration as ActionKey
import qualified Registry.Database.Migration.Development.Audit.AuditSchemaMigration as Audit
import qualified Registry.Database.Migration.Development.Common.CommonSchemaMigration as Common
import qualified Registry.Database.Migration.Development.DocumentTemplate.DocumentTemplateMigration as DocumentTemplate
Expand All @@ -14,6 +13,7 @@ import qualified Registry.Database.Migration.Development.Locale.LocaleSchemaMigr
import qualified Registry.Database.Migration.Development.Organization.OrganizationMigration as Organization
import qualified Registry.Database.Migration.Development.Organization.OrganizationSchemaMigration as Organization
import qualified Registry.Database.Migration.Development.PersistentCommand.PersistentCommandSchemaMigration as PersistentCommand
import qualified Registry.Database.Migration.Development.UserEmailLink.UserEmailLinkSchemaMigration as UserEmailLink
import Registry.Model.Context.ContextMappers
import Shared.Common.Util.Logger
import qualified Shared.Component.Database.Migration.Development.Component.ComponentMigration as Component
Expand All @@ -30,7 +30,7 @@ runMigration = runAppContextWithBaseContext $ do
PersistentCommand.dropTables
DocumentTemplate.dropTables
Audit.dropTables
ActionKey.dropTables
UserEmailLink.dropTables
KnowledgeModelPackage.dropTables
Organization.dropTables
-- 3. Drop DB types
Expand All @@ -40,7 +40,7 @@ runMigration = runAppContextWithBaseContext $ do
-- 5. Create schema
Organization.createTables
KnowledgeModelPackage.createTables
ActionKey.createTables
UserEmailLink.createTables
Audit.createTables
DocumentTemplate.createTables
PersistentCommand.createTables
Expand Down
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
module Registry.Database.Migration.Development.ActionKey.Data.ActionKeys where
module Registry.Database.Migration.Development.UserEmailLink.Data.UserEmailLinks where

import Data.Maybe (fromJust)
import Data.Time
import qualified Data.UUID as U

import Registry.Model.ActionKey.ActionKeyType
import Registry.Model.UserEmailLink.UserEmailLinkType
import RegistryLib.Database.Migration.Development.Organization.Data.Organizations
import RegistryLib.Model.Organization.Organization
import Shared.ActionKey.Api.Resource.ActionKey.ActionKeyDTO
import Shared.ActionKey.Model.ActionKey.ActionKey
import Shared.UserEmailLink.Api.Resource.UserEmailLink.UserEmailLinkDTO
import Shared.UserEmailLink.Model.UserEmailLink.UserEmailLink

registrationActionKey =
ActionKey
registrationUserEmailLink =
UserEmailLink
{ uuid = fromJust . U.fromString $ "23f934f2-05b2-45d3-bce9-7675c3f3e5e9"
, identity = orgGlobal.organizationId
, aType = RegistrationActionKey
, aType = RegistrationUserEmailLinkType
, hash = "1ba90a0f-845e-41c7-9f1c-a55fc5a0554a"
, tenantUuid = U.nil
, createdAt = UTCTime (fromJust $ fromGregorianValid 2018 1 20) 0
}

forgottenTokenActionKey =
ActionKey
forgottenTokenUserEmailLink =
UserEmailLink
{ uuid = fromJust . U.fromString $ "2728460f-ba9a-4a05-8e47-7faa4dc931bf"
, identity = orgGlobal.organizationId
, aType = ForgottenTokenActionKey
, aType = ForgottenTokenUserEmailLinkType
, hash = "5b1aff0d-b5e3-436d-b913-6b52d3cbad5f"
, tenantUuid = U.nil
, createdAt = UTCTime (fromJust $ fromGregorianValid 2018 1 20) 0
}

forgottenTokenActionKeyDto =
ActionKeyDTO {aType = forgottenTokenActionKey.aType, email = orgGlobal.email}
forgottenTokenUserEmailLinkDto =
UserEmailLinkDTO {aType = forgottenTokenUserEmailLink.aType, email = orgGlobal.email}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module Registry.Database.Migration.Development.ActionKey.ActionKeySchemaMigration where
module Registry.Database.Migration.Development.UserEmailLink.UserEmailLinkSchemaMigration where

import Database.PostgreSQL.Simple
import GHC.Int
Expand All @@ -10,27 +10,27 @@ import Shared.Common.Util.Logger

dropTables :: AppContextM Int64
dropTables = do
logInfo _CMP_MIGRATION "(Table/ActionKey) drop tables"
let sql = "DROP TABLE IF EXISTS action_key CASCADE;"
logInfo _CMP_MIGRATION "(Table/UserEmailLink) drop tables"
let sql = "DROP TABLE IF EXISTS user_email_link CASCADE;"
let action conn = execute_ conn sql
runDB action

createTables :: AppContextM Int64
createTables = do
logInfo _CMP_MIGRATION "(Table/ActionKey) create table"
logInfo _CMP_MIGRATION "(Table/UserEmailLink) create table"
let sql =
"CREATE TABLE action_key \
"CREATE TABLE user_email_link \
\( \
\ uuid uuid NOT NULL, \
\ identity varchar NOT NULL, \
\ type varchar NOT NULL, \
\ hash varchar NOT NULL, \
\ created_at timestamptz NOT NULL, \
\ tenant_uuid uuid NOT NULL, \
\ CONSTRAINT action_key_pk PRIMARY KEY (uuid, tenant_uuid), \
\ CONSTRAINT action_key_identity_fk FOREIGN KEY (identity) REFERENCES organization (organization_id) ON DELETE CASCADE \
\ CONSTRAINT user_email_link_pk PRIMARY KEY (uuid, tenant_uuid), \
\ CONSTRAINT user_email_link_identity_fk FOREIGN KEY (identity) REFERENCES organization (organization_id) ON DELETE CASCADE \
\); \
\ \
\CREATE UNIQUE INDEX action_key_hash_uindex ON action_key (hash);"
\CREATE UNIQUE INDEX user_email_link_hash_uindex ON user_email_link (hash);"
let action conn = execute_ conn sql
runDB action
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ import Database.PostgreSQL.Simple

definition = (meta, migrate)

meta = MigrationMeta {mmNumber = 18, mmName = "Switch from ID to UUID", mmDescription = "Switch from ID to UUID for knowledge models and document templates"}
meta = MigrationMeta {mmNumber = 18, mmName = "Switch from ID to UUID", mmDescription = "Switch from ID to UUID for knowledge models and document templates; rename action_key table to user_email_link"}

migrate :: Pool Connection -> LoggingT IO (Maybe Error)
migrate dbPool = do
changeDocumentTemplatePrimaryKeyFromIdToUuid dbPool
changeKnowledgeModelPrimaryKeyFromIdToUuid dbPool
renameUserEmailLinkTable dbPool

changeDocumentTemplatePrimaryKeyFromIdToUuid dbPool = do
let sql =
Expand Down Expand Up @@ -92,3 +93,15 @@ changeKnowledgeModelPrimaryKeyFromIdToUuid dbPool = do
let action conn = execute_ conn sql
liftIO $ withResource dbPool action
return Nothing

renameUserEmailLinkTable dbPool = do
let sql =
"ALTER TABLE IF EXISTS action_key RENAME TO user_email_link; \
\ALTER TABLE IF EXISTS user_email_link RENAME CONSTRAINT action_key_pk TO user_email_link_pk; \
\ALTER INDEX IF EXISTS action_key_uuid_uindex RENAME TO user_email_link_uuid_uindex; \
\ALTER INDEX IF EXISTS action_key_hash_uindex RENAME TO user_email_link_hash_uindex; \
\UPDATE user_email_link SET type = 'RegistrationUserEmailLinkType' WHERE type = 'RegistrationActionKey'; \
\UPDATE user_email_link SET type = 'ForgottenTokenUserEmailLinkType' WHERE type = 'ForgottenTokenActionKey';"
let action conn = execute_ conn sql
liftIO $ withResource dbPool action
return Nothing
8 changes: 0 additions & 8 deletions registry-server/src/Registry/Model/ActionKey/ActionKeyType.hs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module Registry.Model.UserEmailLink.UserEmailLinkType where

import GHC.Generics

data UserEmailLinkType
= RegistrationUserEmailLinkType
| ForgottenTokenUserEmailLinkType
deriving (Show, Eq, Generic, Read)
Loading
Loading