• Stars
    star
    472
  • Rank 93,034 (Top 2 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Power of appbase.io via CLI, with nifty imports from your favorite data sources

latest version Go Report Card Travis branch license ABC Docker Publish

abc banner image

ABC

ABC is a command-line tool to interact with appbase.io. It can also serve as a swiss army knife to import data from any popular data source (Postgres, SQL, Mongo) to ElasticSearch. This feature works with minimum configuration and is totally automatic. In certain sources like Postgres and Mongo, you can even keep the database and ElasticSearch cluster in sync such that any change from source gets added in destination as well.

  1. Intro
  2. Key Benefits
  3. Getting Started
  4. Features
    1. Appbase features
    2. Importer features
  5. Development setup
    1. Local Setup
    2. Docker Setup
  6. ABC Resources
    1. Contributing to ABC
    2. Licensing

1. Intro

ABC consists of two parts.

  1. Appbase module
  2. Import module (closed source)

To get the list of all commands supported by ABC, use -

abc --help

2. Key Benefits

ABC comes with a lots of benefits over any other traditional solution to the same problem. Some of the key points are as follows -

  • Whether your data resides in Postgres or a JSON file or MongoDB or in all three places, abc can index the data into Elasticsearch. Besides these, it also supports CSV, MySQL, SQLServer, Kafka and Elasticsearch itself to an Elasticsearch index.
  • It can keep the Elasticsearch index synced in realtime with the data source. (Note: Currently only supported for MongoDB and Postgres)
  • abc import is a single line CLI command that allows doing all of the above. It doesn’t require any external dependencies, takes zero lines of code configuration, and runs as an isolated process with a minimal resource footprint.
  • abc also supports configurable user defined transformations for advanced uses to map data types, columns or transform the data itself before it gets indexed into Elasticsearch.

3. Getting Started

ABC can be downloaded as an executable as well as through a Docker image.

Using Executable

Download abc's executable from releases for your platform and preferrably put it in a PATH directory. The access it as -

> abc

You should see a list of commands that abc supports. Try logging in for example.

Using Docker

To use the Docker image, pull it as

docker pull appbaseio/abc

Then create the volume to store config files across containers.

docker volume create --name abc

Finally you should be able to use abc

docker run -i --rm -v abc:/root appbaseio/abc

This command may look too long to you. We can create an alias to make things better.

# create alias
alias abc='docker run -i --rm -v abc:/root appbaseio/abc'
# run a command
abc login google

4. Features

ABC's features can be broadly categorized into 2 components.

  1. Appbase features
  2. Importer features

4.1 Appbase features

Appbase features allows you to control your appbase.io account using ABC. You can see them under the Appbase heading in the list of commands.

COMMANDS
  login     login into appbase.io
  user      get user details
  apps      display user apps
  app       display app details
  create    create app
  delete    delete app
  logout    logout session
  import    import data from various sources into appbase app

You can look over help for each of these commands using the --help switch. Alternatively we have detailed docs for them at docs/appbase folder.

abc login --help

Example

# display all commands
abc
# login into system
abc login google
# get user details
abc user
# get list of apps
abc apps
# get details of an app
abc app MyAppName
# delete that app
abc delete MyAppName
# create it again
abc create MyAppName
# view its metrics. It will be 0 as it is a new app
# here we are using AppID. We can use AppName too.
abc app -m 2489

4.2 Importer features

ABC allows the user to configure a number of data adaptors as sources or sinks. These can be databases, files or other resources. Data is read from the sources, converted into a message format, and then send down to the sink where the message is converted into a writable format for its destination. The user can also create data transformations in JavaScript which can sit between the source and sink and manipulate or filter the message flow.

Adaptors may be able to track changes as they happen in source data. This "tail" capability allows a ABC to stay running and keep the sinks in sync. For more details on adaptors, see Import docs.

5. Development

ABC can be built locally via the traditional go build or by building a Docker image.

5.1 Local Setup

You can install ABC by building it locally and then moving the executable to anywhere you like.

To build it, you will require Go 1.12 or above installed on your system.

go build ./cmd/abc/...
./abc --help  # voila, you just built abc from source!

5.2 Docker Setup

git clone https://github.com/appbaseio/abc
cd abc
docker build -t abc .
docker volume create --name abc

Volume is used to store abc config files across containers. Now abc can be ran through Docker like in the following example which starts google login.

docker run -i --rm -v abc:/root abc login google

Some more examples

# setting alias for easy usage
alias abc='docker run -i --rm -v abc:/root abc'
# using alias now :)
abc user
abc apps

5.3 Build Variants

The ABC project you see in this repository is not the complete project. Appbase.io works on a proprietary version of ABC using this project as the base.

6. ABC Resources

Checkout the docs folder for details on some ABC commands and topics.

6.1 Contributing to ABC

Want to help out with ABC? Great! There are instructions to get you started here.

6.2 Licensing

ABC is licensed under the Apache 2.0 License. See LICENSE for full license text.

More Repositories

1

dejavu

A Web UI for Elasticsearch and OpenSearch: Import, browse and edit data with rich filters and query views, create reference search UIs.
JavaScript
8,366
star
2

reactivesearch

Search UI components for React and Vue
JavaScript
4,899
star
3

mirage

🎨 GUI for simplifying Elasticsearch Query DSL
TypeScript
2,202
star
4

reactivemaps

A data aware UI components library for building realtime maps
JavaScript
941
star
5

gem

πŸ’Ž GUI for Data Modeling with Elasticsearch
JavaScript
662
star
6

Docbase

Turn .md docs into beautiful sites
JavaScript
592
star
7

reactivesearch-api

API Gateway for Elasticsearch with declarative querying and out-of-the-box access controls
Go
190
star
8

searchbox

Lightweight and performance oriented search box UI component libraries for React, Vue, React Native, JS and Flutter
JavaScript
182
star
9

playground

A storybook playground for ReactiveMaps and ReactiveSearch
JavaScript
47
star
10

appbase-js

appbase.io search client library for JavaScript
JavaScript
41
star
11

Docs

ReactiveSearch Developer Hub
JavaScript
33
star
12

reactivecore

Core architecture of reactive UI libraries
JavaScript
33
star
13

dashboard

ReactiveSearch cloud dashboard
JavaScript
32
star
14

appbase-droid

Elasticsearch and appbase.io library for Android (and Java)
Java
24
star
15

appbase-swift

Swift Library for appbase.io and ElasticSearch
Swift
24
star
16

reactivebase

Data components for building reactive UIs
JavaScript
18
star
17

twitterclone

twitter clone built with appbase.io and AngularJS
JavaScript
16
star
18

designkit

Design kit for appbaseio ecosystem
JavaScript
14
star
19

esc

ESC: ElasticSearch Cookbook, with example recipes πŸ“˜
JavaScript
13
star
20

meetupblast

Find out what great meetups people are going to!
JavaScript
12
star
21

reactive-manual

Docs for ReactiveSearch (and Maps)
JavaScript
12
star
22

vue-reactivesearch

This project has been moved to https://github.com/appbaseio/reactivesearch/
JavaScript
11
star
23

reactivesearch-api-docker

HTML
9
star
24

heartbeat-frontend

Heartbeat: Transform REST API endpoints to streaming APIs
JavaScript
7
star
25

vue-playground

A storybook playground for Vue ReactiveSearch
Vue
7
star
26

batteries

Pluggable modules for mappings, search preview and analytics
JavaScript
7
star
27

go-appbase

An ElasticSearch + appbase.io client library (includes data streaming support) for Go
Go
6
star
28

reactivebase-native

Native data components for building reactive UIs
JavaScript
6
star
29

flutter-searchbox

SearchBox UI component library for flutter
Dart
6
star
30

appbase-redis

A realtime events-based document store
JavaScript
5
star
31

reactivesearch-realm-function

Crate for ReactiveSearch API which creates a Realm function based API gateway
TypeScript
5
star
32

docbase-manual

Manual for docbase
HTML
5
star
33

vue-searchbox

JavaScript
4
star
34

generator-docbase

Docbase generator
JavaScript
4
star
35

react-searchbox

JavaScript
3
star
36

reactive-maps-onboarding

JavaScript
3
star
37

searchbox-js

JavaScript
3
star
38

streaming-transporter

Shell
3
star
39

analytics.js

Universal analytics library for appbase.io / ElasticSearch
JavaScript
3
star
40

pipelines-action

GitHub Action to let users create pipelines from a repository directly
JavaScript
3
star
41

grunt-docbase

Grunt plugin to generate html files from your docbase project.
JavaScript
2
star
42

EScompanion

A companion installation app for Autopilot
Go
2
star
43

statuspage

HTML
2
star
44

android-searchbox

Android Search UI widget to build customizable mobile search layouts
Java
2
star
45

appbase.js-deprecate

JavaScript Wrapper for Appbase Rest API
JavaScript
2
star
46

statusp

Python
1
star
47

reactivesearch-shopify-plugin

Shopify Plugin for ReactiveSearch
JavaScript
1
star
48

faceted-search-template

JavaScript
1
star
49

oasis

Oasis
JavaScript
1
star
50

mitter

JavaScript
1
star
51

serverless-search

Dockerfile
1
star
52

appbase-hackathon-deprecate

1
star
53

geo-search-template

JavaScript
1
star
54

flutter-searchbox-typeahead-example

Dart
1
star
55

clients

An experiment in auto-generated REST clients.
1
star
56

pipelines-template

Template repo to get started with ReactiveSearch Pipelines Action
JavaScript
1
star
57

customization-with-reactivesearch

JavaScript
1
star
58

appbaseio-heroku

Dockerfile
1
star
59

reactivesearch-api-k8s

1
star
60

searchbook

Search onboarding
JavaScript
1
star