The CommonGrants CLI (cg
) is a tool for working with the CommonGrants protocol. It simplifies the process of defining, implementing, and validating CommonGrants APIs.
Note: This package is currently in alpha. The commands described below are mocked implementations that will be replaced with full functionality in future releases.
# Install globally
npm install -g @common-grants/cli
# Or use with npx
npx @common-grants/cli <command>
View available commands and options:
cg --help
Output:
CommonGrants CLI tools
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
init [options] Initialize a new CommonGrants project
preview <specPath> Preview an OpenAPI specification
check Validate APIs and specifications
compile <typespecPath> Compile a TypeSpec file to OpenAPI
help [command] display help for command
Create a new CommonGrants project from a template:
# Initialize interactively
cg init
# List available templates
cg init --list
# Use a specific template
cg init --template custom-api
Compile a TypeSpec file to an OpenAPI specification:
cg compile spec.tsp
This is a thin wrapper around the tsp compile
command and uses your project's tspconfig.yaml
file to determine the output format.
Preview an API specification using Swagger UI:
# Preview a YAML file
cg preview openapi.yaml
# Preview a JSON file
cg preview openapi.json
Validate an API specification against the CommonGrants base protocol:
# Using the base protocol spec installed by @common-grants/cli
cg check spec openapi.yaml
# Using the path to a locally compiled base spec
cg check spec openapi.yaml --base <path-to-base-spec>
This CLI is currently in alpha stage and only supports the following commands:
-
cg init
with a limited set of templates cg compile
cg preview
cg check spec
Subsequent releases will add:
- An expanded set of templates
- Validating an API implementation against its specification
- Generating server and client code
The following examples describe the anticipated features of the CLI, but these are not yet implemented and are subject to change.
Check if an API implementation matches its specification:
# Basic validation
cg check api https://api.example.com spec.yaml
# Generate validation report
cg check api https://api.example.com spec.yaml --report json
# Validate with authentication
cg check api https://api.example.com spec.yaml --auth bearer:token