Docs
Project File Format
Reference for the amfelt.yaml project configuration file (PCF), generated from its released JSON schema.
Overview
The Project Configuration File (PCF, amfelt.yaml) is the declarative source of truth for a project: its sources, targets, jobs, and plugins. This reference is generated directly from the released configuration schema, so it always matches the shipped format.
Full Schema Specification
Example
A complete amfelt.yaml skeleton. Every section is optional except the kind/apiVersion header and the project identity. The JSON schema below is the exhaustive reference; this example is the quickest way in.
PCF format version: v0.0.0
# A complete amfelt.yaml. Only the header (kind, apiVersion) and project
# identity (id, name, version, status) are required; every section is optional.
kind: amfeltProject
apiVersion: v0.0.0
id: 6aeafdc1-ed62-4c8f-bf0a-da1061c98cdb
name: acme-analytics
version: "1.0.0"
status: production
description:
purpose: Load the CRM database into the data platform.
usage: Deploy with `amfelt deploy`.
createdAt: "2026-07-05T10:00:00Z"
driftPolicy: # recorded today; enforcing it on a run is on the roadmap
onMinor: adapt
onMajor: stop
sources:
- name: crm
plugin: postgres
secretRef: infisical/crm-creds # vault reference for credentials
server:
type: postgres
host: db.acme.io
port: 5432
database: crm
# objects are discovered by glob (see the job's select); a source may
# instead pin an explicit ODCS contract file with `contract: <path>`.
targets:
- name: warehouse
plugin: duckdb
server:
type: duckdb
database: /data/warehouse.duckdb # the agent creates the file
maxConnections: 1 # DuckDB is single-writer
jobs:
- name: crm-sync
source: crm
target: warehouse
layer: staging
select:
include: ["public.*"]
exclude: ["public.audit_*"]
objects:
public.orders:
tableType: transaction
historyMode: scd2
columns:
expose:
include: ["order_id", "total"]
config:
total:
transform: "value / 100" # "value" = the source column
target: totalDollars
runs:
- strategy: full
schedule: "0 * * * *" # hourly (cron)
plugins:
source:
- plugin: postgres
version: 1.2.3
registry: local
target:
- plugin: duckdb
version: 2.0.0
registry: localLast updated on October 10, 2026