ensign

module
v0.12.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2024 License: BSD-3-Clause

README

Ensign

An eventing platform that is distributed in time and space.

Quick Start

Build the docker compose images:

$ ./containers/local.sh -p backend build

Then once the images are built run the docker containers:

$ ./containers/local.sh -p backend up

User UI

For details on how to view the Ensign user UI locally, read the Beacon app README.

Documentation

The primary Ensign documentation is published in this repo in the docs/ directory as a Hugo site using the hugo-book theme.

The API documentation will be online on pkg.go.dev when we make this repository open source. Until then you can view the API documentation locally using godoc.

Hugo Documentation

First, ensure you have hugo installed by following the hugo installation instructions for your operating system. On OS X the simplest way to do this is with homebrew:

$ brew install hugo

Change directories into the docs/ directory. Note all of the following commands assume that your current working directory is docs/.

To run the local hugo development server:

$ hugo serve -D

You should now be able to view the docs locally at http://localhost:1313. If you get something that looks like this error:

code: template for shortcode "hint" not found

try

$ git submodule update --init --recursive

To create a new documentation page:

$ hugo new path/to/page.md

This will create a new page with the documentation default template; open in a browser and edit in markdown; your changes should reload live in the browser! Our theme has many options and shortcodes; to see how these work, please visit the theme documentation. A couple of important quick links are below:

To help with generating and updating markdown tables, we recommend:

API Documentation

First, ensure you have godoc installed:

$ go install golang.org/x/tools/cmd/godoc@latest

You can then run the API documentation locally using:

$ godoc --http=:6060

The docs should be available shortly when you open your browser to http://localhost:6060/pkg/github.com/rotationalio/ensign/pkg/.

Directories

Path Synopsis
cmd
pkg
ensign
Package ensign implements the Ensign single node server.
Package ensign implements the Ensign single node server.
ensign/info
Implements a go routine that collects topic info periodically outside of the broker.
Implements a go routine that collects topic info periodically outside of the broker.
ensign/mock
Package mock implements an in-memory gRPC mock Ensign server that can be connected to using a bufconn.
Package mock implements an in-memory gRPC mock Ensign server that can be connected to using a bufconn.
ensign/o11y
Package o11y (a numeronym for "observability") exports server-specific metric collectors to Prometheus for monitoring of the service and Ensign nodes.
Package o11y (a numeronym for "observability") exports server-specific metric collectors to Prometheus for monitoring of the service and Ensign nodes.
ensign/store
Ensign maintains two separate storage locations on disk: the event store which is intended to be an append-only fast disk write for incoming events and a meta store which is used to persist operational metadata such as topic and placement information.
Ensign maintains two separate storage locations on disk: the event store which is intended to be an append-only fast disk write for incoming events and a meta store which is used to persist operational metadata such as topic and placement information.
ensign/store/errors
Package errors implements standard database read/write errors for the store package.
Package errors implements standard database read/write errors for the store package.
ensign/topics
Package topics provides some helpers for managing topics in memory.
Package topics provides some helpers for managing topics in memory.
quarterdeck/authtest
Package authtest provides helper functionality for testing authentication with Quarterdeck as simply as possible.
Package authtest provides helper functionality for testing authentication with Quarterdeck as simply as possible.
quarterdeck/db
Package db establishes a connection with a Raft replicated sqlite3 database.
Package db establishes a connection with a Raft replicated sqlite3 database.
quarterdeck/keygen
Package keygen provides functionality for generating API client IDs and secrets.
Package keygen provides functionality for generating API client IDs and secrets.
uptime
Uptime is a small, lightweight service that tracks the status of Rotational services and watches for outages.
Uptime is a small, lightweight service that tracks the status of Rotational services and watches for outages.
uptime/health
Package health implements health check clients to return server system statuses.
Package health implements health check clients to return server system statuses.
uptime/services
Package services provides an Info and Service data structure that is used for two purposes: loading configuration information from disk and storing status information in the database.
Package services provides an Info and Service data structure that is used for two purposes: loading configuration information from disk and storing status information in the database.
utils/keymu
Package keymu provides a map of mutexes that allows users to lock and unlock single keys in the data structure.
Package keymu provides a map of mutexes that allows users to lock and unlock single keys in the data structure.
utils/metrics
metrics tracks request behavior inside tenant (which manages Ensign user accounts, projects, and topics) and quarterdeck (which manages authentication and authorization)
metrics tracks request behavior inside tenant (which manages Ensign user accounts, projects, and topics) and quarterdeck (which manages authentication and authorization)
utils/mtls
Package mtls has helper functionality for organizing and maintaining key material on disk and establishing connections between servers and clients using mTLS cryptography.
Package mtls has helper functionality for organizing and maintaining key material on disk and establishing connections between servers and clients using mTLS cryptography.
utils/probez
Package probez provides a simple http server that implements Kubernetes readiness probes (e.g.
Package probez provides a simple http server that implements Kubernetes readiness probes (e.g.
utils/radish
Package tasks provides functionality for services to run a fixed number of workers to conduct generic asynchronous tasks.
Package tasks provides functionality for services to run a fixed number of workers to conduct generic asynchronous tasks.
utils/service
Package service unifies how our HTTP services run to deduplicate code between different microservices.
Package service unifies how our HTTP services run to deduplicate code between different microservices.
utils/sqlite
Package sqlite implements a connect hook around the sqlite3 driver so that the underlying connection can be fetched from the driver for more advanced operations such as backups.
Package sqlite implements a connect hook around the sqlite3 driver so that the underlying connection can be fetched from the driver for more advanced operations such as backups.
utils/tlstest
This file ported from net/http/internal/testcert/testcert.go
This file ported from net/http/internal/testcert/testcert.go
utils/ulids
Package ulid is a lightweight wrapper around the github.com/oklog/ulid package that provides some common functionality (like checking if a ULID is null or is zero) as well as a process-global, cryptographically random, monotonic, and thread-safe ulid generation mechanism that can be used from external packages.
Package ulid is a lightweight wrapper around the github.com/oklog/ulid package that provides some common functionality (like checking if a ULID is null or is zero) as well as a process-global, cryptographically random, monotonic, and thread-safe ulid generation mechanism that can be used from external packages.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL