cabal-version: 3.4
name: hurl-workbench-core
version: 0.1.0.0
synopsis: Core library for composing and executing reusable Hurl API workflows
description:
A Haskell-powered Hurl workbench for composing, exploring, executing, and
testing reusable API workflows without duplicating request templates.
.
This library provides the engine behind the @hurl-workbench@ command: typed,
versioned Dhall workspaces; byte-preserving Hurl fragment composition with
source-mapped validation; secure Hurl 8.x execution that keeps secrets out
of child argv; read-only and mutating recipes; bounded matrices; managed
services cleaned up as POSIX process groups; and ordered integration suites
with executable checks and isolated JUnit, HTML, JSON, and TAP reports.
category: Web, Testing
license: BSD-3-Clause
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: (c) 2026 Nadeem Bitar
build-type: Simple
extra-doc-files:
CHANGELOG.md
README.md
extra-source-files:
schema/*.dhall
test/fixtures/processes/*.c
test/fixtures/workspaces/**/*.dhall
test/fixtures/workspaces/**/*.hurl
test/fixtures/workspaces/**/*.txt
common common-options
ghc-options:
-Wall
-Wcompat
-Widentities
-Wincomplete-uni-patterns
-Wincomplete-record-updates
-Wredundant-constraints
-fhide-source-paths
-Wmissing-export-lists
-Wpartial-fields
-Wmissing-deriving-strategies
default-language: GHC2024
default-extensions:
DeriveAnyClass
DuplicateRecordFields
OverloadedLabels
OverloadedStrings
library
import: common-options
hs-source-dirs: src
exposed-modules:
HurlWorkbench.Check.Resolve
HurlWorkbench.Check.Run
HurlWorkbench.Hurl.Capabilities
HurlWorkbench.Hurl.Format
HurlWorkbench.Hurl.Run
HurlWorkbench.Parameter.Generate
HurlWorkbench.Parameter.Properties
HurlWorkbench.Parameter.Resolve
HurlWorkbench.Prelude
HurlWorkbench.Run.Artifact
HurlWorkbench.Run.Batch
HurlWorkbench.Run.FileRoot
HurlWorkbench.Run.Prepare
HurlWorkbench.Run.Selection
HurlWorkbench.Service.Environment
HurlWorkbench.Service.Group
HurlWorkbench.Service.Resolve
HurlWorkbench.Service.Run
HurlWorkbench.Suite.Isolation
HurlWorkbench.Suite.Resolve
HurlWorkbench.Suite.Run
HurlWorkbench.Suite.Scenario
HurlWorkbench.Workflow.Render
HurlWorkbench.Workflow.Resolve
HurlWorkbench.Workspace.Context
HurlWorkbench.Workspace.Decode
HurlWorkbench.Workspace.Discover
HurlWorkbench.Workspace.Error
HurlWorkbench.Workspace.Types
HurlWorkbench.Workspace.Validate
other-modules:
HurlWorkbench.Check.Template
HurlWorkbench.Parameter.Resolve.Internal
HurlWorkbench.Process.Run
HurlWorkbench.Workspace.Context.Internal
build-depends:
aeson >=2.2.5.1 && <2.3,
async ^>=2.2.6,
base >=4.20 && <5,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.8,
dhall ^>=1.42,
directory ^>=1.3,
filepath >=1.4 && <1.6,
generic-lens ^>=2.3,
http-client ^>=0.7.19,
http-types >=0.12 && <0.13,
lens ^>=5.3,
process >=1.6.3 && <1.7,
stm >=2.5 && <2.6,
temporary ^>=1.3,
text ^>=2.1,
time >=1.14 && <1.17,
typed-process ^>=0.2.13,
unix >=2.8.8 && <2.9,
test-suite hurl-workbench-core-test
import: common-options
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
HurlWorkbench.Check.RunTest
HurlWorkbench.Hurl.RunTest
HurlWorkbench.Parameter.GenerateTest
HurlWorkbench.Parameter.ParameterTest
HurlWorkbench.Run.FileRootTest
HurlWorkbench.Run.SelectionTest
HurlWorkbench.Service.RunTest
HurlWorkbench.Suite.LifecycleTest
HurlWorkbench.Suite.RunTest
HurlWorkbench.Suite.ScenarioTest
HurlWorkbench.Workflow.WorkflowTest
HurlWorkbench.Workspace.NameSafetyTest
HurlWorkbench.Workspace.WorkspaceTest
ghc-options:
-threaded
build-depends:
aeson >=2.2.5.1 && <2.3,
async,
base >=4.20 && <5,
bytestring,
containers,
directory,
filepath,
generic-lens,
hurl-workbench-core,
lens,
stm,
tasty ^>=1.5,
tasty-hunit ^>=0.10,
temporary ^>=1.3,
text,
time >=1.14 && <1.17,
typed-process,
unix,