@aiaiai-pt/frankctl 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to `@aiaiai-pt/frankctl` are documented here. This project
4
4
  adheres to [Semantic Versioning](https://semver.org/).
5
5
 
6
+ ## 0.5.0
7
+
8
+ - Make `Source.spec.streams` declarative desired state: create or patch named
9
+ streams without resetting runtime state, report omitted streams as unmanaged,
10
+ export configuration-only stream declarations, and scope `apply --wait` to
11
+ explicitly declared enabled streams.
12
+ - Add Source-level execution and chunk-budget fields to declarative apply,
13
+ create/update validation, server preflight, and export.
14
+ - Extend server preflight with opt-in, GET-only live ontology validation through
15
+ `pipelines apply --dry-run-server --live-ontology`.
16
+ - Correlate `pipelines apply --wait` to the exact Source, Transform, and ontology
17
+ runs it starts; emit precision-safe snapshot IDs and durable REST bulk-job
18
+ evidence through `--json`.
19
+ - Validate relationship prerequisites through `BackingDataset.metadata.dependsOn`
20
+ and execute manual BackingDatasets in topological order.
21
+ - Treat raw pipeline exports as private review material when Sources contain
22
+ literal credentials; `frankctl` does not interpolate environment variables in
23
+ Source configuration.
24
+
6
25
  ## 0.4.4
7
26
 
8
27
  - Add `backing-datasets sync --force` and poll the exact ontology sync run,
package/README.md CHANGED
@@ -57,15 +57,47 @@ when force replay is unsupported or unadvertised.
57
57
 
58
58
  ### Declarative apply (`pipelines apply -f`)
59
59
 
60
- `frankctl pipelines apply -f vertical.yaml` provisions a complete Source +
61
- Pipeline + BackingDataset triple from a single multi-doc YAML file.
60
+ `frankctl pipelines apply -f vertical.yaml` can provision a complete Source +
61
+ Pipeline + BackingDataset triple from a single multi-doc YAML file when the
62
+ Source contains no credential value.
62
63
  Docs use the kubectl-style envelope (`apiVersion: frank.platform/v1`,
63
64
  `kind:`, `metadata.name:`, `spec:`). The CLI sorts by kind (Source →
64
65
  Pipeline → BackingDataset), resolves cross-doc name references to UUIDs,
65
66
  and POSTs each doc with `?if-not-exists=true`. `frankctl pipelines export
66
67
  <id> -o yaml` round-trips an existing pipeline back to a multi-doc YAML
67
- file ready for adoption into git. See `../docs/guides/cli.md` for the
68
- full reference.
68
+ file for private review. Current Source config uses literal credentials,
69
+ `frankctl` performs no environment interpolation, and export preserves that
70
+ config. Split secret-bearing Sources into an untracked mode-0600 file before
71
+ committing the non-secret Pipeline/BackingDataset declarations. See
72
+ `../docs/guides/cli.md` for the full reference and Frank issue #602 for the
73
+ future Vault-backed reference contract.
74
+
75
+ Relationship-bearing BackingDatasets declare their prerequisites in
76
+ `metadata.dependsOn` and explicitly use `spec.sync_mode: manual`. The graph is
77
+ currently invocation-local rather than persisted server policy, so missing mode
78
+ and `on_materialization` are rejected. `--wait` directly triggers those manual
79
+ BackingDatasets in topological order and requires external targets to be already
80
+ `synced`; missing dependencies, cycles, and self-referential relationships fail
81
+ before execution.
82
+
83
+ `Source.spec.streams` is desired state on create and reapply: declared streams
84
+ are created/patched by name without resetting cursor, chunk, counter, or run
85
+ state. Omitted streams are preserved and reported as unmanaged; explicitly set
86
+ `is_enabled: false` to disable one. Client dry-run shows the declaration,
87
+ server dry-run shows per-stream actions, and export emits config-only stream
88
+ declarations without runtime state. With `--wait`, an explicit declaration
89
+ syncs only its enabled stream names, so preserved unmanaged streams do not run.
90
+ For a migration, explicitly declare known obsolete enabled streams with
91
+ `is_enabled: false` as well, so scheduled/direct Source syncs converge safely.
92
+
93
+ Use `--dry-run-server --live-ontology` for an opt-in, GET-only check of
94
+ BackingDataset mappings against the server's configured ontology. Use
95
+ `--wait --json` to execute with exact Source, Transform, and BackingDataset
96
+ run correlation and emit one evidence object. `--wait` does not replace a
97
+ separate ontology entity readback; an ontology run reported as `skipped`
98
+ means the snapshot was already converged and no rows were replayed. REST bulk
99
+ runs include durable job IDs and submitted/completed counts from the exact
100
+ ontology SyncRun; credentials and row payloads are never included.
69
101
 
70
102
  ## Environment
71
103