Skip to content

API Surface Area Roadmap (Phases 8-14) #17

@rianjs

Description

@rianjs

Overview

This issue tracks the API command implementations for the Salesforce CLI. Phases 1-7 (infrastructure, auth, CI/CD, packaging) are complete. This covers Phases 8-14 for the API surface area.

Decisions:

  • SOAP API: Ignored (not relevant for modern CLI)
  • Composite API: Deferred (placeholder issue for future consideration)

API Priority Matrix

API CLI Suitability Use Case Phase
REST API Excellent Core CRUD, queries, metadata 8
Bulk API 2.0 Excellent Large data import/export 9
Tooling API Excellent Developer tools, Apex, tests 10
Metadata API Good Deploy/retrieve (thin wrapper) 11
GraphQL API Very Good Modern queries, mutations 12
Streaming API Limited Event subscriptions 13
Composite API Deferred Batch operations 14 (placeholder)

Phase Summary

Phase 8: REST API Commands

  • sfdc query - SOQL queries with pagination
  • sfdc record - CRUD operations (get, create, update, delete)
  • sfdc search - SOSL text search
  • sfdc object - List/describe SObjects and fields
  • sfdc limits - Show org API limits

Phase 9: Bulk API 2.0

  • sfdc bulk import - Import CSV/JSON data (insert/update/upsert/delete)
  • sfdc bulk export - Export data via bulk query
  • sfdc bulk job - Job management (list, status, results, errors, abort)

Phase 10: Tooling API

  • sfdc apex - List, get, execute anonymous, run tests
  • sfdc log - List, get, tail debug logs
  • sfdc coverage - Code coverage reports

Phase 11: Metadata API (thin wrapper)

  • sfdc metadata types - List metadata types
  • sfdc metadata list - List components
  • sfdc metadata retrieve - Retrieve metadata
  • sfdc metadata deploy - Deploy metadata

Phase 12: GraphQL API

  • sfdc graphql query - Execute GraphQL queries
  • sfdc graphql mutate - Execute mutations
  • sfdc graphql schema - Schema introspection

Phase 13: Streaming API

  • sfdc events - Listen, list, publish Platform Events
  • sfdc cdc - Change Data Capture subscriptions

Phase 14: Composite API (Placeholder)

Deferred for future consideration after user feedback on Phases 8-13.

Implementation Order

  1. Phase 8 - REST API commands (builds on existing client)
  2. Phase 9 - Bulk API (high value for data operations)
  3. Phase 10 - Tooling API (developer workflows)
  4. Phase 11 - Metadata API (thin wrapper)
  5. Phase 12 - GraphQL API (modern alternative)
  6. Phase 13 - Streaming API (limited CLI value)
  7. Phase 14 - Composite API (deferred)

Linked Issues

Total: ~57 items across 7 phases

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions