Skip to content

V0.7.0 Alpha 1: All-in-one CLI

Pre-release
Pre-release
Compare
Choose a tag to compare
@digizeph digizeph released this 30 Jul 16:49
· 132 commits to main since this release
f5a88cb

What's Changed

  • bgpkit-broker cli with crawler + api + search by @digizeph in #22

This release adds the all-in-one command-line application implementation: bgpkit-broker.

This application allows users to quickly spin up a new self-host instance with a single command-line execution.

This pull request also brings about a number of refactoring efforts that helps overall structure of this repository.

bgpkit-broker CLI Tool

bgpkit-broker is a command-line application that packages many functionalities to allow users to self-host a BGPKIT Broker instance with ease.

bgpkit-broker has the following subcommands

A library and command-line to provide indexing and searching functionalities for public BGP data archive files over time.


Usage: bgpkit-broker [OPTIONS] <COMMAND>

Commands:
  serve      Serve the Broker content via RESTful API
  update     Update the Broker database
  config     Print out current configuration
  bootstrap  Bootstrap the Broker database
  backup     Export broker database to parquet file
  search     Search MRT files in Broker db
  help       Print this message or the help of the given subcommand(s)

Options:
      --no-log             disable logging
      --bootstrap-parquet  bootstrap from parquet file instead of DuckDB file
  -h, --help               Print help
  -V, --version            Print version

serve

bgpkit-broker serve is the main command to start the BGPKIT Broker service. It will start a web server that serves the API endpoints. It will also periodically update the local database unless the --no-update flag is set.

Serve the Broker content via RESTful API

Usage: bgpkit-broker serve [OPTIONS]

Options:
  -i, --update-interval <UPDATE_INTERVAL>  update interval in seconds [default: 300]
      --no-log                             disable logging
      --bootstrap-parquet                  bootstrap from parquet file instead of DuckDB file
  -h, --host <HOST>                        host address [default: 0.0.0.0]
  -p, --port <PORT>                        port number [default: 40064]
  -r, --root <ROOT>                        root path, useful for configuring docs UI [default: /]
      --no-updater                         disable updater service
      --no-api                             disable API service
  -h, --help                               Print help
  -V, --version                            Print version

update

bgpkit-broker update triggers a local database update manually. This command cannot be run at the same time as serve because the active API will lock the database file.

Update the Broker database

Usage: bgpkit-broker update [OPTIONS]

Options:
      --no-log             disable logging
      --bootstrap-parquet  bootstrap from parquet file instead of DuckDB file
  -h, --help               Print help
  -V, --version            Print version

search

bgpkit-broker search queries for MRT files using the default production API unless specified otherwise.

Search MRT files in Broker db

Usage: bgpkit-broker search [OPTIONS]

Options:
      --no-log                       disable logging
  -t, --ts-start <TS_START>          Start timestamp
      --bootstrap-parquet            bootstrap from parquet file instead of DuckDB file
  -T, --ts-end <TS_END>              End timestamp
  -p, --project <PROJECT>            filter by route collector projects, i.e. `route-views` or `riperis`
  -c, --collector-id <COLLECTOR_ID>  filter by collector IDs, e.g. 'rrc00', 'route-views2. use comma to separate multiple collectors
  -d, --data-type <DATA_TYPE>        filter by data types, i.e. 'update', 'rib'
      --page <PAGE>                  page number
      --page-size <PAGE_SIZE>        page size
  -u, --url <URL>                    
  -j, --json                         print out search results in JSON format instead of Markdown table
  -h, --help                         Print help
  -V, --version                      Print version

config

bgpkit-broker config displays current configuration, e.g. local database path, update interval, etc.

backup

bgpkit-broker update runs a database backup and export the database to a duckdb file and a parquet file. This can be run while serve is running.

Full Changelog: v0.6.1...v0.7.0-alpha.1