@common-grants/cli
Version:
The CommonGrants protocol CLI tool
124 lines (82 loc) • 2.88 kB
Markdown
# CommonGrants CLI
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.
## Installation
```bash
# Install globally
npm install -g @common-grants/cli
# Or use with npx
npx @common-grants/cli <command>
```
## Usage
View available commands and options:
```bash
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
```
### Initialize a Project
Create a new CommonGrants project from a template:
```bash
# Initialize interactively
cg init
# List available templates
cg init --list
# Use a specific template
cg init --template custom-api
```
### Compile TypeSpec to OpenAPI
Compile a TypeSpec file to an OpenAPI specification:
```bash
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 OpenAPI Specification
Preview an API specification using Swagger UI:
```bash
# Preview a YAML file
cg preview openapi.yaml
# Preview a JSON file
cg preview openapi.json
```
### Validate an API Specification
Validate an API specification against the CommonGrants base protocol:
```bash
# 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>
```
## Development status
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
## Anticipated features
The following examples describe the anticipated features of the CLI, but these are not yet implemented and are subject to change.
### Validate API Implementation
Check if an API implementation matches its specification:
```bash
# 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
```