4.5 KiB
Data Cloud Community Plugin Setup
The data360-orchestrate family uses a community sf data360 CLI runtime. sf-skills does not vendor or fork that plugin.
Why this setup exists
- keeps sf-skills focused on skills, prompts, docs, and templates
- lets the upstream runtime continue to evolve independently
- avoids MCP and keeps execution deterministic
Prerequisites
- Node.js 18+
- yarn
- Salesforce CLI (
sf) - git
- a Data Cloud-enabled org authenticated with
sf org login web -a <alias>
Recommended setup path
If you use the Python installer, it can install this optional runtime for you:
python3 ~/.claude/sf-skills-install.py --with-datacloud-runtime
Or use the helper script directly:
bash ../scripts/bootstrap-plugin.sh
By default it clones the plugin into ~/.sf-community-tools/datacloud/sf-cli-plugin-data360, installs dependencies, compiles it, and links it into the local Salesforce CLI.
Manual setup
git clone https://github.com/Jaganpro/sf-cli-plugin-data360.git
cd sf-cli-plugin-data360
yarn install
npx tsc
node ../scripts/generate-manifest.mjs .
sf plugins link .
Verification
sf data360 man
bash ../scripts/verify-plugin.sh
bash ../scripts/verify-plugin.sh myorg
node ../scripts/diagnose-org.mjs -o myorg --json
For newer command families such as sf data360 query hybrid and recent pagination fixes, update the community runtime to the latest upstream commit by re-running the bootstrap helper.
sf data360 doctor is useful, but it is not the only readiness signal. On partially provisioned orgs it can fail even when other read-only Data Cloud commands still work. The helper script treats doctor as advisory and falls back to additional smoke checks.
Use diagnose-org.mjs when you need phase-specific readiness classification instead of a simple pass/fail check. It helps distinguish:
- empty-but-enabled modules
- feature-gated modules
- query-plane issues
- runtime/auth failures
Output-noise tip
When using linked community plugins, stderr can include warning noise. For normal usage, prefer:
sf data360 dmo list --all -o myorg 2>/dev/null
sf data360 segment list -o myorg 2>/dev/null
Troubleshooting
ESM auto-transpile warning
If you see Warning: @gthoppae/sf-cli-plugin-data360 is a linked ESM module and cannot be auto-transpiled, generate the oclif command manifest:
node ../scripts/generate-manifest.mjs ~/.sf-community-tools/datacloud/sf-cli-plugin-data360
This tells oclif to use pre-compiled output directly instead of attempting auto-transpilation. The npx oclif manifest alternative may fail on newer Node.js versions due to @oclif/core version mismatches.
Clone error references gthoppae/sf-cli-plugin-data360
If the clone failure mentions gthoppae/sf-cli-plugin-data360, your local ~/.claude/sf-skills-install.py copy is outdated. Refresh the installer first, then retry the optional runtime install:
python3 ~/.claude/sf-skills-install.py --force-update
python3 ~/.claude/sf-skills-install.py --with-datacloud-runtime
Or rerun the latest installer directly from GitHub:
curl -sSL https://raw.githubusercontent.com/Jaganpro/sf-skills/main/tools/install.py | python3 - --with-datacloud-runtime
Plugin not found after install
If sf was installed globally (with sudo), the default data directory may be root-owned. Set SF_DATA_DIR in your shell profile:
export SF_DATA_DIR="${HOME}/.local/share/sf"
Then re-run sf plugins link . from the plugin directory, or re-run the bootstrap script.
What to do if the plugin is missing
- run the bootstrap script
- re-open your shell if
sfplugin discovery is stale - verify with
sf data360 man - only then start live Data Cloud work
Setup guidance reminder
The runtime can help you detect missing capability, but it cannot fully replace Setup for:
- initial Data Cloud provisioning / tenant creation
- license assignment
- every org-wide feature enablement step
When a module is gated, guide users toward the right setup area instead of promising a fully programmatic enablement flow. See feature-readiness.md.
Scope reminder
This setup is for the Data Cloud product family:
data360-orchestratedata360-connectdata360-preparedata360-harmonizedata360-segmentdata360-activatedata360-query
For STDM/session tracing/parquet work, use agentforce-observe instead of this plugin-focused family.