Capability Vocabulary¶
Status: Available in ETLantic 0.22.0 via
etlantic.capabilities.
Plugins declare what they support through PluginCapabilities. The vocabulary
is versioned independently of package and protocol versions as
etlantic.capabilities/1 (CAPABILITY_VOCABULARY_VERSION).
Compatibility¶
Use vocabulary_major_compatible(version) to check that a declared vocabulary
string shares major /1 with the core vocabulary. Minor or patch segments under
the same major remain compatible; a different major is not.
Implications¶
Specialized flags imply their family root. Claiming a specialized capability
without the implied root is inconsistent and fails
validate_capability_claims.
| Claim | Implies |
|---|---|
sql_merge, sql_cte, sql_returning, sql_transactional_ddl, sql_atomic_rename, sql_catalog_inspect, sql_trusted_fragments |
sql |
spark_delta, spark_merge, spark_streaming, spark_native_exprs, spark_udf, spark_cache, spark_checkpoint |
spark |
orch_scheduling, orch_retries, orch_timeouts, orch_parallel, orch_sensors, orch_artifacts_only_xcom |
orchestration |
lazy, arrow_import, arrow_export, zero_copy, invalid_row_separation |
dataframe |
Call capability_implications() for the authoritative map used by validation.
Conflicts¶
Vocabulary /1 defines no hard mutual exclusions. Engines may claim both
eager and lazy when they support both execution modes.
capability_conflicts() returns an empty list in /1; future majors may add
pairs.
Deprecation¶
No capability names are deprecated in /1. When names are retired:
- keep the boolean field through at least one minor release with a documented
alias in
supports() - document the replacement and removal target in this page
- bump the vocabulary major only when removing a name or changing implication / conflict semantics incompatibly
Validation¶
from etlantic.capabilities import (
PluginCapabilities,
validate_capability_claims,
vocabulary_major_compatible,
)
caps = PluginCapabilities(engine="example", sql_merge=True, sql=True)
assert not validate_capability_claims(caps)
assert vocabulary_major_compatible(caps.vocabulary_version)
Overstated or internally inconsistent claims should surface as actionable
findings (for example, sql_merge without sql).
Schema¶
Machine-readable vocabulary documentation lives at
capability-vocabulary-1.json.