{"id":17550610,"url":"https://github.com/fjord-framework/cli","last_synced_at":"2025-03-29T07:23:20.833Z","repository":{"id":57253380,"uuid":"399985865","full_name":"fjord-framework/cli","owner":"fjord-framework","description":"Fjord cli tool","archived":false,"fork":false,"pushed_at":"2021-09-01T13:29:38.000Z","size":83,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-07T06:34:35.076Z","etag":null,"topics":["api-proxy","aws","cli","kafka"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fjord-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-25T23:47:10.000Z","updated_at":"2021-11-05T11:21:30.000Z","dependencies_parsed_at":"2022-08-31T22:20:17.554Z","dependency_job_id":null,"html_url":"https://github.com/fjord-framework/cli","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjord-framework%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjord-framework%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjord-framework%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjord-framework%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fjord-framework","download_url":"https://codeload.github.com/fjord-framework/cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246152093,"owners_count":20731724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-proxy","aws","cli","kafka"],"created_at":"2024-10-21T04:05:52.207Z","updated_at":"2025-03-29T07:23:20.814Z","avatar_url":"https://github.com/fjord-framework.png","language":"JavaScript","readme":"![Fjord Logo](https://github.com/fjord-framework/cli/blob/main/readme_materials/fjord.svg?raw=true)\n\n[![fjord](https://img.shields.io/badge/fjord-case%20study-33c5ff.svg?color=3152c8\u0026style=plastic)](https://github.com/fjord-framework/fjord-framework.github.io)\n[![npm](https://img.shields.io/npm/v/fjord_cli.svg?color=3152c8\u0026style=plastic)](https://www.npmjs.com/package/fjord_cli)\n[![Downloads/week](https://img.shields.io/npm/dw/fjord_cli.svg?color=3152c8\u0026style=plastic)](https://npmjs.org/package/fjord_cli)\n[![license](https://img.shields.io/npm/l/nami-serverless.svg?color=3152c8\u0026style=plastic)](https://www.npmjs.com/package/fjord_cli)\n\n# Fjord_cli\n\nFjord is a real-time API proxy for Kafka.\n\nUse the Fjord cli tool to deploy the Fjord framework and manage your AWS infrastructure.\n\nIf you wish to see the Fjord deployment code without the CLI, please see the [deploy repo](https://github.com/fjord-framework/cli). If you wish to interact with the individual components locally, please see the [Fjord Organization](https://github.com/fjord-framework) and navigate to the repo that corresponds with the component you want to see.\n\n\u003c!-- toc --\u003e\n\n- [Usage](#usage)\n- [Getting Started](#getting-started)\n- [FAQ](#faq)\n- [Commands](#commands)\n\u003c!-- tocstop --\u003e\n\n# Usage\n\n\u003c!-- usage --\u003e\n\n```sh-session\n$ npm install -g fjord_cli\n\n$ fjord COMMAND\nrunning command...\n\n```\n\n\u003c!-- usagestop --\u003e\n\n# Getting Started\n\n\u003c!-- gettingstarted --\u003e\n\n### Prerequisites\n\n- [an AWS account](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct\u0026src=default\u0026tag=soumet-20)\n- `npm` is [installed](https://www.npmjs.com/get-npm)\n- the AWS CLI is [installed](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html?tag=soumet-20) and configured\n- the AWS CDK command-line tool is [installed](https://docs.aws.amazon.com/cdk/latest/guide/cli.html?tag=soumet-20)\n\n### Installation\n\n- run `npm install -g fjord_cli` (to install [our npm package](https://www.npmjs.com/package/fjord_cli))\n- type `fjord help` to see the commands available to use\n\n### First Time Usage\n\nThe `fjord` command is run by inputting commands after the initial `fjord` like: `fjord \u003ccommand\u003e \u003coptional argument\u003e`.\n\n- `cd` to the folder in which you would like to setup your Fjord directory\n- run `fjord setup \u003cAPPNAME\u003e`\n- update the FjordSettings.json file with server and consumer groups information\n\n### Deployment\n\nRun `fjord deploy \u003cSTACKNAME\u003e` to deploy a specific stack, or simply `fjord deploy` to deploy the entire stack\n\n### Tear Down\n\nTo tear down Fjord infrastructure from AWS, run `fjord destroy \u003cSTACKNAME\u003e` to tear down a specific stack, or simply `fjord destroy` to tear down the entire stack\n\nTo uninstall / remove the Fjord cli tool, run `npm uninstall -g fjord_cli`.\n\n\u003c!-- gettingstartedstop --\u003e\n\n# FAQ\n\n\u003c!-- faq --\u003e\n\n### I quit the `fjord deploy` command while it was in the middle of deploying infrastructure. Is there a way to tear down my infrastructure?\n\n- To remove this infrastructure (that AWS will continue to set up even if you interrupt the Fjord cli command, visit the [AWS console](https://aws.amazon.com/console?tag=soumet-20), navigate to the CloudFormation section and you can delete the individual stack and then the `fjord-shared` stack. Note that AWS will not allow you to delete `fjord-shared` stack before the other services are deleted because there are dependencies.\n\n### What infrastructure does Fjord spin up on my behalf?\n\n- The main infrastructure we spin are as follows:\n  - an Elasticache / Redis cluster\n  - an ECS cluster managed by the Fargate service for running the server container and consumer groups container\n\n\u003c!-- faqstop --\u003e\n\n# Commands\n\n\u003c!-- commands --\u003e\n\n- [`fjord setup`](#fjord-setup)\n- [`fjord deploy`](#fjord-deploy)\n- [`fjord destroy`](#fjord-destroy)\n- [`fjord endpoints`](#fjord-endpoints)\n- [`fjord help`](#fjord-help)\n\n## `fjord setup`\n\nSets up cdk.json file and creates the FjordSettings.json template for customization.\n\n```json\nUSAGE\n  $ fjord setup \u003coptional: APPNAME\u003e\n\nOPTIONAL ARGUMENT\n  APPNAME  Name for ECS cluster\n\nDESCRIPTION\n  ...\n  You must customize the FjordSettings.json before deploying:\n    (Key and value must be strings)\n\n    name: APPNAME\n\n    server:\n      - NAME: name of API server\n      - JWT_KEY: (automatically generated, optional) JSON web token for a Fjord application\n      - API_TOPICS: space-delimited list of API topics made available to web clients\n      - SEC_PER_PULSE: (default: \"30\") heartbeat pulsed to connected clients to maintain SSE connection\n\n    consumerGroups: (You may have may more than one consumer group within the array)\n      - NAME: name of consumer group\n      - KAFKA_TOPICS: space-delimited list of Kafka topics to subscribe to\n      - API_TOPICS: space-delimited list of API topics. 1+ Kafka topics can map to a API topic; repeat API topic name to align with Kafka topic name\n      - FROM_BEGINNINGS: space-delimited list of boolean values per Kafka topic\n      - BROKERS: space-delimited list of broker addresses\n      - SECURITY: (optional) \"SASL-plain\" | \"none\"\n      - KAFKA_USERNAME: (optional) username for SASL-plain security option\n      - KAFKA_PASSWORD: (optional) password for SASL-plain security option\n      - MEMBERS_COUNT: (default: \"1\")\n      - CONCURRENT_PARTITIONS: (default: \"1\")\n      - STARTING_DELAY_SEC: (default: \"0\")\n```\n\n_See code: [src/commands/setup.js](https://github.com/fjord-framework/cli/blob/main/src/commands/setup.js)_\n\n## `fjord deploy`\n\nDeploys the entire stack to AWS.\n\n```\nUSAGE\n  $ fjord deploy\n\nDESCRIPTION\n  ...\n  Once the entire stack has been deployed, you will find an outputs.json file in the project's directory, containing outputs including the NAT gateway IPs and the load balancer URL.\n```\n\n_See code: [src/commands/deploy.js](https://github.com/fjord-framework/cli/blob/main/src/commands/deploy.js)_\n\n## `fjord destroy`\n\nTears down the entire Fjord infrastrcuture from AWS.\n\n```\nUSAGE\n  $ fjord destroy \u003coptional: STACKNAME\u003e\n\nOPTIONAL ARGUMENT\n  STACKNAME  Name of stack you would like to destroy\n\nDESCRIPTION\n  ...\n  This command takes an optional argument: STACKNAME\n\n  If STACKNAME is supplied, the specified stack will be destroyed\n  If no argument is supplied, the entire stack will be destroyed\n```\n\n_See code: [src/commands/destroy.js](https://github.com/fjord-framework/cli/blob/main/src/commands/destroy.js)_\n\n## `fjord endpoints`\n\nPrints NAT gateway and load balancer addresses to terminal.\n\n```\nUSAGE\n  $ fjord endpoints\n\nDESCRIPTION\n  ...\n  This command prints the following:\n  - NAT Gateway IPs\n    - You must whitelist these IP addresses on your Kafka broker firewall\n  - Load Balancer URL\n    - URL for client side application to receive Fjord stream via SSE\n```\n\n_See code: [src/commands/endpoints.js](https://github.com/fjord-framework/cli/blob/main/src/commands/endpoints.js)_\n\n## `fjord help`\n\nDisplays available Fjord commands\n\n```\nUSAGE\n  $ fjord help\n```\n\n_See code: [src/commands/help.js](https://github.com/fjord-framework/cli/blob/main/src/commands/help.js)_\n\n\u003c!-- commandsstop --\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjord-framework%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffjord-framework%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjord-framework%2Fcli/lists"}