CLI reference¶
datamuru [OPTIONS] COMMAND [ARGS]...
By default, interactive commands print the DataMuru branded CLI header. Use
--no-banner before the command name when scripting:
datamuru --no-banner validate --config datamuru.yml
init¶
Create a starter project.
datamuru init
[--name TEXT]
[--provider TEXT]
[--cloud TEXT]
[--edition TEXT]
[--execution-mode state-only|live-readonly|live-apply]
[--output-dir TEXT]
Defaults: name datamuru-project, provider databricks, edition
open-source, execution mode state-only, and current output directory. Cloud
defaults to snowflake for the Snowflake provider and azure otherwise.
The generated Databricks provider config uses host_env, token_env, and
sql_warehouse_id_env so workspace-specific values stay outside YAML.
The generated Snowflake provider config uses account_env, user_env, browser
SSO, and live-readonly compatible defaults.
validate¶
datamuru validate [--config TEXT] [--strict]
--strict fails when validation returns warnings.
doctor¶
datamuru doctor [--config TEXT] [--output text|json]
Runs provider-aware diagnostics. Default config: datamuru.yml.
plan¶
datamuru plan
[--config TEXT]
[--target TEXT]
[--out TEXT]
[--output text|json]
--out writes a saved plan. --target accepts a resource address.
apply¶
datamuru apply
[--config TEXT]
[--target TEXT]
[--plan TEXT]
[--auto-approve]
Use either current configuration planning or --plan for a saved plan.
destroy¶
datamuru destroy
[--config TEXT]
[--target TEXT]
[--confirm-destroy]
Destruction requires --confirm-destroy.
import discover¶
datamuru import discover
[--config TEXT]
[--catalog TEXT]...
[--include-system]
[--include-identities]
[--include-grants]
[--grant-scope catalog|schema|all]
[--max-grant-objects INTEGER]
[--max-catalog-grant-objects INTEGER]
[--max-schema-grant-objects INTEGER]
[--progress-checkpoint TEXT]
[--job-checkpoint TEXT]
[--resume-from TEXT]
[--output text|json]
Requires one workspace declaration and a live execution mode. Text output shows a progress bar with the current provider stage. JSON output suppresses progress so automation can parse stdout safely.
Repeat --catalog to restrict catalog, schema, and grant discovery to selected
catalogs. --include-grants defaults to --grant-scope catalog so broad
enterprise imports do not accidentally scan every schema grant. Use
--grant-scope all only after scoping catalogs and estimating warehouse cost.
--max-grant-objects stops the run before expensive grant discovery starts
when too many catalog/schema objects are in scope. Use
--max-catalog-grant-objects and --max-schema-grant-objects to set separate
caps for each object type. This keeps a workspace with few catalogs but many
schemas from launching an unexpectedly large SQL grant scan.
--progress-checkpoint writes the latest structured progress event to JSON so
long-running imports can be observed from another terminal or CI step.
--job-checkpoint writes resumable grant-scan state, including completed grant
targets and discovered grants. --resume-from loads a previous job checkpoint
and skips completed grant targets while refreshing catalog/schema inventory.
import generate¶
datamuru import generate
[--config TEXT]
[--catalog TEXT]...
[--include-groups]
[--include-identities]
[--include-grants]
[--grant-scope catalog|schema|all]
[--max-grant-objects INTEGER]
[--max-catalog-grant-objects INTEGER]
[--max-schema-grant-objects INTEGER]
[--progress-checkpoint TEXT]
[--job-checkpoint TEXT]
[--resume-from TEXT]
[--include-system]
[--out TEXT]
[--suite-out TEXT]
[--suite-layout standard|enterprise]
[--suite-prefix TEXT]
[--output text|json]
Repeat --catalog to select more than one catalog.
Use --suite-layout enterprise with --suite-out when generated review files
must include provider, environment, workspace, and catalog scope in their file
names. Use --suite-prefix only when your organization has a stricter naming
standard.
import map-snowflake¶
datamuru import map-snowflake
[--config TEXT]
[--catalog TEXT]...
[--target-account TEXT]
[--target-workspace TEXT]
[--database-prefix TEXT]
[--schema-case upper|lower|preserve]
[--out TEXT]
[--output text|json]
Generates a draft Databricks-to-Snowflake migration mapping from live Databricks catalog/schema discovery. The command does not move data and does not mutate Snowflake. It writes a reviewable YAML contract that maps Databricks catalogs to Snowflake databases and Databricks schemas to Snowflake schemas.
Use --catalog to keep the draft bounded. Use --database-prefix and
--schema-case to match enterprise Snowflake naming standards.
import map-databricks¶
datamuru import map-databricks
[--config TEXT]
[--database TEXT]...
[--target-workspace TEXT]
[--target-cloud azure|aws|gcp]
[--catalog-prefix TEXT]
[--identifier-case lower|preserve]
[--out TEXT]
[--output text|json]
Generates a draft Snowflake-to-Databricks mapping from live-readonly Snowflake
database/schema discovery. Databases map to catalogs and schemas map to
schemas. Repeat --database to bound the source scope.
The command performs no mutation or data movement. Identifier normalization is deterministic, and target catalog or schema collisions block generation.
import adopt¶
datamuru import adopt
[--config TEXT]
--target TEXT...
[--auto-approve]
[--output text|json]
Preview is the default. Repeat --target to select multiple declared
resources. A catalog target also selects its declared schemas.
--auto-approve writes state only when every selected resource exists live and
matches its declared fingerprint.
state inspect¶
datamuru state inspect [--config TEXT] [--output text|json]
Reports whether the configured state backend can run in the current OSS
runtime. Local state is ready for read-write workflows. Remote backend values
(s3, azure_blob, and gcs) are recognized as configuration contracts, but
the OSS alpha reports them as blocked instead of attempting cloud reads or
writes. Use JSON output in CI to fail early before plan or apply workflows.
When a remote state contract is configured, plan, apply, destroy, and adoption
commands fail before provider work with DMR-STATE-REMOTE.
edition show¶
datamuru edition show [--config TEXT] [--output text|json]
Reports the configured edition and enabled or restricted features.
enterprise activation check¶
datamuru enterprise activation check [--config TEXT] [--output text|json]
Checks whether an Enterprise project has the hosted control plane feature, activation metadata, and configured license key environment variable needed for onboarding. JSON output includes a redacted activation payload and never prints the license key value.
enterprise activation export¶
datamuru enterprise activation export
[--config TEXT]
--out TEXT
[--allow-blocked]
[--output text|json]
Writes a redacted Enterprise activation handoff bundle for onboarding. The
command fails without writing a file when activation is blocked. Use
--allow-blocked only when support asks for a diagnostic bundle that includes
failed checks.
enterprise activation purchase-request¶
datamuru enterprise activation purchase-request
[--config TEXT]
--out TEXT
[--allow-blocked]
[--output text|json]
Writes a redacted offline purchase and license activation request for the Enterprise onboarding or support workflow. The artifact includes commercial metadata, requested entitlements, tenant fulfillment fields, and license environment-variable status. It does not provision a tenant, call a license server, or include the license key value.
enterprise activation fulfill¶
datamuru enterprise activation fulfill
--request TEXT
--decision approve|reject
--operator TEXT
--decision-reference TEXT
--out DIRECTORY
[--notes TEXT]
[--output text|json]
Validates a redacted purchase request and records an offline operator decision. Approval writes a versioned fulfillment decision and activation receipt; rejection writes only the decision. Conflicting existing evidence blocks the command. It performs no payment processing, license signing, network request, provider mutation, state mutation, or tenant provisioning.
enterprise activation evidence¶
datamuru enterprise activation evidence
[--config TEXT]
--out TEXT
[--allow-blocked]
[--output text|json]
Writes a redacted audit evidence report for Enterprise activation handoff. The
report wraps activation readiness, the hosted control plane contract, audit
metadata, and follow-up actions. The command fails without writing a file when
activation is blocked unless --allow-blocked is set for support triage.
enterprise activation package¶
datamuru enterprise activation package
[--config TEXT]
--out TEXT
[--allow-blocked]
[--output text|json]
Writes a single redacted activation handoff directory for onboarding. The package includes:
enterprise-activation.json;purchase-request.json;activation-evidence.json;control-plane-contract.json;control-plane-architecture.json;tenant-entitlement-record.json;manifest.json.
The command fails without writing files when activation is blocked unless
--allow-blocked is set for support triage. The manifest records artifact
schema versions, ready or blocked status, and redaction guarantees.
enterprise control-plane tenant-record¶
datamuru enterprise control-plane tenant-record
[--config TEXT]
--out TEXT
[--allow-blocked]
[--output text|json]
Writes an immutable, redacted tenant entitlement record with schema
datamuru.tenant_entitlement_record.v1. The record_id is stable for the same
project, tenant, and entitlement binding even when the generation time or
license-key availability changes. The command is offline and does not provision
a tenant, call a license server, mutate provider resources, or mutate state.
The command fails without writing a file when activation is blocked. Use
--allow-blocked only for a support-requested diagnostic record containing
failed checks. JSON output is the complete redacted record.
enterprise control-plane contract¶
datamuru enterprise control-plane contract
[--config TEXT]
[--out TEXT]
[--output text|json]
Builds a redacted hosted control plane handoff contract from local project configuration. The contract combines activation readiness, state backend posture, feature flags, and hosted follow-up actions. It does not provision a tenant, call a license server, or include the license key value.
enterprise control-plane architecture¶
datamuru enterprise control-plane architecture
[--config TEXT]
[--out TEXT]
[--output text|json]
Builds a versioned hosted control plane reference architecture contract. The contract describes components, data flows, extension points, trust boundaries, accepted decisions, implementation backlog, and non-goals. It is an offline planning artifact and does not provision hosted infrastructure.
agile export¶
datamuru agile export
[--format github-issues]
[--source TEXT]
--out TEXT
[--release-target TEXT]
[--output text|json]
Exports local GitHub issue draft files from the documented DataMuru roadmap
table. The first supported format is github-issues. The command writes one
Markdown issue draft per backlog row plus manifest.json for review and later
automation.
Use --release-target to export one milestone at a time. This command does not
create GitHub issues and does not require GitHub credentials.
Exit behavior¶
Commands return a nonzero exit code for structured DataMuru errors. Do not parse human-formatted Rich output in automation; use JSON output where available.