defmodule Xandra.Authenticator do @moduledoc """ A behaviour module for implementing a Cassandra authenticator. ## Examples defmodule MyAuthenticator do @behaviour Xandra.Authenticator def response_body(options) do ["user:", Keyword.fetch!(options, :user), "_password:", Keyword.fetch!(options, :password)] end end To use the authenticator defined above: Xandra.start_link(authentication: {MyAuthenticator, user: "foo", password: "bar"}) Xandra supports Cassandra's PasswordAuthenticator by default, see `Xandra.Authenticator.Password` for more information. """ @doc """ Returns an iodata that's used as the response body to Cassandra's auth challenge. """ @callback response_body(options :: keyword) :: iodata end