packages feed

salmon-ops-0.1.0.0: salmon-ops.cabal

cabal-version:      2.4
name:               salmon-ops
version:            0.1.0.0
synopsis:           IO builtins and command line plumbing for Salmon operations.
description:        Builtin operations (files, systemd, debian packages, podman, postgres, wireguard, certificates, ssh, ...) built on salmon-core, plus the shared command line, the long-running serve loop with its HTTP API and web UI.
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
extra-source-files:
                    ui/index.html
                    ui/ui.js
                    ui/ui.css
                    ui/auth.html
                    openapi/serve-api.openapi.json

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

library
    exposed-modules: Salmon.Actions.Concurrent
                   , Salmon.Actions.Follow
                   , Salmon.Actions.Follow.Registry
                   , Salmon.Actions.Follow.Registry.Dns
                   , Salmon.Actions.Follow.Registry.Git
                   , Salmon.Actions.Follow.Registry.Http
                   , Salmon.Actions.Follow.Scheduler
                   , Salmon.Actions.Follow.Signature
                   , Salmon.Actions.Help
                   , Salmon.Actions.Serve
                   , Salmon.Actions.Serve.Events
                   , Salmon.Actions.Serve.Http
                   , Salmon.Actions.Serve.Socket
                   , Salmon.Actions.Serve.StatusSink
                   , Salmon.Actions.Fleet
                   , Salmon.Actions.UpDown
                   , Salmon.Actions.Upkeep
                   , Salmon.Actions.Dot
                   , Salmon.Actions.Query
                   , Salmon.Client.Http
                   , Salmon.Client.Model
                   , Salmon.Builtin.Extension
                   , Salmon.Builtin.CommandLine
                   , Salmon.Builtin.Helpers
                   , Salmon.Builtin.Migrations
                   , Salmon.Builtin.Nodes.Bash
                   , Salmon.Builtin.Nodes.Binary
                   , Salmon.Builtin.Nodes.Cabal
                   , Salmon.Builtin.Nodes.Daemon
                   , Salmon.Builtin.Nodes.Capabilities
                   , Salmon.Builtin.Nodes.Certificates
                   , Salmon.Builtin.Nodes.Continuation
                   , Salmon.Builtin.Nodes.CronTask
                   , Salmon.Builtin.Nodes.Debian.Debootstrap
                   , Salmon.Builtin.Nodes.Debian.AptRepository
                   , Salmon.Builtin.Nodes.Debian.Package
                   , Salmon.Builtin.Nodes.Debian.OS
                   , Salmon.Builtin.Nodes.Demo
                   , Salmon.Builtin.Nodes.Gcp.ArtifactRegistry
                   , Salmon.Builtin.Nodes.Gcp.Billing
                   , Salmon.Builtin.Nodes.Gcp.CloudRun
                   , Salmon.Builtin.Nodes.Gcp.Compute
                   , Salmon.Builtin.Nodes.Gcp.Core
                   , Salmon.Builtin.Nodes.Gcp.Iam
                   , Salmon.Builtin.Nodes.Gcp.LoadBalancing
                   , Salmon.Builtin.Nodes.Gcp.Monitoring
                   , Salmon.Builtin.Nodes.Gcp.ResourceManager
                   , Salmon.Builtin.Nodes.Gcp.SecretManager
                   , Salmon.Builtin.Nodes.Gcp.ServiceUsage
                   , Salmon.Builtin.Nodes.Gcp.SshAccess
                   , Salmon.Builtin.Nodes.Gcp.Storage
                   , Salmon.Builtin.Nodes.Filesystem
                   , Salmon.Builtin.Nodes.Git
                   , Salmon.Builtin.Nodes.User
                   , Salmon.Builtin.Nodes.Keys
                   , Salmon.Builtin.Nodes.LinuxBridge
                   , Salmon.Builtin.Nodes.Netfilter
                   , Salmon.Builtin.Nodes.Nginx
                   , Salmon.Builtin.Nodes.Npm
                   , Salmon.Builtin.Nodes.PgBouncer
                   , Salmon.Builtin.Nodes.Etcd
                   , Salmon.Builtin.Nodes.Postgres
                   , Salmon.Builtin.Nodes.LlamaServer
                   , Salmon.Builtin.Nodes.PgVector
                   , Salmon.Builtin.Nodes.Plakar
                   , Salmon.Builtin.Nodes.Podman
                   , Salmon.Builtin.Nodes.Qemu
                   , Salmon.Builtin.Nodes.Rsync
                   , Salmon.Builtin.Nodes.Routes
                   , Salmon.Builtin.Nodes.Self
                   , Salmon.Builtin.Nodes.Secrets
                   , Salmon.Builtin.Nodes.Spago
                   , Salmon.Builtin.Nodes.Ssh
                   , Salmon.Builtin.Nodes.Sysctl
                   , Salmon.Builtin.Nodes.Systemd
                   , Salmon.Builtin.Nodes.Tar
                   , Salmon.Builtin.Nodes.Upx
                   , Salmon.Builtin.Nodes.Web
                   , Salmon.Builtin.Nodes.WireGuard
                   , Salmon.Op.Concurrency
                   , Salmon.Op.Dag
                   , Salmon.Op.Ledger
                   , Salmon.Op.Mailbox
                   , Salmon.Op.Rewrite
                   , Salmon.Op.Status
                   , Salmon.Op.Supervision
                   , Salmon.Op.Window
                   , Salmon.Op.Configure
                   , Salmon.Op.Ref
                   , Salmon.Reporter
                   , Salmon.Reporter.Tagged
    build-depends:    base >=4.16.3.0 && <4.22
                    , async
                    , aeson
                    , base64-bytestring
                    , bytestring
                    , containers
                    , contravariant
                    , crypton
                    , crypton-connection
                    , crypton-x509-store
                    , cryptohash-sha256
                    , directory
                    , file-embed
                    , filepath
                    , free
                    , hashable
                    , http-client
                    , http-client-tls
                    , http-types
                    , jose
                    , mtl
                    , network
                    , optparse-applicative
                    , optparse-generic
                    , process
                    , process-extras
                    , salmon-core ^>=0.1.0.0
                    , stm
                    , text
                    , time
                    , unix
                    , wai
                    , warp
                    , tls
                    , warp-tls
    hs-source-dirs:   src
    default-language: Haskell2010
    default-extensions: KindSignatures
                      , DataKinds
                      , OverloadedStrings
                      , DeriveFunctor
                      , OverloadedRecordDot
                      , TypeApplications
                      , ScopedTypeVariables

executable salmon-ops-dot-fixture
    main-is:          DotFixture.hs
    hs-source-dirs:   fixtures
    build-depends:    base >=4.16.3.0 && <4.22
                    , mtl
                    , salmon-core ^>=0.1.0.0
                    , salmon-ops ^>=0.1.0.0
                    , text
    -- every salmon binary can end up running the concurrent driver (`run
    -- serve` does), and a node's own thread must not block the whole runtime.
    ghc-options:      -threaded
    default-language: Haskell2010
    default-extensions: OverloadedStrings
                      , OverloadedRecordDot
                      , ScopedTypeVariables

executable salmon-postgres-replication-fixture
    main-is:          PostgresReplicationFixture.hs
    hs-source-dirs:   fixtures
    build-depends:    base >=4.16.3.0 && <4.22
                    , mtl
                    , salmon-core ^>=0.1.0.0
                    , salmon-ops ^>=0.1.0.0
                    , text
    -- every salmon binary can end up running the concurrent driver (`run
    -- serve` does), and a node's own thread must not block the whole runtime.
    ghc-options:      -threaded
    default-language: Haskell2010
    default-extensions: OverloadedStrings
                      , OverloadedRecordDot
                      , ScopedTypeVariables

executable salmon-qemu-host-setup-fixture
    main-is:          QemuHostSetupFixture.hs
    hs-source-dirs:   fixtures
    build-depends:    base >=4.16.3.0 && <4.22
                    , directory
                    , mtl
                    , filepath
                    , salmon-core ^>=0.1.0.0
                    , salmon-ops ^>=0.1.0.0
                    , text
    -- every salmon binary can end up running the concurrent driver (`run
    -- serve` does), and a node's own thread must not block the whole runtime.
    ghc-options:      -threaded
    default-language: Haskell2010
    default-extensions: OverloadedStrings
                      , OverloadedRecordDot
                      , ScopedTypeVariables

executable salmon-ops-serve-fixture
    main-is:          ServeFixture.hs
    hs-source-dirs:   fixtures
    build-depends:    base >=4.16.3.0 && <4.22
                    , aeson
                    , directory
                    , filepath
                    , optparse-applicative
                    , optparse-generic
                    , process
                    , salmon-core ^>=0.1.0.0
                    , salmon-ops ^>=0.1.0.0
                    , text
    -- every salmon binary can end up running the concurrent driver (`run
    -- serve` does), and a node's own thread must not block the whole runtime.
    ghc-options:      -threaded
    default-language: Haskell2010
    default-extensions: OverloadedStrings
                      , OverloadedRecordDot
                      , ScopedTypeVariables