packages feed

hurl-workbench-core-0.1.0.0: test/fixtures/workspaces/full/hurl-workbench.dhall

-- One OAuth fragment reused by two resource workflows, plus a recipe, a
-- matrix, a managed service, and a suite.
let Schema = ../../../../schema/package.dhall

let oauthParameters = [ "auth_url", "client_id", "client_secret" ]

in  Schema.Workspace::{
    , schemaVersion = Schema.schemaVersion
    , parameters = ./parameters.dhall
    , fragments =
      [ Schema.Fragment::{
        , name = "oauth"
        , path = "hurl/oauth.hurl"
        , description = Some "Client-credentials token"
        }
      , Schema.Fragment::{ name = "properties", path = "hurl/properties.hurl" }
      , Schema.Fragment::{ name = "members", path = "hurl/members.hurl" }
      ]
    , workflows =
      [ Schema.Workflow::{
        , name = "list-properties"
        , fragments = [ "oauth", "properties" ]
        , parameters = oauthParameters # [ "base_url", "top" ]
        }
      , Schema.Workflow::{
        , name = "list-members"
        , fragments = [ "oauth", "members" ]
        , parameters = oauthParameters # [ "base_url", "top" ]
        }
      ]
    , recipes =
      [ Schema.Recipe::{
        , name = "top-properties"
        , workflow = "list-properties"
        , bindings = [ Schema.Binding::{ parameter = "top", value = "10" } ]
        , safety = Schema.Safety.ReadOnly
        }
      ]
    , matrices =
      [ Schema.Matrix::{
        , name = "property-page-sizes"
        , recipe = "top-properties"
        , cases =
          [ Schema.MatrixCase::{
            , name = "small"
            , bindings = [ Schema.Binding::{ parameter = "top", value = "1" } ]
            }
          , Schema.MatrixCase::{
            , name = "large"
            , bindings = [ Schema.Binding::{ parameter = "top", value = "100" } ]
            }
          ]
        }
      ]
    , services =
      [ Schema.Service::{
        , name = "api"
        , command = Schema.CommandSpec::{
          , executable = "python3"
          , arguments = [ "-m", "http.server", "8080" ]
          , workingDirectory = Some "."
          , environment =
            [ Schema.EnvironmentBinding::{ variable = "CLIENT_ID", parameter = "client_id" } ]
          }
        , readiness =
            Schema.Readiness.Http
              Schema.HttpReadiness::{ url = "http://127.0.0.1:8080/" }
        }
      ]
    , suites =
      [ Schema.Suite::{
        , name = "smoke"
        , runs =
          [ Schema.RunReference.Workflow "list-members"
          , Schema.RunReference.Recipe "top-properties"
          , Schema.RunReference.Matrix "property-page-sizes"
          ]
        , service = Some "api"
        }
      ]
    }