diff --git a/internal/cli/dataset_rm.go b/internal/cli/dataset_rm.go index feb7f8e..6365ecb 100644 --- a/internal/cli/dataset_rm.go +++ b/internal/cli/dataset_rm.go @@ -97,6 +97,9 @@ Exit codes: func runDatasetRm(ctx context.Context, a runDatasetRmArgs) error { p := a.Printer p.Banner("tracebloc", "delete a pushed dataset") + p.Para(`This permanently removes a dataset you pushed earlier: it drops the table from +the cluster and deletes the dataset's files on the shared storage. It can't be +undone — re-pushing the data is the only way back.`) // 1. Validate the name before we build any PVC path from it // (push.PlanTeardown panics on an unsafe name by design). @@ -160,6 +163,7 @@ func runDatasetRm(ctx context.Context, a runDatasetRmArgs) error { return &exitError{code: 3, err: errors.New( "refusing to delete without confirmation: pass --yes or run on a terminal")} } + p.PromptHint("This drops the table and removes the files listed above — there's no undo. Pass --yes next time to skip this prompt.") ok, err := a.Prompter.Confirm(fmt.Sprintf("Delete %q and its files?", a.Table), false) if err != nil { if errors.Is(err, errInteractiveCancelled) { diff --git a/internal/cli/root.go b/internal/cli/root.go index 9f72b3a..311c826 100644 --- a/internal/cli/root.go +++ b/internal/cli/root.go @@ -93,6 +93,7 @@ what's planned next.`, p.Banner("tracebloc", "declarative data ingestion for your cluster") p.Section("Get started") p.Infof("tracebloc dataset push ./data — stage + ingest a dataset (guided if you omit flags)") + p.Infof("tracebloc dataset rm