Parameter defaults
ContractForge keeps contracts concise, but defaults cannot hide ingestion semantics. A value may default only when omitting it does not change write behavior, data loss risk, governance intent, cost posture or deployment trust boundaries.
Safe core defaults
| Field | Default | Why |
|---|---|---|
layer | bronze | Missing layer means first ingestion layer. |
mode | append | Conservative write behavior; no overwrite, merge or history is implied. |
schema_policy | permissive | Existing permissive behavior; strict/additive policies remain explicit. |
on_quality_fail | fail | Quality remains fail-closed unless warning/quarantine is requested. |
hash_strategy | explicit | Avoids hashing hundreds of columns by accident. |
idempotency_policy | always_run | Does not silently skip requested executions. |
source.state.storage | adapter_managed | Adapter uses its safest native state when no external state is declared. |
environment.name | dev | Logical label only; does not change ingestion semantics. |
schedule.timezone | UTC | Portable scheduler default when a schedule is declared. |
Adapter defaults
Adapters may default native runtime knobs when documented.
| Adapter | Field | Default |
|---|---|---|
| Databricks | evidence catalog/schema | main.ops when no environment is provided. |
| Databricks | workspace path | /Workspace/ContractForge. |
| Databricks | bundle target | environment name, defaulting to dev. |
| AWS | Glue version | 4.0. |
| AWS | worker type | G.1X. |
| AWS | workers | 2. |
| AWS | timeout | 60 minutes. |
| AWS | retries | 0. |
| AWS | runtime mode | library_runner. |
| AWS | job bookmarks | Inferred from source semantics unless explicitly configured. |
Must stay explicit
Do not infer these values:
- source location, table, query, endpoint and dataset-specific overrides;
- target table name;
- non-append write modes;
- merge keys, SCD keys and hash column policy;
- quality rules and quality enforcement policy;
- access grants, row filters and masks;
- owner, SLA, criticality and runbook metadata;
- adapter selector in an environment file;
- AWS artifact URI, Iceberg warehouse, Glue role ARN and wheel location;
- Databricks workspace/profile/cluster/warehouse identifiers when required;
- secrets and credentials.
Generated projects
Generated YAML should omit adapter knobs that already have documented adapter defaults. For AWS, the generated environment keeps only non-inferable deployment boundaries such as artifact URI, Iceberg warehouse, wheel path and Glue role ARN. Worker size, worker count, timeout, retries and bookmark settings are omitted unless the user asks for them.