# summary

Consolidate org configuration — products, features, capacity, and namespace composition — into a single view that replaces navigating six Setup pages.

# description

Salesforce spreads org configuration across Company Information, Installed Packages, Org Limits, Feature Settings, License Management, and more. Understanding what an org contains before profiling typically means navigating between these pages to build a mental model. This command consolidates that orientation into a single call that returns in seconds.

**Structured sections, one command:**

- **Identity** — org name, type (Production/Sandbox/Scratch/Developer/Trial), edition, instance URL, namespace
- **Cuneiform** — installation status, package version, and license state
- **Features** — enabled capabilities (Multi-Currency, Person Accounts, Einstein AI, Enhanced Notes, and others)
- **Clouds** — Salesforce products detected by license queries and namespace prefix matching (Financial Services, CPQ, Health Cloud, and others found in the org)
- **Namespaces** — installed packages with object counts and population rates per namespace
- **Processes** — active business processes with record type associations
- **Limits** — current API request quotas, data and file storage consumption, with capacity warnings at 95%
- **Next Steps** — command suggestions tailored to the org's namespace composition and data

James Morrison runs this first in every new org. Sarah Mitchell checks limits before profiling runs. Marcus Thompson uses the dynamic next steps to guide his exploration path.

**When to run this command:**

- Entering a new org for the first time and building a mental model of its product landscape
- Checking API and storage capacity before submitting profiling requests
- Verifying Cuneiform installation and license status in a new sandbox
- Understanding which Salesforce products (Clouds, managed packages) are installed before scoping profiling

NATURAL LANGUAGE → FLAG MAPPING:
"show me everything about this org" → no flags (all sections)
"check my API limits" → --sections limits
"is Cuneiform installed?" → --sections cuneiform
"what Clouds are in this org?" → --sections clouds
"show me all limits grouped" → --sections limits-all
"how much storage is used?" → --sections limits-storage

COMMAND SEQUENCE:
`org details` → `object list` → `user details` → `definition create` → `profile`

This is typically the first command run in any engagement. It precedes `object list` (exploring what objects have data) and `user details` (verifying profiling readiness). Read-only — consolidates existing data from multiple API endpoints into a single view.

# flags.target-org.summary

The Salesforce org to retrieve configuration details from. Specify the org alias or username when you have multiple authenticated orgs.

# flags.api-version.summary

Override the Salesforce API version used for org configuration queries. Use this when troubleshooting version-specific behavior or testing against a specific API release.

# flags.sections.summary

Filter to specific sections instead of displaying the full eight-section report. Valid values: identity, cuneiform, features, clouds, namespaces, processes, limits. For limits granularity: limits-all (groups limits by category) or limits-api, limits-storage, limits-bulk, limits-apex, limits-streaming, limits-email (single category). Omit to display all sections.

# examples

- Engagement kickoff — see the full org picture (edition, products, features, capacity, namespace composition):

  <%= config.bin %> <%= command.id %> --target-org myOrg

- Pre-profiling capacity check — verify API and storage capacity before submitting profiling requests:

  <%= config.bin %> <%= command.id %> --target-org myOrg --sections limits

- Cuneiform readiness — confirm installation and license status in a new sandbox:

  <%= config.bin %> <%= command.id %> --target-org myOrg --sections cuneiform

- Product landscape — see which Salesforce Clouds are installed to scope profiling by product:

  <%= config.bin %> <%= command.id %> --target-org myOrg --sections clouds

- Namespace composition — identify managed packages and their object counts for profiling scope:

  <%= config.bin %> <%= command.id %> --target-org myOrg --sections namespaces

- Storage detail — check data and file storage consumption before a profiling run:

  <%= config.bin %> <%= command.id %> --target-org myOrg --sections limits-storage

- JSON for automation — pipe structured output to assessment pipelines or SOW templates:

  <%= config.bin %> <%= command.id %> --target-org myOrg --json

# info.fetching

Fetching org details...

# errors.identityFailed

Failed to retrieve org identity information.

# warnings.header

Warnings

# output.identity.header

Org Identity

# output.identity.orgId

Org ID

# output.identity.orgName

Org Name

# output.identity.orgType

Org Type

# output.identity.edition

Edition

# output.identity.namespace

Namespace

# output.identity.instanceUrl

Instance URL

# output.identity.username

Username

# output.cuneiform.header

Cuneiform for Salesforce

# output.cuneiform.status

Status

# output.cuneiform.installed

Installed

# output.cuneiform.notInstalled

Not Installed

# output.cuneiform.version

Version

# output.cuneiform.license

License

# output.features.header

Org Features

# output.features.multiCurrency

Multi-Currency

# output.features.enhancedNotes

Enhanced Notes

# output.features.stateCountryPicklists

State/Country Picklists

# output.features.territoryManagement

Territory Management

# output.features.personAccounts

Person Accounts

# output.features.digitalExperiences

Digital Experiences

# output.features.einsteinAI

Einstein AI

# output.clouds.header

Detected Clouds

# output.clouds.none

No Salesforce Clouds detected

# output.clouds.licenseSubheader

Detected Clouds by License

# output.clouds.namespaceSubheader

Detected Clouds by Namespace

# output.namespaces.header

Installed Namespaces (Standard / Custom Objects)

# output.limits.header

API Limits

# output.limits.dailyApiRequests

Daily API Requests

# output.limits.bulkApiRequests

Bulk API Requests

# output.limits.bulkV2QueryJobs

Bulk V2 Query Jobs

# output.limits.asyncApexExecutions

Async Apex Executions

# output.limits.streamingApiEvents

Streaming API Events

# output.cuneiform.licenseStatus

Your Cuneiform license is %s.

# output.cuneiform.licenseContactSupport

Please contact support to reactivate your license at sfsupport@peernova.com.

# output.cuneiform.licenseContactOrgDetails

Include the org identity details from this command in your email.

# output.cuneiform.installGuide

To install Cuneiform for Salesforce, please visit: https://peernova.link/cli/configure

# warnings.storageNearCapacity

Your org is near its data storage limit.

# warnings.storageProfilingImpact

Cuneiform writes profiling results to custom objects in your org.

# warnings.storageProfilingFailure

Profiling may fail if storage capacity is exceeded.

# table.clouds.cloud

cloud

# table.clouds.status

status

# table.clouds.usedLicenses

used licenses

# table.clouds.total

total

# table.cloudsDetail.cloud

cloud

# table.cloudsDetail.version

version

# table.cloudsDetail.namespace

namespace

# table.namespaces.namespace

namespace

# table.namespaces.product

product

# table.namespaces.objects

objects

# table.namespaces.populated

populated

# table.namespaces.empty

empty

# table.limits.limit

limit

# table.limits.used

used

# table.limits.max

max

# table.limits.percent

percent

# output.headerTitle

Org Details

# output.limits.dataStorageWithUnit

Data Storage (MB)

# output.limits.fileStorageWithUnit

File Storage (MB)

# output.unknownFallback

Unknown

# output.processes.header

Business Processes

# table.processes.name

name

# table.processes.object

object

# table.processes.active

active

# table.processes.recordTypes

record types

# output.nextSteps.header

Next steps:

# output.nextSteps.objectListWithRecords

View objects with records

# output.nextSteps.objectListCustom

View custom objects

# output.nextSteps.objectListStandard

View standard objects

# output.nextSteps.objectListNamespace

View %s objects

# output.nextSteps.objectListCustomerFacing

View customer-facing objects with records

# output.nextSteps.objectDescribe

View specific object details

# output.nextSteps.definitionCreate

Create a profiling definition
