hurl-workbench-cli-0.1.0.0: examples/integration-service/hurl-workbench.dhall
let Schema = ../../schema/package.dhall
in Schema.Workspace::{
, schemaVersion = Schema.schemaVersion
, parameters =
[ Schema.Parameter::{ name = "base_url", defaultValue = Some "http://127.0.0.1:18080" }
, Schema.Parameter::{ name = "service_port", defaultValue = Some "18080" }
]
, fragments =
[ Schema.Fragment::{ name = "health", path = "hurl/health.hurl" }
, Schema.Fragment::{ name = "read-echo", path = "hurl/read-echo.hurl" }
, Schema.Fragment::{ name = "create", path = "hurl/create.hurl" }
, Schema.Fragment::{ name = "perimeter", path = "hurl/perimeter.hurl" }
]
, workflows =
[ Schema.Workflow::{
, name = "health"
, fragments = [ "health" ]
, parameters = [ "base_url" ]
}
, Schema.Workflow::{
, name = "read-echo"
, fragments = [ "read-echo" ]
, parameters = [ "base_url" ]
}
, Schema.Workflow::{
, name = "create"
, fragments = [ "create" ]
, parameters = [ "base_url" ]
}
, Schema.Workflow::{
, name = "perimeter"
, fragments = [ "perimeter" ]
, parameters = [ "base_url" ]
}
]
, recipes =
[ Schema.Recipe::{
, name = "health"
, workflow = "health"
, safety = Schema.Safety.ReadOnly
}
, Schema.Recipe::{
, name = "read-echo"
, workflow = "read-echo"
, safety = Schema.Safety.ReadOnly
}
, Schema.Recipe::{
, name = "create"
, workflow = "create"
, safety = Schema.Safety.Mutating
}
, Schema.Recipe::{
, name = "perimeter"
, workflow = "perimeter"
, safety = Schema.Safety.ReadOnly
}
]
, services =
[ Schema.Service::{
, name = "fixture-api"
, command = Schema.CommandSpec::{
, executable = "cabal"
, arguments = [ "--project-dir=../..", "run", "hurl-workbench-fixture-server" ]
, environment =
[ Schema.EnvironmentBinding::{ variable = "PORT", parameter = "service_port" } ]
}
, readiness =
Schema.Readiness.Http
Schema.HttpReadiness::{ url = "http://127.0.0.1:{{service_port}}/health" }
}
, Schema.Service::{
, name = "clean-fixture-api"
, command = Schema.CommandSpec::{
, executable = env:HURL_WORKBENCH_FIXTURE_EXECUTABLE as Text ? "hurl-workbench-fixture-server"
, arguments = [ "--assert-clean" ]
, environmentPolicy = Schema.EnvironmentPolicy.Clean [ "PORT" ]
, environment = [ Schema.EnvironmentBinding::{ variable = "PORT", parameter = "service_port" } ]
}
, readiness = Schema.Readiness.Command Schema.CommandReadiness::{
, command = Schema.CommandSpec::{
, executable = env:HURL_WORKBENCH_CURL_EXECUTABLE as Text ? "curl"
, arguments = [ "--fail", "--silent", "http://127.0.0.1:18080/health" ]
, environmentPolicy = Schema.EnvironmentPolicy.Clean ([] : List Text)
}
}
}
]
, suites =
[ Schema.Suite::{
, name = "default"
, isolation = Schema.IsolationPolicy.SharedState
, runs =
[ Schema.RunReference.Recipe "health"
, Schema.RunReference.Recipe "read-echo"
]
, service = Some "fixture-api"
, failFast = True
}
, Schema.Suite::{
, name = "writes"
, isolation = Schema.IsolationPolicy.SharedState
, runs = [ Schema.RunReference.Recipe "create" ]
, service = Some "fixture-api"
, failFast = True
}
, Schema.Suite::{
, name = "perimeter"
, runs = [ Schema.RunReference.Recipe "perimeter" ]
, service = Some "fixture-api"
, failFast = True
}
, Schema.Suite::{ name = "clean", runs = [ Schema.RunReference.Recipe "health" ], service = Some "clean-fixture-api" }
]
}