Skip to content

[FEAT]: Introduce stateful and hybrid strategy model #122

Description

@halvaradop

Description

Model

erDiagram
Users ||--o{ Accounts : "has"
Users ||--o{ Sessions : "starts"
Users ||--o{ Devices : "registers"
Users ||--o{ MfaCredentials : "configures"
Accounts ||--|| OAuthAccounts : "oauth"
Accounts ||--|| CredentialAccounts : "credentials"
Devices ||--o{ Sessions : "contains"
Users {
varchar id PK
varchar name
varchar email UK
varchar image
timestamp emailVerifiedAt
varchar status
boolean mfaEnabled
varchar mfaPreferredMethod
json attributes
timestamp createdAt
timestamp updatedAt
}
Accounts {
varchar id PK
varchar userId FK
varchar provider
varchar providerUserId
varchar type
varchar status
timestamp createdAt
timestamp updatedAt
json metadata
}
OAuthAccounts {
varchar accountId PK,FK
text accessToken
text refreshToken
text idToken
text tokenType
text scopes
varchar issuer
timestamp accessTokenExpiresAt
timestamp refreshTokenExpiresAt
timestamp updatedAt
}
CredentialAccounts {
varchar accountId PK,FK
text passwordHash
timestamp updatedAt
}
Sessions {
varchar id PK
varchar userId FK
varchar deviceId FK
varchar authenticatedWith
varchar status
varchar mfaState
text sessionToken UK
timestamp expiresAt
timestamp lastActivityAt
timestamp revokedAt
timestamp createdAt
timestamp updatedAt
json metadata
}
Devices {
varchar id PK
varchar userId FK
varchar name
varchar type
varchar platform
varchar browser
text userAgent
varchar fingerprint
varchar lastIp
boolean trusted
timestamp firstSeenAt
timestamp lastSeenAt
json metadata
}
MfaCredentials {
varchar id PK
varchar userId FK
varchar type
json credentialData
boolean isPrimary
timestamp verifiedAt
timestamp createdAt
json metadata
}
OAuthTransactions {
varchar id PK
varchar provider
varchar state UK
varchar nonce
varchar codeVerifier
text redirectUri
text redirectTo
varchar deviceId
timestamp createdAt
timestamp expiresAt
json metadata
}
Loading

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions