packages feed

salmon-ops-recipes-0.2.0.0: salmon-ops-recipes.cabal

cabal-version:      2.4
name:               salmon-ops-recipes
version:            0.2.0.0
synopsis:           Opinionated recipes built from Salmon builtins.
description:        Higher-level recipes (postgres migrations, postgres primary/standby pairs, micro DNS, ...) composed from salmon-ops builtins.
homepage:           https://lucasdicioccio.github.io/salmon/
bug-reports:        https://github.com/lucasdicioccio/salmon/issues
license:            BSD-3-Clause
license-file:       LICENSE
author:             Lucas DiCioccio
maintainer:         lucas@dicioccio.fr
copyright:          2022-2026 Lucas DiCioccio
category:           Development
build-type:         Simple
tested-with:        GHC == 9.10.3
extra-doc-files:    CHANGELOG.md

source-repository head
    type:     git
    location: https://github.com/lucasdicioccio/salmon
    subdir:   salmon-ops-recipes

library
    exposed-modules: SreBox.PostgresMigrations
                   , SreBox.CabalBuilding
                   , SreBox.Environment
                   , SreBox.Initialize
                   , SreBox.DNSRegistration
                   , SreBox.MicroDNS
                   , SreBox.PostgresInit
                   , SreBox.Postgrest
                   , SreBox.PostgresTls
                   , SreBox.PostgresBackup
                   , SreBox.PostgresTemplate
                   , SreBox.PostgresPair
                   , SreBox.PostgresPairPrereqs
                   , SreBox.PgVectorDemo
                   , SreBox.JWTSigning
                   , SreBox.WireGuardVpn
                   , SreBox.WireGuardMesh
                   , SreBox.Gcp.VmProvision
                   , SreBox.Gcp.CloudRunDeploy
                   , SreBox.Gcp.CloudRunAlerts
                   , SreBox.Gcp.PostgrestCloudRun
                   , SreBox.Gcp.PreviewEnvironment
                   , SreBox.Gcp.PlakarGcsBackup
    build-depends:    base >=4.16.3.0 && <4.22
                    , aeson
                    , base16-bytestring
                    , base64-bytestring
                    , bytestring
                    , case-insensitive
                    , comonad
                    , containers
                    , contravariant
                    , cryptohash-sha256
                    , crypton-connection
                    , crypton-x509
                    , crypton-x509-store
                    , crypton-x509-validation
                    , directory
                    , filepath
                    , free
                    , hashable
                    , http-client
                    , http-client-tls
                    , jose
                    , jose-jwt
                    , mtl
                    , optparse-applicative
                    , optparse-generic
                    , process
                    , process-extras
                    , salmon-core ^>=0.1.0.0
                    , salmon-ops ^>=0.2.0.0
                    , text
                    , time
                    , tls
    hs-source-dirs:   src
    default-language: Haskell2010
    default-extensions: KindSignatures
                      , DataKinds
                      , OverloadedStrings
                      , DeriveFunctor
                      , OverloadedRecordDot
                      , TypeApplications
                      , ScopedTypeVariables

test-suite salmon-ops-recipes-test
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    hs-source-dirs:   test
    other-modules:    Test.Harness
                    , Test.CheckSpec
                    , Test.AmendNodeSpec
                    , Test.CardTemplateSpec
                    , Test.BuiltinCardsSpec
                    , Test.HttpServerFlagSpec
                    , Test.ClientModelReference
                    , Test.ClientModelSpec
                    , Test.ClientModelStepSpec
                    , Test.AptRepositorySpec
                    , Test.DebianPackageSpec
                    , Test.ClipCppSpec
                    , Test.LlamaServerSpec
                    , Test.ServeApi
                    , Test.ServeApiSpec
                    , Test.PgVectorSpec
                    , Test.PgVectorDemoSpec
                    , Test.PgTextSearchSpec
                    , Test.PlakarSpec
                    , Test.WireGuardSpec
                    , Test.WireGuardMeshSpec
                    , Test.NetbirdSpec
                    , Test.PortMappingSpec
                    , Test.RsyncSpec
                    , Test.DebootstrapSpec
                    , Test.ConcurrentSpec
                    , Test.BinaryOutputSpec
                    , Test.BinarySpec
                    , Test.DaemonSpec
                    , Test.DetachedSpec
                    , Test.DagSpec
                    , Test.DagPerNodeSpec
                    , Test.DagReference
                    , Test.DagStuckSpec
                    , Test.EdgeListReference
                    , Test.EdgeListSpec
                    , Test.GraphFixture
                    , Test.GraphFixtureSpec
                    , Test.GraphScaleSpec
                    , Test.ListedPathsSpec
                    , Test.PathListReference
                    , Test.DeferredSpec
                    , Test.DownTreeSpec
                    , Test.FilesystemSpec
                    , Test.FollowCacheSpec
                    , Test.FollowRegistrySpec
                    , Test.FollowSchedulerSpec
                    , Test.FollowSignatureSpec
                    , Test.FollowSpec
                    , Test.GcpSpec
                    , Test.SecretDeliverySpec
                    , Test.PodmanCommandSpec
                    , Test.JWTSigningSpec
                    , Test.LedgerSpec
                    , Test.MigratorTemplateSpec
                    , Test.PgBackupSpec
                    , Test.PgBackRestSpec
                    , Test.PodmanSpec
                    , Test.PostgresBackupSpec
                    , Test.PostgresInitSpec
                    , Test.PostgresReplicationSpec
                    , Test.PostgresClusterSpec
                    , Test.PgBouncerSpec
                    , Test.HaproxySpec
                    , Test.EtcdSpec
                    , Test.PatroniSpec
                    , Test.PatroniPreferredLeaderSpec
                    , Test.PatroniRollingMaintenanceSpec
                    , Test.PgPairDemoSpec
                    , Test.PatroniArchiveVmsSpec
                    , Test.PatroniHarnessSpec
                    , Test.PatroniVms
                    , Test.PostgresPairSpec
                    , Test.PostgresPairPrereqsSpec
                    , Test.PostgresSwitchoverSpec
                    , Test.PostgresVms
                    , Test.PostgresTemplateSpec
                    , Test.PostgresUserSpec
                    , Test.PostgresTlsSpec
                    , Test.PostgrestCloudRunSpec
                    , Test.QemuResolveKernelSpec
                    , Test.QemuShutdownSpec
                    , Test.QemuSmokeSpec
                    , Test.QuerySpec
                    , Test.ReadinessSpec
                    , Test.RemoteOutputSpec
                    , Test.ReportJsonSpec
                    , Test.RewriteSpec
                    , Test.ServeEventsSpec
                    , Test.ServeHttpSpec
                    , Test.ServeModelSpec
                    , Test.ServeSocketSpec
                    , Test.ServeSpec
                    , Test.ServeTlsSpec
                    , Test.StatusSinkSpec
                    , Test.QuadletSpec
                    , Test.QuadletUserSpec
                    , Test.SharedDirSpec
                    , Test.SystemdJobSpec
                    , Test.SystemdSpec
                    , Test.UiTailTemplateSpec
                    , Test.UpDownTextSpec
                    , Test.UpTreeSpec
                    , Test.UpkeepSpec
                    , Test.UpkeepRetentionSpec
                    , Test.WindowSpec
                    , Test.WrapperOrderingSpec
    build-depends:    QuickCheck
                    , base >=4.16.3.0 && <4.22
                    , aeson
                    , bytestring
                    , comonad
                    , containers
                    , contravariant
                    , crypton-connection
                    , crypton-x509-store
                    , directory
                    , filepath
                    , free
                    , ghc-heap
                    , http-client
                    , http-client-tls
                    , http-types
                    , mtl
                    , network
                    , optparse-applicative
                    , process
                    , process-extras
                    , stm
                    , salmon-core ^>=0.1.0.0
                    , salmon-ops ^>=0.2.0.0
                    , salmon-ops-recipes ^>=0.2.0.0
                    , tasty
                    , tasty-hunit
                    , tasty-quickcheck
                    , temporary
                    , text
                    , time
                    , tls
                    , unix
                    , wai
                    , warp
    -- Salmon.Actions.Serve reads its input handle on a forked thread, so a
    -- test driving the loop wants a runtime where a blocking read does not
    -- stall every other Haskell thread. -rtsopts so that a large-graph run
    -- (Test.GraphFixtureSpec's opt-in case) can be given a heap bound.
    ghc-options:      -threaded -rtsopts
    default-language: Haskell2010
    default-extensions: DataKinds
                      , KindSignatures
                      , OverloadedStrings
                      , OverloadedRecordDot
                      , ScopedTypeVariables
                      , TypeApplications

-- How each graph operation scales, per shape and size: see
-- resources/graph-profiles.md. A benchmark stanza so that neither
-- `cabal build all` nor `cabal test` builds or runs it; it shares the test
-- suite's graph fixture by source directory.
benchmark graph-profiles
    type:             exitcode-stdio-1.0
    main-is:          GraphProfiles.hs
    hs-source-dirs:   bench test
    other-modules:    Test.GraphFixture
                    , Test.DagReference
                    , Test.PathListReference
    build-depends:    base >=4.16.3.0 && <4.22
                    , aeson
                    , bytestring
                    , comonad
                    , containers
                    , free
                    , mtl
                    , optparse-applicative
                    , process
                    , stm
                    , unix
                    , salmon-core ^>=0.1.0.0
                    , salmon-ops ^>=0.2.0.0
                    , text
                    , time
    -- one capability, as the binaries in salmon-apps are built; -T for the
    -- allocation counter; -rtsopts so a run can be given a heap bound.
    ghc-options:      -threaded -rtsopts "-with-rtsopts=-T"
    default-language: Haskell2010
    default-extensions: DataKinds
                      , KindSignatures
                      , OverloadedStrings
                      , OverloadedRecordDot
                      , ScopedTypeVariables
                      , TypeApplications