Command line tools for QuantCDN.
npm install -g @quantcdn/quant-cli
The CLI can be used in two modes:
Simply run:
quant
This will launch an interactive prompt that guides you through available commands and options.
quant <command> [options]
-
quant init
- Initialize a project in the current directoryquant init [--dir=<build-dir>]
-
quant info
- Show information about current configuration
-
quant deploy [dir]
- Deploy the output of a static generatorquant deploy [dir] [--attachments] [--skip-unpublish] [--skip-unpublish-regex=pattern] [--enable-index-html] [--chunk-size=10] [--force]
-
quant file <file> <location>
- Deploy a single assetquant file path/to/file.jpg /images/file.jpg
-
quant page <file> <location>
- Make a local page asset availablequant page path/to/page.html /about-us [--enable-index-html]
-
quant publish <path>
- Publish an assetquant publish /about-us [--revision=latest]
-
quant unpublish <path>
- Unpublish an assetquant unpublish /about-us
-
quant delete <path>
- Delete a deployed pathquant delete /about-us [--force]
-
quant purge <path>
- Purge the cache for a given URL or cache keysquant purge /about-us # Purge by path quant purge "/*" # Purge all content quant purge --cache-keys="key1 key2" # Purge by cache keys quant purge /about-us --soft-purge # Mark as stale instead of deleting
-
quant redirect <from> <to> [status]
- Create a redirectquant redirect /old-page /new-page [--status=301]
-
quant function <file> <description> [uuid]
- Deploy an edge functionquant function handler.js "My edge function" # Deploy new function quant function handler.js "Updated function" 019361ae-2516-788a-8f50-e803ff561c34 # Update existing
-
quant filter <file> <description> [uuid]
- Deploy an edge filter functionquant filter filter.js "My edge filter" # Deploy new filter quant filter filter.js "Updated filter" 019361ae-2516-788a-8f50-e803ff561c34 # Update existing
-
quant auth <file> <description> [uuid]
- Deploy an edge auth functionquant auth auth.js "My auth function" # Deploy new auth function quant auth auth.js "Updated auth" 019361ae-2516-788a-8f50-e803ff561c34 # Update existing
-
quant search <operation>
- Perform search index operationsquant search status # Show search index status quant search index --path=records.json # Add/update search records quant search unindex --path=/url/to/remove # Remove item from search index quant search clear # Clear entire search index
You may index new content or update existing content in the search index directly. Simply provide one or multiple records in JSON files. For example, consider a search-records.json
file containing the following:
[
{
"title": "This is a record",
"url": "/blog/page",
"summary": "The record is small and neat.",
"content": "Lots of good content here. But not too much!"
},
{
"title": "Fully featured search record",
"url": "/about-us",
"summary": "The record contains all the trimmings.",
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"image": "https://www.example.com/images/about.jpg",
"categories": [ "Blog", "Commerce", "Jamstack" ],
"tags": [ "Tailwind" , "QuantCDN" ],
"author": "John Doe",
"publishDate": "2024-02-22",
"readTime": "5 mins",
"customField": "Any value you need"
}
]
Required fields for each record:
-
title
: The title of the page -
url
: The URL path of the page -
content
: The searchable content
Common optional fields:
-
summary
: A brief description -
image
: URL to an associated image -
categories
: Array of category names -
tags
: Array of tag names
You can include any additional key/value pairs in your records. These custom fields will be indexed and available for filtering, faceting, or display in your search integration.
-
quant scan
- Validate local file checksumsquant scan [--diff-only] [--unpublish-only] [--skip-unpublish-regex=pattern]
-
quant waf:logs
- Access project WAF logsquant waf:logs [--fields=field1,field2] [--output=file.csv] [--all] [--size=10]
These options can be used with any command:
--clientid, -c Project customer id for QuantCDN
--project, -p Project name for QuantCDN
--token, -t Project token for QuantCDN
--endpoint, -e API endpoint for QuantCDN (default: "https://api.quantcdn.io/v1")
The CLI can be configured using either:
- Interactive initialization:
quant init
- Command line arguments (see Global Options)
- Environment variables:
QUANT_CLIENT_ID
QUANT_PROJECT
QUANT_TOKEN
QUANT_ENDPOINT
- Configuration file:
quant.json
in the current directory
Missing configuration will be handled differently depending on the context:
- Running
quant
with no arguments will prompt to initialize a new project - Running specific commands without configuration will show detailed setup instructions
# Initialize a new project
quant init
# Deploy a directory
quant deploy build --attachments
# Upload a single file
quant file ./logo.png /images/logo.png
# Create a redirect
quant redirect /old-page /new-page --status=301
# Purge cache with various options
quant purge "/*" # Purge all content
quant purge --cache-keys="key1 key2" # Purge specific cache keys
quant purge /about --soft-purge # Soft purge a path
# Deploy edge functions
quant function handler.js "My edge function" # Deploy a new function
quant auth auth.js "My auth function" # Deploy an auth function
quant filter filter.js "My edge filter" # Deploy a filter function
# Check deployment status
quant scan --diff-only
npm run lint
npm run test
Issues and feature requests are managed via Github and pull requests are welcomed.