strictops.yml Reference
Complete reference for the StrictOps configuration file
strictops.yml Reference
The strictops.yml file is the primary configuration file for StrictOps deployments. Place this file in the root of your repository.
Schema
Top-Level Fields
version
Required | Type: number | Value: 1
The configuration version. Currently only version 1 is supported.
project
Optional | Type: string | Pattern: ^[a-z0-9-]+$
A slug identifying the project. Lowercase letters, numbers, and hyphens only.
services
Required | Type: object
Defines the services to deploy. At least one service is required.
Service names must match the pattern ^[a-z0-9-]+$ (lowercase letters, numbers, and hyphens).
See Service Configuration for details.
deploy
Optional | Type: object
Global deployment settings that apply to all services unless overridden.
| Field | Type | Description | Default |
|---|---|---|---|
capacity | string | Deployment capacity mode | serverless |
profile | string | Resource profile: small, medium, large | small |
replicas | integer | Number of replicas (1-3) | 1 |
healthcheck_path | string | Health check endpoint path | /health |
environments | array | List of environment names to deploy | ["dev", "prod"] |
production | array | Environment names marked as production | ["prod", "production"] (filtered to those in environments) |
domain
Optional | Type: object
Custom domain configuration.
| Field | Type | Description |
|---|---|---|
name | string | Domain name (e.g., app.example.com) |
database
Optional | Type: object
Database configuration.
| Field | Type | Description | Default |
|---|---|---|---|
enabled | boolean | Enable managed database | true |
When enabled, API and worker services are automatically linked to the database.
storage
Optional | Type: object
Defines S3 storage buckets for the project. Each key is a resource name (^[a-z][a-z0-9-]*$), and the value specifies the type.
| Field | Type | Description |
|---|---|---|
type | string | Storage type (currently only s3) |
Services reference storage resources via the links field.
queues
Optional | Type: object
Defines SQS queues for the project. Each key is a resource name (^[a-z][a-z0-9-]*$).
| Field | Type | Description |
|---|---|---|
type | string | Queue type: standard or fifo |
Services reference queues via the links field.
cache
Optional | Type: object
Defines Redis caches for the project. Each key is a resource name (^[a-z][a-z0-9-]*$).
| Field | Type | Description |
|---|---|---|
type | string | Cache type (currently only redis) |
Services reference caches via the links field.
tags
Optional | Type: object
Custom resource tags applied to all AWS resources.
Tag keys must match ^[A-Za-z0-9_.-]+$.
monitoring
Optional | Type: object
Monitoring, alerting, and auto-scaling configuration.
| Field | Type | Description | Default |
|---|---|---|---|
enabled | boolean | Enable monitoring | true |
alerts | object | Alert thresholds | See below |
scaling | object | Auto-scaling settings | See below |
alerts
| Field | Type | Description | Default |
|---|---|---|---|
cpu_threshold | number (1-100) | CPU utilization alert threshold (%) | 80 |
memory_threshold | number (1-100) | Memory utilization alert threshold (%) | 80 |
error_5xx_threshold | number | 5xx error count alert threshold | 10 |
response_time_threshold | number | Response time alert threshold (seconds) | 5 |
scaling
| Field | Type | Description | Default |
|---|---|---|---|
mode | string | Scaling mode: manual, assisted, automatic | assisted |
min_tasks | integer (1-10) | Minimum number of tasks | 1 |
max_tasks | integer (1-10) | Maximum number of tasks | 3 |
Service Configuration
Each service in the services object can have the following fields:
type
Optional | Type: string | Values: web, api, worker | Default: web
The type of service, which determines routing and exposure:
web- Frontend web application (public, HTTP traffic)api- Backend API service (public, HTTP traffic)worker- Background worker (no public exposure)
profile
Optional | Type: string | Values: small, medium, large
Resource allocation profile for the service. Overrides the deploy.profile default.
| Profile | vCPU | Memory |
|---|---|---|
small | 0.25 | 512 MB |
medium | 0.5 | 1 GB |
large | 1 | 2 GB |
replicas
Optional | Type: integer | Range: 1-3
Number of container replicas for the service. Overrides the deploy.replicas default.
healthcheck_path
Optional | Type: string | Pattern: ^/.*
Health check endpoint path. Must start with /. Overrides the deploy.healthcheck_path default.
port
Optional | Type: integer | Range: 1-65535
The port the service listens on. If not specified, ports are assigned automatically starting from 3000.
links
Optional | Type: array
List of other services or resources this service depends on. Link targets can be:
- Service names — enables service-to-service discovery
- Storage names — links the service to an S3 bucket defined in
storage - Queue names — links the service to an SQS queue defined in
queues - Cache names — links the service to a Redis cache defined in
cache
Resource names cannot collide with each other or with service names.
env
Optional | Type: object
Environment variables for the service. Keys must match ^[A-Z0-9_]+$.
secrets
Optional | Type: array
List of secret names to inject as environment variables. Secret values are stored securely in AWS Secrets Manager.
environments
Optional | Type: object
Per-environment overrides for env and secrets.