Specification Overview¶
The Synthetic Open Schema specification defines a vendor-neutral format for synthetic monitoring checks. This page provides an overview of the specification structure and how to navigate it.
API Versions¶
Synthetic Open Schema uses semantic API versioning:
v1 — Core Checks (Stable)¶
Declarative checks with assertion-based validation:
- HttpCheck — HTTP/HTTPS endpoint monitoring
- TcpCheck — TCP port connectivity
- DnsCheck — DNS resolution validation
- TlsCheck — TLS/SSL certificate monitoring
- DomainCheck — Domain registration checks
Status: ✅ Stable (v1.0.0 released 2026-02-07)
browser/v1 — Browser Checks (Stable)¶
Programmatic browser automation checks:
- LoadCheck — Page load performance monitoring
- ScriptedCheck — Browser automation scripts
Status: ✅ Stable (v1.0.0 released 2026-02-07)
View browser/v1 API documentation →
Specification Structure¶
Core Documents¶
| Document | Description |
|---|---|
| Base Model | Resource structure (apiVersion, kind, metadata, spec) |
| Common Types | Shared fields, assertion types, operators, validation rules |
Check Kind Specifications¶
Each check kind has its own specification document:
- Fields: Required and optional fields for the check
- Assertions: Supported assertion types for validation
- Examples: Complete YAML examples
- Conformance: Requirements for implementations
Policy Documents¶
| Document | Description |
|---|---|
| Glossary | Terminology and definitions |
| Versioning | API versioning strategy |
| Compatibility | Backward/forward compatibility guarantees |
Resource Model¶
All checks follow a Kubernetes-style resource structure:
apiVersion: v1 # or browser/v1
kind: HttpCheck # Check type
metadata:
name: my-check # Unique identifier
title: My Check # Human-readable name (optional)
labels: # Key-value pairs (optional)
env: production
spec:
# Check-specific configuration
url: https://example.com
interval: 1m
checks:
- type: statusCode
value: 200
Key Concepts¶
- apiVersion: Declares which API version the check uses
- kind: Specifies the check type (e.g.,
HttpCheck,DnsCheck) - metadata: Information about the check (name, labels, etc.)
- spec: Check-specific configuration and assertions
Learn more about the base model →
Common Fields¶
All check kinds share these fields in their spec:
Scheduling (Mutually Exclusive)¶
Interval-based:
Cron-based:
Execution¶
spec:
timeout: 30s # Maximum execution time
retries: 3 # Number of retry attempts
retryDelay: 5s # Delay between retries
locations: # Execution locations
- us-east-1
- eu-west-1
Notifications¶
Assertions¶
spec:
checks: # Success criteria
- type: statusCode
value: 200
- type: responseTime
operator: lessThan
value: 500ms
View complete common fields documentation →
Assertion Types¶
Synthetic Open Schema supports five assertion types, each with specific operators and value formats:
- Numeric — Status codes, response times, counts (operators: equals, greaterThan, lessThan, etc.)
- String — Body content, headers, DNS records (operators: equals, contains, matches, etc.)
- Boolean — Binary states like connected, valid, enabled (operators: equals, notEquals)
- Time-based — Dates, expirations, durations (operators: same as numeric)
- List — DNS records, nameservers, arrays (operators: contains, containsAny, containsAll)
View complete assertion documentation with examples →
Conformance¶
An implementation claiming compatibility with Synthetic Open Schema MUST:
- Implement the base Resource model as defined in check.md
- Support at least one check kind fully
- Reject configurations that violate normative constraints
- Clearly document which check kinds and features are supported
- Handle scheduling (interval or cron) as specified
- Evaluate assertions according to the specification
Implementations SHOULD:
- Support all stable check kinds
- Provide clear error messages for validation failures
- Support multiple execution locations
- Implement retry logic
Learn more about conformance requirements →
Examples¶
Complete, tested YAML example configurations are available in the model repository:
Core Checks (v1):
Browser Checks (browser/v1):
JSON Schema¶
JSON Schema definitions for validation and tooling integration are published at:
📦 https://github.com/syntheticopenschema/schemas
These schemas are generated from the reference Python implementation and updated with each release.
Contributing¶
To propose changes to the specification:
- Open an issue describing the proposed change
- Submit a pull request with specification updates
- Update examples and schemas accordingly
- Ensure backward compatibility (or document breaking change)
Read the contribution guidelines →
Governance¶
The specification follows an open governance model:
- Steward: Ideatives Inc.
- Maintainer: @dmonroy
- RFC Process: New check types require 14-day community review
- Decision Process: Documented in GOVERNANCE.md