feat(authentication, types): Create authentication entities and services (#5979)

* create authentication entities

* ensure hashes are not returned

* re-add integration test argument

* update filterableprops

* update type

* pr feedback

* update serialization

* move finding existing entities and validation to service layer

* update types

* update models

* update user model

* pr feedback

* fix build

* pr feedback

* update integration test fixtures

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
Philip Korsholm
2024-01-08 09:50:12 +01:00
committed by GitHub
co-authored by Oli Juhl
parent 6b0b3fed7a
commit 479a8b82a9
36 changed files with 2394 additions and 32 deletions
@@ -0,0 +1,36 @@
import { BaseFilterable } from "../../dal"
export type AuthProviderDTO = {
provider: string
name: string
domain: ProviderDomain
is_active: boolean
}
export type CreateAuthProviderDTO = {
provider: string
name: string
domain?: ProviderDomain
is_active?: boolean
}
export type UpdateAuthProviderDTO = {
provider: string
name?: string
domain?: ProviderDomain
is_active?: boolean
}
export enum ProviderDomain {
ALL = "all",
STORE = "store",
ADMIN = "admin",
}
export interface FilterableAuthProviderProps
extends BaseFilterable<FilterableAuthProviderProps> {
provider?: string[]
is_active?: boolean
domain?: ProviderDomain[]
name?: string[]
}
@@ -0,0 +1,31 @@
import { BaseFilterable } from "../../dal"
import { AuthProviderDTO } from "./auth-provider"
export type AuthUserDTO = {
id: string
provider_id: string
provider: AuthProviderDTO
provider_metadata?: Record<string, unknown>
user_metadata: Record<string, unknown>
app_metadata: Record<string, unknown>
}
export type CreateAuthUserDTO = {
provider_id: string
provider_metadata?: Record<string, unknown>
user_metadata?: Record<string, unknown>
app_metadata?: Record<string, unknown>
}
export type UpdateAuthUserDTO = {
id: string
provider_metadata?: Record<string, unknown>
user_metadata?: Record<string, unknown>
app_metadata?: Record<string, unknown>
}
export interface FilterableAuthUserProps
extends BaseFilterable<FilterableAuthUserProps> {
id?: string[]
provider?: string[] | string
}
@@ -0,0 +1,2 @@
export * from "./auth-user"
export * from "./auth-provider"
@@ -1 +1,2 @@
export * from "./service"
export * from "./common"
+93 -1
View File
@@ -1,3 +1,95 @@
import { IModuleService } from "../modules-sdk"
import {
AuthProviderDTO,
AuthUserDTO,
CreateAuthProviderDTO,
CreateAuthUserDTO,
FilterableAuthProviderProps,
FilterableAuthUserProps,
UpdateAuthProviderDTO,
UpdateAuthUserDTO,
} from "./common"
import { FindConfig } from "../common"
import { Context } from "../shared-context"
export interface IAuthenticationModuleService extends IModuleService {}
export interface IAuthenticationModuleService extends IModuleService {
retrieveAuthProvider(
provider: string,
config?: FindConfig<AuthProviderDTO>,
sharedContext?: Context
): Promise<AuthProviderDTO>
listAuthProviders(
filters?: FilterableAuthProviderProps,
config?: FindConfig<AuthProviderDTO>,
sharedContext?: Context
): Promise<AuthProviderDTO[]>
listAndCountAuthProviders(
filters?: FilterableAuthProviderProps,
config?: FindConfig<AuthProviderDTO>,
sharedContext?: Context
): Promise<[AuthProviderDTO[], number]>
createAuthProvider(
data: CreateAuthProviderDTO[],
sharedContext?: Context
): Promise<AuthProviderDTO[]>
createAuthProvider(
data: CreateAuthProviderDTO,
sharedContext?: Context
): Promise<AuthProviderDTO>
updateAuthProvider(
data: UpdateAuthProviderDTO[],
sharedContext?: Context
): Promise<AuthProviderDTO[]>
updateAuthProvider(
data: UpdateAuthProviderDTO,
sharedContext?: Context
): Promise<AuthProviderDTO>
deleteAuthProvider(ids: string[], sharedContext?: Context): Promise<void>
retrieveAuthUser(
id: string,
config?: FindConfig<AuthUserDTO>,
sharedContext?: Context
): Promise<AuthUserDTO>
listAuthUsers(
filters?: FilterableAuthProviderProps,
config?: FindConfig<AuthUserDTO>,
sharedContext?: Context
): Promise<AuthUserDTO[]>
listAndCountAuthUsers(
filters?: FilterableAuthUserProps,
config?: FindConfig<AuthUserDTO>,
sharedContext?: Context
): Promise<[AuthUserDTO[], number]>
createAuthUser(
data: CreateAuthUserDTO[],
sharedContext?: Context
): Promise<AuthUserDTO[]>
createAuthUser(
data: CreateAuthUserDTO,
sharedContext?: Context
): Promise<AuthUserDTO>
updateAuthUser(
data: UpdateAuthUserDTO[],
sharedContext?: Context
): Promise<AuthUserDTO[]>
updateAuthUser(
data: UpdateAuthUserDTO,
sharedContext?: Context
): Promise<AuthUserDTO>
deleteAuthUser(ids: string[], sharedContext?: Context): Promise<void>
}