README.md

# Astra

An elixir plugin for interacting with DataStax Astra or any stargate.io fronted storage!

Currently supports
  - REST API
  - Document API
  - GraphQL
  - Some Schema API funcitons

## Installation

The package can be installed
by adding `astra` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:astra, "~> 0.1.0"}
  ]
end
```

To connect to Astra add something like the following to your `config.exs`.

For username and password authentication:

```elixir
config :astra,
  id: System.get_env("ASTRA_ID"), #this is your astra cluster id
  region: System.get_env("ASTRA_REGION"), #this is the region where your astra cluster is hosted
  username: System.get_env("ASTRA_USERNAME"),
  password: System.get_env("ASTRA_PASSWORD")
```

For static application tokens:

```elixir
config :astra,
  id: System.get_env("ASTRA_ID"), #this is your astra cluster id
  region: System.get_env("ASTRA_REGION"), #this is the region where your astra cluster is hosted
  application_token: System.get_env("ASTRA_APPLICATION_TOKEN") # this is and application security token for your database
```

For non-astra stargate backends replace `id` and `region` in the config with the stargate url, example:

```elixir
config :astra,
  url: https://my.stargate.endpoint/api/,
  username: System.get_env("ASTRA_USERNAME"),
  password: System.get_env("ASTRA_PASSWORD")