# @toa.io/console

> Toa Console

Latest version **0.24.0-alpha.0** (published 2023-11-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install @toa.io/console
pnpm add @toa.io/console
yarn add @toa.io/console
bun add @toa.io/console
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: no vulnerabilities; high maintenance score.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 0.24.0-alpha.0 |
| Published | 2023-11-16 |
| First published | 2023-03-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 18.0.0 |
| Dependencies | 1 |
| Unpacked size | 2.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Artem Gurtovoi |
| Maintainers | agurtovoi |

## Links

- npm: https://www.npmjs.com/package/@toa.io/console
- Repository: https://github.com/toa-io/toa
- Homepage: https://toa.io
- Issues: https://github.com/toa-io/toa/issues
- npm.io page: https://npm.io/package/@toa.io/console

## Dependencies (1)

- [chalk](https://npm.io/package/chalk.md) 4.1.2

## Recent versions

- 0.24.0-alpha.0 (latest) — 2023-11-16
- 1.0.0-alpha.59 (alpha) — 2024-07-03
- 0.4.0-dev.9 (dev) — 2023-04-10
- 1.0.0-alpha.56 — 2024-06-29
- 1.0.0-alpha.55 — 2024-06-28
- 1.0.0-alpha.54 — 2024-06-27
- 1.0.0-alpha.53 — 2024-06-27
- 1.0.0-alpha.52 — 2024-06-23
- 1.0.0-alpha.51 — 2024-06-20
- 1.0.0-alpha.50 — 2024-06-20
- 1.0.0-alpha.49 — 2024-06-12
- 1.0.0-alpha.48 — 2024-06-11
- 1.0.0-alpha.47 — 2024-06-10
- 1.0.0-alpha.46 — 2024-06-10
- 1.0.0-alpha.45 — 2024-06-10
- … 117 more at https://npm.io/package/@toa.io/console/versions

## README

# Toa

Runtime for low code eventually consistent distributed systems.

## Status

The project is under heavy development, while being used in production by its authors.
Non-scattered documentation is coming some time later.

## Features

### Runtime

- Interservice communications
  - Reliable RPC and Events ([ComQ](https://github.com/toa-io/comq))
  - Flow control
  - Eventual consistency guarantee
  - Uniform interface
    - Input/query segregation
    - [Successful rejections](/documentation/exceptions.md): a refusal is an answer rather
      than a failure
    - [Readonly chains](/documentation/readonly.md): a call that may only read is refused where it
      reaches an operation that may change state, however far down the chain
    - [Distributed exception handling](/documentation/exceptions.md#where-nobody-is-waiting): a
      failure reaches whoever is waiting, or is tried again and then kept
    - [Tasks](/documentation/tasks.md): a call nobody waits for — accepted, kept, and run later
      by whichever process is free to take it
  - [Contracts](/documentation/contracts.md): a component is given what another one provides, at
    the version its deployment names
  - Multi-protocol transmission
    - built-in support for AMQP and HTTP
  - In-memory communications
  - Messages validation
- Persistent state management
  - Concurrency control
  - Data validation
  - Multi-document transactions
  - [Transactional outbox](/documentation/outbox.md): state and its events commit together
  - [Transactional inbox](/documentation/inbox.md): the same call arriving twice changes state once
  - [Convergence](/extensions/convergence): deployments of one context, each with its own
    database, converging on the same entity state
  - Invariants (guards)
  - [Migrations](/documentation/component/declaration.md#migrations): indexes and data changes,
    applied once per database
  - MongoDB
- [Cadence](/extensions/cadence): calls that happen on their own time
  - a _pulse_ calls a component's own operation on a cadence, with no schedule stored anywhere
  - a _delay_ hands one call over to be made later, and answers the id that cancels it
- [Continuity](/extensions/continuity): a task that raised picks up where it failed, rather than
  making again what had already answered
- [Configuration](/extensions/configuration) with secrets
- [API Gateway](/extensions/exposition)
  - [Resource discovery](/extensions/exposition/documentation/discovery.md): every route an
    application serves, at one path, and a page that reads it and calls it
  - [Identity](extensions/exposition/documentation/identity.md)
    - Basis authentication
    - Identity federation (OIDC)
      - `id_token` authentication
      - Authorization code flow
    - Passkeys (WebAuthn)
    - OTP authentication
  - [Access control](extensions/exposition/documentation/access.md)
  - [Cache control](/extensions/exposition/documentation/cache.md)
  - [File uploads](/extensions/exposition/documentation/octets.md), downloads, and processing.
  - [Throttling](/extensions/exposition/documentation/io.md#throttling): a distributed
    [GCRA](https://en.wikipedia.org/wiki/Generic_cell_rate_algorithm), with no per-request I/O
  - [OAuth 2.1 authorization server](/extensions/exposition/documentation/oauth.md): discovery,
    dynamic client registration, PKCE
  - [JSON-RPC](/extensions/exposition/documentation/rpc.md): every method the tree exposes, called
    as a procedure named after its route
  - [Model Context Protocol](/extensions/exposition/documentation/mcp.md): a method is a tool where
    it says so, and a model calls it as any other caller does
- [Atomicity](/connectors/atomicity): what the replicas of a component decide together
  - [Partitioning](/connectors/atomicity/readme.md#partitioning): an exclusive claim on one of a
    fixed number of slots
  - [Distributed lock manager](/connectors/atomicity/readme.md#locking)
  - [Shared rate metering](/connectors/atomicity/readme.md#metering)
- [Telemetry](/extensions/telemetry)
  - [Structured logs](/documentation/logs.md): to stdout, to an OTLP endpoint, or both
  - Distributed tracing
  - [Metrics](/documentation/metrics.md): unsampled, and what the runtime records by zone
- [Introspection](/extensions/introspection): product topology collection and visualization
  - [Halt](/documentation/halt.md): a deployment stops, holds nothing open, and comes back on its
    own — and is taken down only once the map says nothing was running
- [Realtime streams](/extensions/exposition/documentation/realtime.md)
- [BLOB storage](/extensions/storages)
  - MIME type detection and validation
  - Providers: file system, Amazon S3, Cloudinary
- [Transient state](/extensions/stash)
- Built-in [Fetch](/extensions/fetch) with retries and telemetry

### Development

- Language interoperability
  - [Node.js](/connectors/bridges.node)
  - [Bash](/connectors/bridges.bash) :)
- Service prototyping (inheritance)
  - Generic prototype
- Data and operations schemas
- Declarative API Gateway endpoints with authorization policies
- [Integration tests SDK](/userland/stage)
- [Runtime bootloader API](/userland/stage)
- Development environment configuration
- [CLI](/runtime/cli)
  - `toa mono` — composition and extension services in one process
- Extensibility:
  - Persistent storages
  - Communication protocols
  - Runtime core abstractions
  - Arbitrary services

### Operations

- Standardized containerization
- [Compositions](/documentation/compositions.md): the components, and the extension services,
  deployed as one pod
- Resource management
- Environment variables
- Standalone infrastructure configuration
- One-command fully automated deployment
  - Preset multi-arch docker images
  - Helm deployment to kubernetes
  - Single-image (`toa deploy --mono`) deployment
- CLI utilities
  - Secrets management
  - Remote container shell

---
_Source: https://npm.io/package/@toa.io/console · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
