1.0.0 • Published 2 years ago

@antsa/cli v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
2 years ago

Antsa Command Line Interface

The Antsa CLI (Command Line Interface) is a set of command line tools to quickly deploy Antsa web applications and Antsa bots.

Installation

Add as a dependency:

npm install @antsa/cli

Config file

Create a Antsa config file called antsa.config.json:

{
  "bots": [
    {
      "name": "hello-world",
      "id": "f0465c2e-11d4-4c36-b834-8e86f7472b4b",
      "source": "src/index.ts",
      "dist": "dist/index.js"
    }
  ]
}

The name property is a friendly name you can use to reference the Bot in commands.

The id property refers to the Bot ID in your Antsa project.

The source property is the file path to the original source. When you "save" the Bot, the contents of this file will be saved to the Bot code property. This file can be JavaScript or TypeScript.

The dist property is the optional file path to the compiled source. If omitted, the command falls back to using the source property. When you "deploy" the Bot, the contents of this file will be deployed to the Bot runtime. This file must be JavaScript.

Usage

Syntax:

npx antsa <command> <args>

save-bot

Updates the code value on a Bot resource

Syntax:

npx antsa save-bot <bot name>

Example:

npx antsa save-bot hello-world

deploy-bot

Deploys the Bot code

Syntax:

npx antsa deploy-bot <bot name>

Example:

npx antsa-deploy-bot <bot name>

Authentication

Authentication requires client credentials in environment variables ANTSA_CLIENT_ID and ANTSA_CLIENT_SECRET. This supports most use cases, including secrets from CI/CD. dotenv is enabled, so you can store them in a .env file.

Example

Create a Antsa config file antsa.config.json:

{
  "bots": [
    {
      "name": "hello-world",
      "id": "f0465c2e-11d4-4c36-b834-8e86f7472b4b",
      "source": "src/hello-world.ts",
      "dist": "dist/hello-world.js"
    }
  ]
}

Replace the sample id with your Bot's ID.

Write your bot in src/hello-world.ts. This can be TypeScript. It can reference @antsa/core and node-fetch:

import { AntsaClient } from '@antsa/core';
import { Resource } from '@antsa/fhirtypes';

export async function handler(antsa: AntsaClient, event: BotEvent): Promise<any> {
  console.log('Hello world');
}

You can use the Antsa CLI to save it:

npx antsa save-bot hello-world

Compile with vanilla tsc (no bundler required)

npx tsc

The result will be JavaScript output in dist/hello-world.js:

export async function handler(antsa, input) {
  console.log('Hello world');
}

You can then use the Antsa CLI to deploy it.

npx antsa deploy-bot hello-world

About Antsa

Antsa is a healthcare platform that helps you quickly develop high-quality compliant applications. Antsa includes a FHIR server, React component library, and developer app.

License

Apache 2.0. Copyright © Antsa 2023