shomei-core: Transport-agnostic domain: types, commands, events, errors, and effects
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
shomei-core is the heart of the Shōmei authentication toolkit: the domain model, commands, events, and errors, together with the effectful effect interfaces (stores, clock, token generator, signing key) that every workflow is written against. It has no database, HTTP, or JWT dependency, so the account, session, OAuth, MFA, passkey, and authorization workflows can be run against the bundled in-memory interpreter in a test suite and against PostgreSQL in production without changing a line. All other Shōmei packages depend on it.
Properties
| Versions | 0.1.0.0, 0.2.0.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson (>=2.1 && <2.3), base (>=4.18 && <5), base64 (>=1.0 && <1.1), bytestring (>=0.11 && <0.13), containers (>=0.6 && <0.9), crypton (>=1.1 && <1.2), effectful (>=2.5 && <2.8), effectful-core (>=2.5 && <2.8), file-embed (>=0.0.15 && <0.0.17), generic-lens (>=2.2 && <2.4), http-api-data (>=0.6 && <0.8), lens (>=5.2 && <5.4), mmzk-typeid (>=0.7 && <0.8), ram (>=0.22 && <0.23), text (>=2.0 && <2.2), time (>=1.12 && <1.15), uuid (>=1.3 && <1.4) [details] |
| License | MIT |
| Copyright | 2026 Nadeem Bitar |
| Author | Nadeem Bitar |
| Maintainer | nadeem@gmail.com |
| Category | Web, Security |
| Home page | https://github.com/shinzui/shomei |
| Bug tracker | https://github.com/shinzui/shomei/issues |
| Source repo | head: git clone https://github.com/shinzui/shomei.git |
| Uploaded | by shinzui at 2026-08-25T04:54:15Z |
Modules
- Shomei
- Account
- Admin
- Shomei.Account.Admin.Workflow
- Credential
- Shomei.Account.Credential.Domain
- Shomei.Account.Credential.Store
- Email
- Shomei.Account.Email.Domain
- Lifecycle
- Shomei.Account.Lifecycle.Workflow
- LoginId
- Shomei.Account.LoginId.Domain
- Notification
- Shomei.Account.Notification.Domain
- Shomei.Account.Notification.Store
- OneTimeToken
- Shomei.Account.OneTimeToken.Domain
- Password
- Breach
- Shomei.Account.Password.Breach.Store
- Shomei.Account.Password.Breach.Workflow
- Common
- Shomei.Account.Password.Common.Domain
- Shomei.Account.Password.Domain
- Hash
- Shomei.Account.Password.Hash.Store
- Breach
- PasswordReset
- Shomei.Account.PasswordReset.Domain
- Shomei.Account.PasswordReset.Store
- User
- Shomei.Account.User.Domain
- Shomei.Account.User.Store
- Verification
- Shomei.Account.Verification.Domain
- Shomei.Account.Verification.Store
- Admin
- Audit
- Event
- Shomei.Audit.Event.Codec
- Shomei.Audit.Event.Domain
- Publisher
- Shomei.Audit.Publisher.Store
- Reader
- Shomei.Audit.Reader.Store
- Event
- Authorization
- Claims
- Shomei.Authorization.Claims.Domain
- Shomei.Authorization.Claims.Store
- Role
- Shomei.Authorization.Role.Store
- Shomei.Authorization.Role.Workflow
- Claims
- Shomei.Config
- Delegation
- Shomei.Delegation.Workflow
- Shomei.Error
- Shomei.Id
- Mfa
- RecoveryCode
- Shomei.Mfa.RecoveryCode.Store
- Totp
- Shomei.Mfa.Totp.Algorithm
- Shomei.Mfa.Totp.Domain
- Shomei.Mfa.Totp.Store
- Shomei.Mfa.Totp.Workflow
- Shomei.Mfa.Workflow
- RecoveryCode
- OAuth
- AuthorizationCode
- Shomei.OAuth.AuthorizationCode.Domain
- Shomei.OAuth.AuthorizationCode.Store
- Authorize
- Shomei.OAuth.Authorize.Workflow
- Client
- Shomei.OAuth.Client.Domain
- Shomei.OAuth.Client.Store
- IdToken
- Shomei.OAuth.IdToken.Domain
- TokenExchange
- Shomei.OAuth.TokenExchange.Workflow
- TokenGrant
- Shomei.OAuth.TokenGrant.Workflow
- AuthorizationCode
- Passkey
- Ceremony
- Shomei.Passkey.Ceremony.Port
- Shomei.Passkey.Ceremony.Store
- Shomei.Passkey.Domain
- Shomei.Passkey.Store
- Shomei.Passkey.Workflow
- Ceremony
- Shomei.Prelude
- ServiceAccount
- ClientCredentials
- Shomei.ServiceAccount.ClientCredentials.Workflow
- Shomei.ServiceAccount.Domain
- Shomei.ServiceAccount.Secret
- Shomei.ServiceAccount.Store
- ClientCredentials
- Session
- Authentication
- Shomei.Session.Authentication.Workflow
- Shomei.Session.Command
- Shomei.Session.Domain
- LoginAttempt
- Shomei.Session.LoginAttempt.Domain
- Shomei.Session.LoginAttempt.Store
- RefreshToken
- Shomei.Session.RefreshToken.Domain
- Shomei.Session.RefreshToken.Store
- Shomei.Session.Store
- Token
- Shomei.Session.Token.Domain
- Shomei.Session.Token.Generator
- UnitOfWork
- Shomei.Session.UnitOfWork.Store
- Shomei.Session.Workflow
- Authentication
- SigningKey
- Shomei.SigningKey.Domain
- Shomei.SigningKey.Signer
- Shomei.SigningKey.Store
- Shomei.SigningKey.Verifier
- Test
- Shomei.Test.InMemory
- Time
- Shomei.Time.Store
- Account
Downloads
- shomei-core-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees