Schema for Bach Project Settings

From ProjectSettings.schema.yaml (bach/ProjectSettings.schema)

---
$id: https://skeleton.botmd.io/bach/ProjectSettings.schema
$schema: http://json-schema.org/draft-07/schema#

title: Project Settings
description: >-
  `Project.settings` is used to determine the configuration for the test when executed by Virtuosa.

type: object
additionalProperties: false
required: []
properties:
  timeout:
    title: Timeout
    description: The timeout for this test in seconds. Defaults to `settings.BACH_TEST_TIMEOUT` seconds (i.e., 600).

    type: number
    minimum: 30
  #end timeout

  environment:
    title: Environment Variables
    description: A key-value map of environment variables that will be passed into Virtuosa instance.

    type: object
    additionalProperties:
      type: string
  #end environment

  uploaded_files:
    title: Uploaded Files
    description: An array of files to upload. This is useful when starting the project session via Mastermind where there is no way to upload files.

    type: array
    minItems: 1
    items:
      type: object
      required: [filename, content]
      additionalProperties: false

      properties:
        filename:
          title: Filename
          description: This filename will be used and stored in `$UPLOADED_PATH/<filename>`.

          type: string
          minLength: 1

        content:
          title: Content
          description: Content of file.

          type: string
          minLength: 1

        base64_encoded:
          title: Base64 Encoded
          description: Whether the contents are standard Base-64 encoded. Defaults to `false`.

          type: boolean
      #end properties
    #end items

  pre_start_command:
    title: Pre-start Commend
    description: Shell command to run before starting Virtuosa instance.

    type: string
    minLength: 1
  #end pre_start_command

  KeyName:
    title: AWS Key Pair
    description: AWS key pair to use for Virtuosa instance. Defaults to `{settings.ENVIRONMENT}@botmd.io`.

    type: string
    minLength: 1
  #end KeyName

  IamInstanceProfileArn:
    title: AWS instance profile ARN
    description: Instance profile ARN for Virtuosa instance. Defaults to `settings.BACH_VIRTUOSA_INSTANCE_PROFILE` (i.e., `arn:aws:iam::394252546268:instance-profile/{ENVIRONMENT}-virtuosa-instance_profile`).

    type: string
    pattern: '^arn\:aws\:iam\:\:[0-9]+:instance\-profile\/[a-z0-9\-\_]+$'
  #end InstanceType

  InstanceType:
    title: AWS Key Pair
    description: Instance type for Virtuosa instance. Defaults to `c5.large`.

    type: string
    minLength: 1
  #end InstanceType

  SecurityGroups:
    title: AWS Security Groups
    description: Security group names or ID for Virtuosa instance. Defaults to `[staging-virtuosa-instance_sg]`.

    type: array
    items:
      type: string
  #end SecurityGroups

  SubnetId:
    title: AWS Subnet ID
    description: Subnet ID for running Virtuosa instance. Defaults to `secrets.choice(settings.BACH_VIRTUOSA_SUBNETS)`.

    type: string
    pattern: '^subnet\-[0-9a-z]+$'
  #end SubnetId
#end properties

[Main Page] [Schema Documentation] [Examples]