
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
@tinystacks/opsconsole
Advanced tools
Ops Console is an open-source console for cloud operations that delivers a dashboard and workflow engine so developers can organize resources in sensible ways, view key service metadata in one place and automate cloud workflows. With a low-code, widget-ba
Ops Console is an open-source console for cloud operations that delivers a dashboard and workflow engine so developers can organize resources in sensible ways, view key service metadata in one place and automate cloud workflows. With a low-code, widget-based approach, developers can design custom dashboards and workflows and even build their own custom widgets.
With the Ops Console, engineering and DevOps teams can:
✅ Organize cloud resources with a single pane of glass
✅ Build deep operational health dashboards
✅ Share and run operational scripts via the CLI plugin
✅ Manage cloud sprawl and automate resolution for underutilized resources
Visit docs.tinystacks.com for our full set of documentation.
The platform comes with default plugins that offer a variety of features such as widgets for AWS ECS services and deployments, IAM JSON Policy viewers, and an AWS CLI, among others. The widgets are interactive and can exchange information, which enables the creation of dynamic and robust dashboards. With a provider and plugin model, developers can customize and extend the Ops Console as much as they wish. The samples/ folder includes several samples of dashboards that can be configured via YAML.
Our founders spent six years at AWS and witnessed thousands of customer issues that frankly shouldn't exist.
Developers can connect their cloud accounts and organize resources in sensible ways providing immediate cloud comprehensibility. Developers can then build dashboards with common widgets for deployments, environment variables, logs, alarms and even write their own. Teams can share and run operational scripts via the CLI widget embedded directly in the relavent dashboards.
opsconsole deployFollow installation instructions below to get the CLI installed.
# Install CLI
npm i -g @tinystacks/opsconsole;
# Make sure you have Docker installed and ports 3000 and 8000 open.
The opsconsole repository includes multiple sample dashboards. As an example, it includes a sample dashboard that has ECS and AWS account info. To use that, follow these steps:
curl https://raw.githubusercontent.com/tinystacks/opsconsole/main/samples/ecs-dashboard-sample.yml -o ecs-dashboard-sample.yml
# Modify line 6 by changing [your AWS profile] to your local AWS profile name
# Modify lines [22-24] by changing the region, ecs clustername, and ecs service names to match resources in your account
opsconsole up -c ecs-dashboard-sample.yml
For a very basic dashboard that contains all the default layout elements, simply run:
opsconsole init;
opsconsole up;
To use the default installation, you need to have docker installed.
Windows users must have Docker Desktop running.
Also please make sure that ports 8000 and 3000 are open, as those ports are used by the API and frontend. If these ports are reserved, you can pull down the docker images for each of these packages and change the docker run to map ports separately.
# Install from the public npm registry
npm i -g @tinystacks/opsconsole;
# Use the CLI, refer to the usage guide below
opsconsole -v;
Deploy a hosted version of the TinyStacks Ops Console in minutes.
# Routes to signup UI to obtain an auth token
opsconsole signup;
opsconsole configure
# paste your token here
# Ensure you have set an access and secret key for AWS credentials
# deploy your Ops Console to the TinyStacks cloud!
opsconsole deploy -c DASHBOARD-NAME.yaml
That's it! Deployments take a few minutes.
:warning: When deploying a hosted version of the Ops Console, an access/secret key pair must be used. Local credentials are not saved by the Ops Console and will not work in a hosted version of Ops Console.
A console is a top level construct. It includes a name to identify itself, as well as dashboards, widgets, providers and dependencies.
A dashboard is a page that consists of an id, a route and list of widget references.
Widgets are components that have two functions: render and getData. getData is called in the API’s server and is used to make external requests, do computations, etc. Once it is called, it sets some data on the widget itself that’s passed back to the frontend, where render is called to display the widget.
Providers provide data to widgets. They are backend-only code and can interact with the filesystem, keep data around, or do other more traditionally backend tasks. They can be long running and run in the background. They may be passed to widgets to provide sensitive information or long-lived information, whereas widgets are better written as quick request/response styled objects.
Constants are static values that can be shared across dashboards.
Parameters are dynamic values at the dashboard level that can be override with URL parameters.
Basic layout dashboard showcasing different widgets.
curl https://raw.githubusercontent.com/tinystacks/opsconsole/main/samples/layout-sample.yml -o ecs-dashboard-sample.yml
opsconsole up -c ecs-dashboard-sample.yml
Basic AWS dashboard featuring metrics, logs and CLI widgets.
curl https://raw.githubusercontent.com/tinystacks/opsconsole/main/samples/aws-sample.yml -o aws-sample.yml
# Modify line 6 by changing [your AWS profile] to your local AWS profile name
opsconsole up -c aws-sample.yml
Pre-built dashboard for ECS clusters featuring ECS info, tasks, metrics, logs and CLI widgets.
curl https://raw.githubusercontent.com/tinystacks/opsconsole/main/samples/ecs-dashboard-sample.yml -o ecs-dashboard-sample.yml
# Modify line 6 by changing [your AWS profile] to your local AWS profile name
# Modify lines [22-24] by changing the region, ecs clustername, and ecs service names to match resources in your account
opsconsole up -c ecs-dashboard-sample.yml
Pre-built dashboard for SQS queues featuring SQS info, metrics and CLI widgets.
curl https://raw.githubusercontent.com/tinystacks/opsconsole/main/samples/sqs-sample.yml -o sqs-sample.yml
# Modify lines [6-12] by changing the region, queue names and AWS profile to match to your account
opsconsole up -c sqs-sample.yml
| Name | Description |
|---|---|
| Panel | This widget renders multiple internal widgets in a single direction, either vertical or horizontal. |
| Tabs | This widget renders multiple internal widgets in a tab view. Combine with panel or grid to make robust views. |
| Grid | This widget renders multiple internal widgets in a grid. |
| Markdown | This widget renders markdown. |
| CLI | This widget runs a bash command. The command may be multiple commands separated by ';'. You can also reference scripts that exist in the same directory as your config. (currently, only supported locally) |
| Name | Description |
|---|---|
| CloudWatch Logs | Renders a widget containing logs from a CloudWatchLogs log group or log stream. |
| CloudWatch Graph | Renders a widget containing graphs populated by one or many CloudWatch metrics. |
| ECS Info | Renders a widget containing information about an ECS Service. |
| ECS Deployments | Renders a widget containing information about an ECS Service's current deployments. |
Constants are defined at the console level and can be shared across dashboards. To reference a constant, use the name of the constant prefixed with $const.. ex. $const.const1.
Example for defining constants:
Console:
name: console
constants:
const1:
type: string
value: 'text'
const2:
value: true
type: boolean
const3:
value: 123456
type: number
const4:
value: '2022-04-27'
type: date
Parameters are dynamic values at the dashboard level that can be override with URL parameters. To reference a parameter, use the name of the parameter prefixed with $param. ex. $param.text.
Example for defining parameters:
dashboards:
LayoutDashboard:
parameters:
- name: text
default: test 123
- name: num
type: number
default: 42
- name: bool
type: boolean
- name: date
type: date
Currently supports AWS with plans to add others! AWS provider can be configured with local profiles or Access/Secret keys.
providers:
AwsLocalProvider:
id: AwsLocalProvider
type: AwsCredentialsProvider
credentials:
# Option A: local credentials
profileName: default
# Option B: Access/Secret keys (required when deploying with opsconsole deploy)
# AwsAccessKeyId:
# AwsSecretAccessKey:
To enable Provider usage in the CLI widget, the Provider must implement CliEnvironmentProvider.
For reference, see one of the samples in the opsconsole repository.
widgets section of YAMLdependencies section of the YAML in the format widget name: 'dependency package'Providers provide data to widgets. They are backend-only code and can interact with the filesystem, keep data around, and do other more traditionally backend tasks. They are also the best way to provide credentials so that they don't leak through to the client.
providers sectionSee the AWS sample for reference.
Any property in a widget’s YAML can be substituted for either the props or data of another widget.
| Parameter | Required | Syntax | Example |
|---|---|---|---|
| Reference | Yes | $ref: [widget path] | $ref: '#/Console/widgets/EcsInfo' |
| Path | No | path: [path of data or props of the widget] | path: region |
Shows usage and help information
Creates a sample template file for a basic, layout only Ops Console.
Starts the ops console by pulling down the docker images for the ops api (public.ecr.aws/tinystacks/ops-api) and frontend (public.ecr.aws/tinystacks/ops-frontend) and rebuilding them using dependencies included in your yaml file. This may take several minutes depending on your system's available resources. It creates a docker networking bridge called ops-console through which the containers communicate with each other. Specify the ops console you want to use with the -c flag.
Deploys ops console on a TinyStacks hosted solution. Requires a free account and an API key. Specify the ops console you want to use with the -c flag.
Prompts for configuration information including an API token that will be used for deploying your console as a hosted solution. Not necessary for running locally via the "up" command.
Open signup portal to creating/managing account and API tokens. Not necessary for running locally via the "up" command.
List the details of your existing hosted consoles. Requires an account and an API key.
Updates the Ops Console CLI to the latest version
| Flag | Arguments | Description |
|---|---|---|
| -a, --arch | <arch> | Specifies the architecture. Defaults to 'x86'. Options: 'x86', 'arm' |
| -c, --config-file | <config-file> | Specifies a config file. See the samples folder in this repo for sample config files. Looks for config.yml in the current working directory by default. |
| -V, --verbose | Displays additional logs. | |
| -b, --backend-port | <backend-port> | Specifies the port to be exposed by the backend service. Defaults to port 8000. |
| -f, --frontend-port | <frontend-port> | Specifies the port to be exposed by the frontend service. Defaults to port 3000. |
| -h, --help | display help for this command |
To view the API reference for the backend server that backs the Ops Console, see API Reference.
See CONTRIBUTING.md.
FAQs
- [Introduction](#introduction) - [Roadmap](#roadmap) - [Getting Started](#getting-started) - [Quick Installation](#quick-installation) - [Run a Sample Dashboard](#run-a-sample-dashboard) - [AWS](#aws) - [Basic](#basic) - [Installation](#insta
The npm package @tinystacks/opsconsole receives a total of 54 weekly downloads. As such, @tinystacks/opsconsole popularity was classified as not popular.
We found that @tinystacks/opsconsole demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.