Skip to content

stueccles/okta-elixir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Okta

This library provides an Elixir API for accessing the Okta Developer APIs.

Currently implemented are:

The API access uses the Tesla library and relies on the caller passing in an Okta base URL and an API Key to create a client. The client is then passed into all API calls.

The API returns a 3 element tuple. If the API HTTP status code is less the 300 (ie. suceeded) it returns :ok, the HTTP body as a map and the full Tesla Env if you need to access more data about thre return. if the API HTTP status code is greater than 300. it returns :error, the HTTP body and the Telsa Env. If the API doesn't return at all it should return :error, a blank map and the error from Tesla.

  client = Okta.client("https://dev-000000.okta.com", "thisismykeycreatedinokta")

  profile = %{
    firstName: "test",
    lastName: "user",
  }

  case Okta.Users.create_user(client, profile) do
    {:ok, %{"id" => id, "status" => status}, _env} ->
      update_user(%{okta_id: id, okta_status: status})
    {:error, %{"errorSummary" => errorSummary}, _env} ->
      Logger.error(errorSummary)
  end

Installation

If available in Hex, the package can be installed by adding okta to your list of dependencies in mix.exs:

  def deps do
    [
      {:okta_api, "~> 0.1.14"},
    ]
  end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/okta.