docs(flows): DoD obligatorio con user-facing surface + abrir issues 0100-0103 (taxonomia, frontmatter migration, dev_console, work dashboard)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -110,11 +110,23 @@ def validate_recipe_yaml(yaml_text: str) -> dict:
|
||||
)
|
||||
|
||||
sink = output.get("sink")
|
||||
valid_sinks = {"data_factory.runs", "stdout", "json_file"}
|
||||
# duckdb sink: requires output.duckdb_path (relative or absolute) and
|
||||
# output.table (table name). Optional output.database_id (default =
|
||||
# recipe_name + "_db") used to register/lookup in data_factory.databases.
|
||||
valid_sinks = {"data_factory.runs", "stdout", "json_file", "duckdb"}
|
||||
if sink is not None and sink not in valid_sinks:
|
||||
errors.append(
|
||||
f"Campo 'output.sink' debe ser uno de {sorted(valid_sinks)}, got '{sink}'."
|
||||
)
|
||||
if sink == "duckdb":
|
||||
if not output.get("duckdb_path"):
|
||||
errors.append(
|
||||
"Sink 'duckdb' requiere 'output.duckdb_path' (ruta al archivo .duckdb)."
|
||||
)
|
||||
if not output.get("table"):
|
||||
errors.append(
|
||||
"Sink 'duckdb' requiere 'output.table' (nombre de la tabla destino)."
|
||||
)
|
||||
|
||||
return {
|
||||
"valid": len(errors) == 0,
|
||||
|
||||
Reference in New Issue
Block a user