shomei-postgres-0.3.0.0: shomei-postgres.cabal
cabal-version: 3.0
name: shomei-postgres
version: 0.3.0.0
synopsis:
PostgreSQL adapters for Shōmei's store/publisher/signing-key ports
description:
Production interpreters for Shōmei's effects, written against hasql: a
PostgreSQL-backed store for users, credentials, sessions, refresh tokens,
OAuth clients and authorization codes, MFA secrets, recovery codes,
passkeys, service accounts, roles, and signing keys, plus the audit-event
publisher and reader. Also provides Argon2id password hashing and SHA-256
token hashing (crypton, ram), connection pooling, and a transactional
unit-of-work. The schema itself lives in shomei-migrations.
homepage: https://github.com/shinzui/shomei
bug-reports: https://github.com/shinzui/shomei/issues
license: MIT
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: 2026 Nadeem Bitar
category: Database, Security
build-type: Simple
tested-with: ghc ==9.12.4
extra-doc-files: CHANGELOG.md
source-repository head
type: git
location: https://github.com/shinzui/shomei.git
common warnings
ghc-options:
-Wall
-Wcompat
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wpartial-fields
-Wredundant-constraints
common shared
default-language: GHC2024
default-extensions:
BlockArguments
DataKinds
DeriveAnyClass
DuplicateRecordFields
GADTs
LambdaCase
MultilineStrings
OverloadedLabels
OverloadedRecordDot
OverloadedStrings
QualifiedDo
RecordWildCards
TemplateHaskell
TypeFamilies
library
import: warnings, shared
hs-source-dirs: src
exposed-modules:
Shomei.Account.Credential.Postgres
Shomei.Account.Password.Hash.Postgres
Shomei.Account.PasswordReset.Postgres
Shomei.Account.User.Postgres
Shomei.Account.Verification.Postgres
Shomei.Audit.Publisher.Postgres
Shomei.Audit.Reader.Postgres
Shomei.Authorization.Role.Postgres
Shomei.Mfa.RecoveryCode.Postgres
Shomei.Mfa.Totp.Postgres
Shomei.OAuth.AuthorizationCode.Postgres
Shomei.OAuth.Client.Postgres
Shomei.Passkey.Ceremony.Postgres
Shomei.Passkey.Postgres
Shomei.Persistence.Codec.Postgres
Shomei.Persistence.Database.Postgres
Shomei.Persistence.Maintenance.Postgres
Shomei.Persistence.Pool.Postgres
Shomei.Persistence.Transaction.Postgres
Shomei.ServiceAccount.Postgres
Shomei.Session.LoginAttempt.Postgres
Shomei.Session.Postgres
Shomei.Session.RefreshToken.Postgres
Shomei.Session.UnitOfWork.Postgres
Shomei.SigningKey.Postgres
Shomei.Time.Postgres
build-depends:
aeson >=2.1 && <2.3,
base >=4.18 && <5,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.9,
contravariant-extras >=0.3 && <0.4,
crypton >=1.1.0 && <1.2,
effectful >=2.5 && <2.8,
effectful-core >=2.5 && <2.8,
hasql >=1.10 && <1.11,
hasql-transaction >=1.2.1 && <1.3,
ram >=0.22 && <0.23,
shomei-core ^>=0.3.0.0,
stm >=2.5 && <2.6,
text >=2.0 && <2.2,
time >=1.12 && <1.15,
transformers >=0.6 && <0.7,
uuid >=1.3 && <1.4,
test-suite shomei-postgres-test
import: warnings, shared
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs: test
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
build-depends:
base >=4.18 && <5,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.9,
crypton >=1.1.0 && <1.2,
effectful >=2.5 && <2.8,
effectful-core >=2.5 && <2.8,
hasql >=1.10 && <1.11,
hasql-transaction >=1.2.1 && <1.3,
ram >=0.22 && <0.23,
shomei-core ^>=0.3.0.0,
shomei-migrations:test-support ^>=0.2.0.1,
shomei-postgres ^>=0.3.0.0,
tasty >=1.4 && <1.6,
tasty-hunit >=0.10 && <0.11,
text >=2.0 && <2.2,
time >=1.12 && <1.15,
uuid >=1.3 && <1.4,