Developer Center

Workspace schema

Configure your PowerTools workspace with a simple yaml schema at .powertools/workspace.yml in your code repository.

Workspace schema

Each workspace is configured using a simple yaml schema file that lives at .powertools/workspace.yml in your team's code repository.

A basic workspace schema consists of:

You should never need to create a workspace schema from scratch. Use pt new --kind=workspace  instead.

Root domains

Root domains are how you configure which domain names PowerTools can create for your service routes. Each root domain name added should be a domain you have access to, and can update NS records to point to PowerTools.


Learn more

Dns records

When you migrate a domain into PowerTools for full management, you often need to add additional DNS entries for various configurations (such as Gsuite, Sendgrid and more).

  - name:
    type: cname
    ttl: 3600
      - s2.domainkey.ul67.
  • name - the full record to create
  • type - the record type (such as mx, a, cname, ns)
  • ttl - record ttl in seconds
  • records - record values

Learn more


Users who are listed as owners have access to run pt workspace sync.



Users who are listed as users have access to develop, build and deploy apps.



Environments represent stages for your software.

  - name: prod
    cloud: aws
    cloud_region: us-west-1
    cloud_account_id: 491187160246

    zones: 2
    create_group_node_pools: true
    release_target: true
    enable_serverless: true
    enable_containers: true
    primary: true
  • name - environment name

  • cloud - cloud to use (aws or gcp)

  • cloud_region - cloud region to use

  • cloud_account_id - cloud account id

  • create_group_node_pools - whether to create individual node pools for each group

  • enable_serverless - enable serverless apps in this environment

  • enable_containers - enable serverless apps in this environment

The following currently only allow a single environment per workspace:

  • release_target - denotes if an environment is release
  • primary - denotes a primary environment where PowerTools schemas are stored
If you only want to deploy static sites, set both enable_serverless andenable_containers to false.

Set create_group_node_pools to false to save on infrastructure costs in testing environments.

We are planning on adding support for multiple release environments, to support live-livedeployments.

Learn more


Groups are how you split services in your workspace.

  - name: main
    default: true
    machine_type: c3.xlarge

    gpu_enabled: false
    spot_enabled: false

    disk_size: 500
    nodes: 1 -> 6
  • name - group name
  • default - whether services with no group declared belong to this group
  • users - list of users who can build, develop and deploy these services
  • machine_type - the machine type to use for nodes in this group
  • spot_enabled - use spot machines for this group
  • disk_size - disk size to use for each node
  • nodes - range of nodes to auto scale for the group

Learn more