{"_id":"@anushdsouza/sf-plugin-data360","_rev":"2-ec8be5a6f1d06def98e5b5b2fb3b7e08","name":"@anushdsouza/sf-plugin-data360","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@anushdsouza/sf-plugin-data360","version":"0.1.1","keywords":["salesforce","salesforce-cli","sf-plugin","data-360","data-cloud","cdp","query","ingestion","oclif"],"author":{"name":"Anush D'Souza"},"license":"MIT","_id":"@anushdsouza/sf-plugin-data360@0.1.1","maintainers":[{"name":"anushdsouza","email":"anush11395@gmail.com"}],"homepage":"https://github.com/dsouza-anush/sf-plugin-data360#readme","bugs":{"url":"https://github.com/dsouza-anush/sf-plugin-data360/issues"},"bin":{"sf-plugin-data360":"bin/run.js"},"dist":{"shasum":"9d09ed1d466ebbe830f95af6477cfbc9f431fceb","tarball":"https://registry.npmjs.org/@anushdsouza/sf-plugin-data360/-/sf-plugin-data360-0.1.1.tgz","fileCount":1134,"integrity":"sha512-G7zDOCokWpFSytofESYpUDVGh8W5+7s0d1WYCqTBfBrUabAZbt/Ybupj9TTeHsom+l4S+FU95uDQdvExo49epQ==","signatures":[{"sig":"MEQCIEmJCxl2AWBwgRYOy9yhRceAqt2PLdWJomA53p0conSnAiA7BkXhQNY18pQQ6AflLZb96zHYCSJzpb2GjiSMmXJsVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3042138},"type":"module","_from":"file:anushdsouza-sf-plugin-data360-0.1.1.tgz","oclif":{"bin":"sf","hooks":{"sf-doctor-sf-plugin-data360":"./lib/hooks/sf-doctor-data360"},"topics":{"data360":{"subtopics":{"api":{"description":"Send authenticated Data 360 API requests."},"dlo":{"description":"Manage Data 360 Data Lake Objects."},"dmo":{"subtopics":{"relationship":{"description":"Manage Data Model Object relationships."}},"description":"Manage Data 360 Data Model Objects."},"docai":{"subtopics":{"config":{"description":"Inspect Document AI configurations."}},"description":"Inspect Document AI capabilities."},"query":{"description":"Run and manage Data 360 SQL queries."},"setup":{"description":"Configure org prerequisites for Data 360 CLI operations."},"token":{"description":"Manage Data 360 Direct API tokens."},"ingest":{"description":"Stream and bulk ingest data into Data 360."},"mapping":{"description":"Manage Data Lake Object to Data Model Object mappings."},"profile":{"description":"Read Data 360 profiles and universal IDs."},"segment":{"description":"Manage, publish, and deactivate Data 360 segments."},"data-kit":{"subtopics":{"component":{"description":"Inspect Data 360 data kit component dependencies and deployment status."}},"description":"Manage and deploy Data 360 data kits."},"metadata":{"description":"Inspect Data 360 metadata."},"semantic":{"subtopics":{"model":{"description":"Inspect semantic models."}},"description":"Inspect Data 360 semantic resources."},"connector":{"description":"Inspect Data 360 connector types."},"retriever":{"subtopics":{"configuration":{"description":"Inspect retriever configurations."}},"description":"Inspect Data 360 retrievers."},"transform":{"subtopics":{"schedule":{"description":"Manage transform schedules."}},"description":"Manage Data 360 transforms."},"activation":{"description":"Manage Data 360 activations and result data."},"connection":{"description":"Manage Data 360 connections."},"data-graph":{"description":"Manage, refresh, and query Data 360 data graphs."},"data-space":{"subtopics":{"member":{"description":"Manage data-space members."}},"description":"Manage Data 360 data spaces."},"data-action":{"description":"Inspect Data 360 data actions."},"data-stream":{"description":"Manage Data 360 data streams."},"search-index":{"description":"Manage and describe Data 360 search indexes."},"activation-target":{"description":"Manage Data 360 activation targets."},"calculated-insight":{"description":"Manage, run, and query Data 360 calculated insights."},"data-action-target":{"description":"Inspect Data 360 data action targets."},"identity-resolution":{"description":"Manage and run Data 360 identity resolution rulesets."}},"description":"Commands for Salesforce Data 360."}},"commands":"./lib/commands","configMeta":"./lib/configMeta","topicSeparator":" ","flexibleTaxonomy":true},"engines":{"node":"^22.19.0 || ^24.0.0"},"exports":"./lib/index.js","scripts":{"lint":"eslint src test testbed","test":"yarn test:compile && mocha --config .mocharc.json","build":"yarn compile && yarn schemas:generate && yarn snapshot:generate && yarn manifest:generate && yarn docs:commands:generate && yarn criteria:generate && yarn verification:generate && yarn format:generated","clean":"node scripts/clean.mjs","format":"prettier --write \"{src,test}/**/*.ts\" \"{scripts,messages}/**/*.{js,mjs,json,md}\" \"testbed/{bin,lib}/**/*.mjs\" \"testbed/{schema,suites}/**/*.json\" \"testbed/*.md\" \"docs/**/*.md\" \"examples/**/*.{md,json}\" \".github/**/*.{md,yml,yaml}\" package.json tsconfig.json .mocharc.json .prettierrc.json eslint.config.js \"{README,TESTING,CONTRIBUTING,SECURITY,CHANGELOG,VERIFICATION}.md\" && yarn format:generated","compile":"tsc -p .","prepack":"sf-prepack","test:t1":"yarn test","test:t2":"yarn build && yarn test:compile && yarn test:nuts:mock:subprocess && yarn test:nuts:mock:testbed && yarn test:demo","test:t3":"yarn contract:check","test:t4":"yarn test:nuts:live","test:t5":"node scripts/manual-tty-gate.mjs","test:t6":"yarn test:security","test:t7":"yarn build && yarn test:perf","testbed":"node testbed/bin/testbed.mjs","postpack":"sf-clean --ignore-signing-artifacts && node scripts/normalize-manifest.mjs","test:demo":"yarn test:compile && node scripts/demo-e2e.mjs","test:eval":"node scripts/evaluate-release-criteria.mjs","test:perf":"node scripts/perf-smoke.mjs","help:smoke":"node scripts/help-smoke.mjs","mock:start":"tsx test/mock/server.ts","verify:all":"node scripts/verify-all.mjs","live:ledger":"node scripts/build-live-completion-ledger.mjs","live:verify":"node scripts/live-verify-all.mjs","format:check":"prettier --check \"{src,test}/**/*.ts\" \"{scripts,messages,schemas}/**/*.{js,mjs,json,md}\" \"testbed/{bin,lib}/**/*.mjs\" \"testbed/{schema,suites}/**/*.json\" \"testbed/*.md\" \"docs/**/*.md\" \"examples/**/*.{md,json}\" \".github/**/*.{md,yml,yaml}\" package.json tsconfig.json .mocharc.json .prettierrc.json eslint.config.js \"{README,TESTING,CONTRIBUTING,SECURITY,CHANGELOG,VERIFICATION}.md\"","public:check":"node scripts/public-source-check.mjs","secrets:scan":"node scripts/release-secret-scan.mjs","test:compile":"tsc -p test","test:package":"node scripts/package-smoke.mjs","test:prepush":"node scripts/pre-push.mjs","fixtures:scan":"node scripts/scan-live-fixtures.mjs","hooks:install":"node scripts/install-git-hooks.mjs","prehelp:smoke":"yarn clean && yarn compile && yarn manifest:generate","release:check":"node scripts/pre-push.mjs","schemas:check":"node scripts/check-schemas.mjs","test:contract":"mocha --config .mocharc.json test/contract.test.ts","test:coverage":"c8 --all --include='src/**/*.ts' --exclude='src/commands/**/*.ts' --exclude='src/hooks/**/*.ts' --exclude='src/**/types.ts' --exclude='src/index.ts' --reporter=text --check-coverage --lines 85 --branches 85 --functions 85 --statements 85 mocha --config .mocharc.json","test:security":"node --loader ts-node/esm node_modules/mocha/bin/mocha.js --no-config --timeout 10000 test/p2.test.ts test/tokenCache.production.test.ts","contract:check":"yarn public:check && yarn secrets:scan && yarn fixtures:scan && yarn schemas:check && yarn artifacts:check && yarn criteria:check && yarn verify:all","criteria:check":"node scripts/generate-command-criteria.mjs --check","test:nuts:live":"scripts/smoke-p1.sh \"${D360_LIVE_ORG:?set D360_LIVE_ORG}\"","test:nuts:mock":"yarn test","verify:command":"node scripts/verify-command.mjs","artifacts:check":"node scripts/generate-schemas.mjs --check && node scripts/generate-command-snapshot.mjs --check && node scripts/check-manifest.mjs && yarn docs:commands:check && node scripts/verification-md.mjs --check","audit:production":"npm audit --omit=dev --audit-level=high","format:generated":"prettier --write \"schemas/**/*.json\" command-snapshot.json oclif.manifest.json docs/COMMAND_REFERENCE.md VERIFICATION.md","schemas:generate":"node scripts/generate-schemas.mjs","criteria:generate":"node scripts/generate-command-criteria.mjs","fixtures:minimize":"node scripts/minimize-live-fixtures.mjs","manifest:generate":"oclif manifest . && node scripts/normalize-manifest.mjs","precontract:check":"yarn compile","release:tag:check":"node scripts/verify-release-tag.mjs","snapshot:generate":"node scripts/generate-command-snapshot.mjs","test:ingest:large":"D360_LARGE_FILE_TEST=1 mocha --config .mocharc.json test/ingest.large.test.ts","test:nuts:live:p2":"scripts/smoke-p2.sh","test:nuts:live:p3":"scripts/smoke-p3.sh","test:nuts:live:p4":"scripts/smoke-p4.sh","test:nuts:live:p5":"scripts/smoke-p5.sh","test:nuts:live:p6":"scripts/smoke-p6.sh","docs:commands:check":"node scripts/generate-command-reference.mjs --check","api:operations:audit":"node scripts/audit-openapi-operations.mjs","public:check:history":"node scripts/public-source-check.mjs --history HEAD","verification:generate":"node scripts/verification-md.mjs","docs:commands:generate":"node scripts/generate-command-reference.mjs","test:nuts:mock:testbed":"node scripts/testbed-smoke.mjs","test:nuts:live:readonly":"scripts/smoke-readonly.sh","test:nuts:mock:subprocess":"node --loader ts-node/esm node_modules/mocha/bin/mocha.js --no-config --timeout 30000 test/subprocess.nut.ts"},"_npmUser":{"name":"anushdsouza","email":"anush11395@gmail.com"},"_resolved":"/private/tmp/data360-npm-release.HFaj0G/anushdsouza-sf-plugin-data360-0.1.1.tgz","overrides":{"ajv":{"fast-uri":"3.1.5"},"@oclif/core":{"ejs":"6.0.1","minimatch":{"brace-expansion":"5.0.9"}},"@salesforce/core":{"@jsforce/jsforce-node":{"undici":"8.10.0"}}},"_integrity":"sha512-G7zDOCokWpFSytofESYpUDVGh8W5+7s0d1WYCqTBfBrUabAZbt/Ybupj9TTeHsom+l4S+FU95uDQdvExo49epQ==","repository":{"url":"git+https://github.com/dsouza-anush/sf-plugin-data360.git","type":"git"},"_npmVersion":"10.9.8","description":"Data 360 commands for Salesforce CLI","directories":{},"resolutions":{"@oclif/core":"4.13.0","ajv/fast-uri":"3.1.5","@oclif/core/ejs":"6.0.1","@oclif/core/minimatch/brace-expansion":"5.0.9","@salesforce/core/@jsforce/jsforce-node/undici":"8.10.0"},"_nodeVersion":"22.23.1","dependencies":{"open":"^11.0.0","undici":"^6.28.0","@oclif/core":"^4.13.0","@salesforce/kit":"^3.2.6","@salesforce/core":"^8.32.2","@oclif/multi-stage-output":"^0.8.44","@salesforce/sf-plugins-core":"^12.2.28"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":true,"packageManager":"yarn@1.22.22","devDependencies":{"c8":"^11.0.0","ajv":"^8.20.0","nyc":"^18.0.0","tsx":"^4.23.0","chai":"^6.2.2","nock":"^14.0.16","mocha":"^11.7.6","oclif":"^4.23.27","eslint":"^8.57.1","fastify":"^5.10.0","ts-node":"^10.9.2","prettier":"^3.9.5","@eslint/js":"^8.57.1","typescript":">=5.5.4 <6","@types/chai":"^5.2.3","@types/node":"^24.0.0","ajv-formats":"^3.0.1","@types/mocha":"^10.0.10","typescript-eslint":"^7.18.0","@salesforce/ts-sinon":"^1.4.36","@salesforce/dev-scripts":"^11.0.4","@salesforce/plugin-info":"^3.4.147","eslint-plugin-sf-plugin":"^1.20.33","@oclif/plugin-command-snapshot":"^5.3.30","@salesforce/cli-plugins-testkit":"^5.3.62"},"_npmOperationalInternal":{"tmp":"tmp/sf-plugin-data360_0.1.1_1786090692027_0.4386487328687916","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@anushdsouza/sf-plugin-data360","version":"0.1.2","description":"Data 360 commands for Salesforce CLI","keywords":["salesforce","salesforce-cli","sf-plugin","data-360","data-cloud","cdp","query","ingestion","oclif"],"license":"MIT","author":{"name":"Anush D'Souza"},"repository":{"type":"git","url":"git+https://github.com/dsouza-anush/sf-plugin-data360.git"},"homepage":"https://github.com/dsouza-anush/sf-plugin-data360#readme","bugs":{"url":"https://github.com/dsouza-anush/sf-plugin-data360/issues"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"packageManager":"yarn@1.22.22","type":"module","engines":{"node":"^22.19.0 || ^24.0.0"},"resolutions":{"@oclif/core":"4.13.0","@oclif/core/ejs":"6.0.1","@oclif/core/minimatch/brace-expansion":"5.0.9","@salesforce/core/@jsforce/jsforce-node/undici":"8.10.0","ajv/fast-uri":"3.1.5"},"overrides":{"@oclif/core":{"ejs":"6.0.1","minimatch":{"brace-expansion":"5.0.9"}},"@salesforce/core":{"@jsforce/jsforce-node":{"undici":"8.10.0"}},"ajv":{"fast-uri":"3.1.5"}},"bin":{"sf-plugin-data360":"bin/run.js"},"exports":"./lib/index.js","oclif":{"bin":"sf","commands":"./lib/commands","configMeta":"./lib/configMeta","topicSeparator":" ","flexibleTaxonomy":true,"hooks":{"sf-doctor-sf-plugin-data360":"./lib/hooks/sf-doctor-data360"},"topics":{"data360":{"description":"Commands for Salesforce Data 360.","subtopics":{"query":{"description":"Run and manage Data 360 SQL queries."},"metadata":{"description":"Inspect Data 360 metadata."},"api":{"description":"Send authenticated Data 360 API requests."},"token":{"description":"Manage Data 360 Direct API tokens."},"ingest":{"description":"Stream and bulk ingest data into Data 360."},"connection":{"description":"Manage Data 360 connections."},"connector":{"description":"Inspect Data 360 connector types."},"dlo":{"description":"Manage Data 360 Data Lake Objects."},"dmo":{"description":"Manage Data 360 Data Model Objects.","subtopics":{"relationship":{"description":"Manage Data Model Object relationships."}}},"mapping":{"description":"Manage Data Lake Object to Data Model Object mappings."},"data-stream":{"description":"Manage Data 360 data streams."},"transform":{"description":"Manage Data 360 transforms.","subtopics":{"schedule":{"description":"Manage transform schedules."}}},"data-space":{"description":"Manage Data 360 data spaces.","subtopics":{"member":{"description":"Manage data-space members."}}},"data-kit":{"description":"Manage and deploy Data 360 data kits.","subtopics":{"component":{"description":"Inspect Data 360 data kit component dependencies and deployment status."}}},"identity-resolution":{"description":"Manage and run Data 360 identity resolution rulesets."},"calculated-insight":{"description":"Manage, run, and query Data 360 calculated insights."},"segment":{"description":"Manage, publish, and deactivate Data 360 segments."},"activation":{"description":"Manage Data 360 activations and result data."},"activation-target":{"description":"Manage Data 360 activation targets."},"search-index":{"description":"Manage and describe Data 360 search indexes."},"data-graph":{"description":"Manage, refresh, and query Data 360 data graphs."},"profile":{"description":"Read Data 360 profiles and universal IDs."},"retriever":{"description":"Inspect Data 360 retrievers.","subtopics":{"configuration":{"description":"Inspect retriever configurations."}}},"docai":{"description":"Inspect Document AI capabilities.","subtopics":{"config":{"description":"Inspect Document AI configurations."}}},"semantic":{"description":"Inspect Data 360 semantic resources.","subtopics":{"model":{"description":"Inspect semantic models."}}},"data-action":{"description":"Inspect Data 360 data actions."},"data-action-target":{"description":"Inspect Data 360 data action targets."},"setup":{"description":"Configure org prerequisites for Data 360 CLI operations."}}}}},"scripts":{"api:operations:audit":"node scripts/audit-openapi-operations.mjs","audit:production":"npm audit --omit=dev --audit-level=high","build":"yarn compile && yarn schemas:generate && yarn snapshot:generate && yarn manifest:generate && yarn docs:commands:generate && yarn criteria:generate && yarn verification:generate && yarn format:generated","clean":"node scripts/clean.mjs","compile":"tsc -p .","precontract:check":"yarn compile","contract:check":"yarn public:check && yarn secrets:scan && yarn fixtures:scan && yarn schemas:check && yarn artifacts:check && yarn criteria:check && yarn verify:all","criteria:check":"node scripts/generate-command-criteria.mjs --check","criteria:generate":"node scripts/generate-command-criteria.mjs","docs:commands:check":"node scripts/generate-command-reference.mjs --check","docs:commands:generate":"node scripts/generate-command-reference.mjs","fixtures:scan":"node scripts/scan-live-fixtures.mjs","fixtures:minimize":"node scripts/minimize-live-fixtures.mjs","format":"prettier --write \"{src,test}/**/*.ts\" \"{scripts,messages}/**/*.{js,mjs,json,md}\" \"testbed/{bin,lib}/**/*.mjs\" \"testbed/{schema,suites}/**/*.json\" \"testbed/*.md\" \"docs/**/*.md\" \"examples/**/*.{md,json}\" \".github/**/*.{md,yml,yaml}\" package.json tsconfig.json .mocharc.json .prettierrc.json eslint.config.js \"{README,TESTING,CONTRIBUTING,SECURITY,CHANGELOG,VERIFICATION}.md\" && yarn format:generated","format:check":"prettier --check \"{src,test}/**/*.ts\" \"{scripts,messages,schemas}/**/*.{js,mjs,json,md}\" \"testbed/{bin,lib}/**/*.mjs\" \"testbed/{schema,suites}/**/*.json\" \"testbed/*.md\" \"docs/**/*.md\" \"examples/**/*.{md,json}\" \".github/**/*.{md,yml,yaml}\" package.json tsconfig.json .mocharc.json .prettierrc.json eslint.config.js \"{README,TESTING,CONTRIBUTING,SECURITY,CHANGELOG,VERIFICATION}.md\"","format:generated":"prettier --write \"schemas/**/*.json\" command-snapshot.json oclif.manifest.json docs/COMMAND_REFERENCE.md VERIFICATION.md","hooks:install":"node scripts/install-git-hooks.mjs","prehelp:smoke":"yarn clean && yarn compile && yarn manifest:generate","public:check":"node scripts/public-source-check.mjs","public:check:history":"node scripts/public-source-check.mjs --history HEAD","release:check":"node scripts/pre-push.mjs","release:tag:check":"node scripts/verify-release-tag.mjs","help:smoke":"node scripts/help-smoke.mjs","lint":"eslint src test testbed","live:ledger":"node scripts/build-live-completion-ledger.mjs","live:verify":"node scripts/live-verify-all.mjs","artifacts:check":"node scripts/generate-schemas.mjs --check && node scripts/generate-command-snapshot.mjs --check && node scripts/check-manifest.mjs && yarn docs:commands:check && node scripts/verification-md.mjs --check","manifest:generate":"oclif manifest . && node scripts/normalize-manifest.mjs","mock:start":"tsx test/mock/server.ts","secrets:scan":"node scripts/release-secret-scan.mjs","schemas:check":"node scripts/check-schemas.mjs","schemas:generate":"node scripts/generate-schemas.mjs","snapshot:generate":"node scripts/generate-command-snapshot.mjs","test":"yarn test:compile && mocha --config .mocharc.json","test:compile":"tsc -p test","test:contract":"mocha --config .mocharc.json test/contract.test.ts","test:demo":"yarn test:compile && node scripts/demo-e2e.mjs","test:eval":"node scripts/evaluate-release-criteria.mjs","test:ingest:large":"D360_LARGE_FILE_TEST=1 mocha --config .mocharc.json test/ingest.large.test.ts","test:nuts:live":"scripts/smoke-p1.sh \"${D360_LIVE_ORG:?set D360_LIVE_ORG}\"","test:nuts:live:p2":"scripts/smoke-p2.sh","test:nuts:live:p3":"scripts/smoke-p3.sh","test:nuts:live:p4":"scripts/smoke-p4.sh","test:nuts:live:p5":"scripts/smoke-p5.sh","test:nuts:live:p6":"scripts/smoke-p6.sh","test:nuts:live:readonly":"scripts/smoke-readonly.sh","test:nuts:mock":"yarn test","test:nuts:mock:subprocess":"node --loader ts-node/esm node_modules/mocha/bin/mocha.js --no-config --timeout 30000 test/subprocess.nut.ts","test:nuts:mock:testbed":"node scripts/testbed-smoke.mjs","test:package":"node scripts/package-smoke.mjs","test:coverage":"c8 --all --include='src/**/*.ts' --exclude='src/commands/**/*.ts' --exclude='src/hooks/**/*.ts' --exclude='src/**/types.ts' --exclude='src/index.ts' --reporter=text --check-coverage --lines 85 --branches 85 --functions 85 --statements 85 mocha --config .mocharc.json","test:perf":"node scripts/perf-smoke.mjs","test:prepush":"node scripts/pre-push.mjs","test:security":"node --loader ts-node/esm node_modules/mocha/bin/mocha.js --no-config --timeout 10000 test/p2.test.ts test/tokenCache.production.test.ts","test:t1":"yarn test","test:t2":"yarn build && yarn test:compile && yarn test:nuts:mock:subprocess && yarn test:nuts:mock:testbed && yarn test:demo","test:t3":"yarn contract:check","test:t4":"yarn test:nuts:live","test:t5":"node scripts/manual-tty-gate.mjs","test:t6":"yarn test:security","test:t7":"yarn build && yarn test:perf","testbed":"node testbed/bin/testbed.mjs","verification:generate":"node scripts/verification-md.mjs","verify:all":"node scripts/verify-all.mjs","verify:command":"node scripts/verify-command.mjs","prepack":"sf-prepack","postpack":"sf-clean --ignore-signing-artifacts && node scripts/normalize-manifest.mjs"},"dependencies":{"@oclif/core":"^4.13.0","@oclif/multi-stage-output":"^0.8.44","@salesforce/core":"^8.32.2","@salesforce/kit":"^3.2.6","@salesforce/sf-plugins-core":"^12.2.28","open":"^11.0.0","undici":"^6.28.0"},"devDependencies":{"@eslint/js":"^8.57.1","@oclif/plugin-command-snapshot":"^5.3.30","@salesforce/cli-plugins-testkit":"^5.3.62","@salesforce/dev-scripts":"^11.0.4","@salesforce/plugin-info":"^3.4.147","@salesforce/ts-sinon":"^1.4.36","@types/chai":"^5.2.3","@types/mocha":"^10.0.10","@types/node":"^24.0.0","ajv":"^8.20.0","ajv-formats":"^3.0.1","c8":"^11.0.0","chai":"^6.2.2","eslint":"^8.57.1","eslint-plugin-sf-plugin":"^1.20.33","fastify":"^5.10.0","mocha":"^11.7.6","nock":"^14.0.16","nyc":"^18.0.0","oclif":"^4.23.27","prettier":"^3.9.5","ts-node":"^10.9.2","tsx":"^4.23.0","typescript":">=5.5.4 <6","typescript-eslint":"^7.18.0"},"_id":"@anushdsouza/sf-plugin-data360@0.1.2","_integrity":"sha512-d/5z79QpanPZkXtIo6Kezg0pB1liaRq4vgBRCdoGizn5Ra8TniPqh/INKlFyM3KK8Ps8N80VX0w6thD0duR5Zw==","_resolved":"/tmp/data360-release-artifact-0.1.2/sf-plugin-data360.tgz","_from":"file:/tmp/data360-release-artifact-0.1.2/sf-plugin-data360.tgz","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-d/5z79QpanPZkXtIo6Kezg0pB1liaRq4vgBRCdoGizn5Ra8TniPqh/INKlFyM3KK8Ps8N80VX0w6thD0duR5Zw==","shasum":"228cfe3b471b32d8ce6bc43289d2506a2a462d68","tarball":"https://registry.npmjs.org/@anushdsouza/sf-plugin-data360/-/sf-plugin-data360-0.1.2.tgz","fileCount":1134,"unpackedSize":3043795,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIETF4T4uGoWKHVBhlbsMUmJtzyPtGlyd+y/JBrVYd4QXAiATu4Yl+T3B/riYl90OWo2HV079g177Zk4t0AfCii9eww=="}]},"_npmUser":{"name":"anushdsouza","email":"anush11395@gmail.com"},"directories":{},"maintainers":[{"name":"anushdsouza","email":"anush11395@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sf-plugin-data360_0.1.2_1786103984087_0.23797402263212897"},"_hasShrinkwrap":true}},"time":{"created":"2026-08-07T08:18:11.849Z","modified":"2026-08-07T11:59:44.416Z","0.1.1":"2026-08-07T08:18:12.212Z","0.1.2":"2026-08-07T11:59:44.242Z"},"bugs":{"url":"https://github.com/dsouza-anush/sf-plugin-data360/issues"},"author":{"name":"Anush D'Souza"},"license":"MIT","homepage":"https://github.com/dsouza-anush/sf-plugin-data360#readme","keywords":["salesforce","salesforce-cli","sf-plugin","data-360","data-cloud","cdp","query","ingestion","oclif"],"repository":{"type":"git","url":"git+https://github.com/dsouza-anush/sf-plugin-data360.git"},"description":"Data 360 commands for Salesforce CLI","maintainers":[{"name":"anushdsouza","email":"anush11395@gmail.com"}],"readme":"# @anushdsouza/sf-plugin-data360\n\nSalesforce Data 360 (Data Cloud) commands for the [Salesforce CLI](https://developer.salesforce.com/tools/salesforcecli). Query, ingest, model, and operate a Data 360 tenant from your terminal or CI instead of clicking through Setup.\n\n```console\n$ sf data360 query --query 'SELECT COUNT(*) FROM \"ssot__Individual__dlm\"' --target-org my-org\n$ sf data360 ingest bulk --source-name connector --object-name runner_profiles --file leads.csv --target-org my-org\n$ sf data360 segment publish --name HighValueRunners --target-org my-org\n```\n\nThe plugin adds 135 `sf data360` commands that behave like the rest of the CLI: same org auth, same `--json` envelope, same help system, plus an interactive SQL REPL for exploratory work.\n\n> **Status: experimental beta.** This is not an official Salesforce product and ships without support or warranty. All 135 commands have unit and mocked HTTP coverage; 102 additionally have successful, scrubbed, command-specific live-org evidence. A command without a live date was not necessarily never attempted: it may have failed or been blocked by org/platform prerequisites, or it may require a disposable billable or destructive fixture that was intentionally not run against shared assets. [VERIFICATION.md](VERIFICATION.md) tracks the exact successful evidence, and [docs/API_COVERAGE.md](docs/API_COVERAGE.md) explains the remaining gaps.\n\n## Requirements\n\n- Node.js 22.19+ (22.x line) or Node.js 24\n- Salesforce CLI (`sf`)\n- An org with Data 360 provisioned\n\n## Installation\n\nInstall the reviewed beta release at an exact version:\n\n```bash\nsf plugins install @anushdsouza/sf-plugin-data360@0.1.2\nsf data360 doctor --target-org my-org\n```\n\nThe npm package becomes available when the matching GitHub release is published. To develop or evaluate the unreleased source instead:\n\n```bash\ngit clone https://github.com/dsouza-anush/sf-plugin-data360.git\ncd sf-plugin-data360\ncorepack enable\nyarn install --frozen-lockfile\nyarn build\nsf plugins link .\n```\n\nVerify the link and your org in one step:\n\n```bash\nsf data360 doctor --target-org my-org\n```\n\nSee [docs/INSTALLATION.md](docs/INSTALLATION.md) for trust prompts, CI installation, updates, uninstalling, and source development.\n\n## Quick start\n\nCheck connectivity, look around, run a query:\n\n```bash\nsf data360 doctor --target-org my-org\nsf data360 metadata list --limit 5 --target-org my-org\nsf data360 query --query 'SELECT * FROM \"ssot__Individual__dlm\" LIMIT 5' --target-org my-org\n```\n\nLong-running queries can run asynchronously and be picked up later — including from a different shell:\n\n```bash\nsf data360 query -q 'SELECT COUNT(*) FROM \"ssot__Individual__dlm\"' --async -o my-org\nsf data360 query resume --use-most-recent\nsf data360 query results --use-most-recent --result-format csv --output-file rows.csv\n```\n\nOr skip the flags entirely: running `sf data360 query` with no `--query` in a terminal opens a REPL with multiline SQL (terminated by `;`), persistent history, and psql-style meta commands (`\\dt`, `\\d`, `\\f`, `\\x`, `\\o`, `\\dataspace`, `\\timing`, `\\i`, `\\last`, `\\q`).\n\nFor a guided first session, start with [docs/GETTING_STARTED.md](docs/GETTING_STARTED.md).\n\n## Commands\n\nEvery command, flag, and example is generated into [docs/COMMAND_REFERENCE.md](docs/COMMAND_REFERENCE.md); `sf data360 --help` shows the same content. The surface by area:\n\n| Area              | Topics                                                                                       | Highlights                                                                                                   |\n| ----------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |\n| Query             | `query`                                                                                      | Query SQL v3, typed parameter bindings, async submit/resume/results/cancel, vector and hybrid builders, REPL |\n| Ingestion         | `ingest`                                                                                     | Streaming JSON/NDJSON and bulk CSV with validate, report, resume, cancel, and delete                         |\n| Data foundation   | `connection`, `connector`, `data-stream`, `dlo`, `dmo`, `mapping`, `transform`, `data-space` | Create and manage the objects a tenant is built from, end to end                                             |\n| Outcomes          | `identity-resolution`, `calculated-insight`, `segment`, `activation`, `activation-target`    | Run rulesets, publish segments, manage activations and their result data                                     |\n| Graphs & profiles | `data-graph`, `profile`, `search-index`                                                      | Refresh and query data graphs, read unified profiles, manage search indexes                                  |\n| AI & agents       | `retriever`, `docai`, `semantic model`, `data-action`, `data-action-target`                  | Read retrievers, Document AI configs, semantic models, and data actions                                      |\n| Data Kit          | `data-kit`                                                                                   | List, inspect, create, update, delete, deploy, and undeploy data kits                                        |\n| Utilities         | `doctor`, `open`, `token`, `api`, `metadata`, `setup`                                        | Diagnostics, open the org UI, token display, raw API escape hatch, org prerequisites                         |\n\n`sf data360 api request` sends raw authenticated requests to Connect or Direct API paths the dedicated commands don't wrap yet. It emits raw response bytes and is the one command that intentionally has no `--json` envelope.\n\n## Authentication\n\nCommands that use the Connect API work with your normal `sf` org auth — no extra setup.\n\nStreaming and bulk ingestion, Direct token commands, and `api request --direct` need an External Client App authorized with the scopes required by the selected Direct API. The typed `query` and `profile` commands use Connect REST API with normal Salesforce CLI org authentication. [docs/EXTERNAL_CLIENT_APP.md](docs/EXTERNAL_CLIENT_APP.md) explains the two authentication paths, admin setup, CI usage, and troubleshooting; `sf data360 doctor` validates both Connect and Direct readiness.\n\nTenant tokens are cached per username in `~/.sf/data360-token-cache.json`, encrypted with the same keychain-backed crypto the CLI uses for org auth, and expired five minutes early. Pass `--no-token-cache` to bypass the cache entirely.\n\n## Configuration\n\n```bash\nsf config set data360-data-space=default\nsf config set data360-credit-notices=true\n```\n\nData-space resolution order: `--data-space` flag, `SF_DATA360_DATA_SPACE`, local config, global config, then `default`.\n\n## Scripting and automation\n\nThe plugin is built to be scripted against:\n\n- Structured commands support `--json` and ship JSON schemas (in `schemas/`) for their results.\n- Errors carry stable `D360_*` codes with suggested next steps; automation should check both the exit code and the JSON status.\n- Exit codes are semantic: `0` success, `1` runtime failure, and `2` usage error; applicable workflows also use `68` for partial record failure, `69` for timeout, and `130` for interruption.\n- Tabular commands support `--result-format human|csv|json` and `--output-file`.\n- Destructive commands that require confirmation prompt in a terminal and require `--no-prompt` in CI.\n\nThe full rules — output streams, error shape, compatibility promises — are in [docs/CLI_CONTRACT.md](docs/CLI_CONTRACT.md).\n\nA note on cost: ingestion (and some downstream operations) consume Data 360 credits. Streaming requests are capped at 200,000 bytes and bulk CSV parts at 150,000,000 bytes, matching the documented API limits.\n\n## Development\n\n```bash\ncorepack enable\nyarn install --frozen-lockfile\nyarn build          # compile + regenerate schemas, snapshot, manifest, docs\n./bin/dev.js data360 --help\nyarn test           # unit + mock-integration suites\nyarn lint\n```\n\n[CONTRIBUTING.md](CONTRIBUTING.md) covers workflow and expectations, [TESTING.md](TESTING.md) explains the test tiers (T1–T7), and [LIVE_TESTING.md](LIVE_TESTING.md) is the runbook for the gated, billable live suites (`D360_LIVE_ORG` + `D360_LIVE_BILLABLE=1`). Release gates live in [docs/RELEASE.md](docs/RELEASE.md); security policy in [SECURITY.md](SECURITY.md).\n\nExample payloads for queries, ingestion, and data kits are under [examples/](examples/README.md).\n\n## Acknowledgements\n\nSelected algorithms and UX ideas — pagination dialects, metadata-ordered result columns, name-resolution suggestions — were adapted from the MIT-licensed [Jaganpro/sf-cli-plugin-data360](https://github.com/Jaganpro/sf-cli-plugin-data360). If you're migrating from that plugin: `query async-create` → `query --async`, `query async-status` → `query resume`, `query async-rows` → `query results`.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}