hex_api_key (hex_core v0.8.4) View Source

Hex HTTP API - Keys.

Link to this section Summary

Functions

Adds a new API or repository key.

Deletes an API or repository key.

Deletes all API and repository keys associated with the account.

Gets an API or repository key by name.

Lists the user's or organization's API and repository keys.

Link to this section Types

Specs

permission() :: #{binary() => binary()}.

Link to this section Functions

Link to this function

add(Config, Name, Permissions)

View Source

Specs

add(hex_core:config(), binary(), [permission()]) -> hex_api:response().

Adds a new API or repository key.

A permission is a map of #{<<"domain">> => Domain, <<"resource"> => Resource}.

Valid Domain values: <<"api">> | <<"repository">> | <<"repositories">>.

Valid Resource values: <<"read">> | <<"write">>.

Examples:

  > hex_api_key:add(hex_core:default_config(), <<"test">>, [...]).
  {ok, {200, ..., #{
      <<"authing_key">> => true,
      <<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
      <<"last_use">> =>
          #{<<"ip">> => <<"1.2.3.4">>,
            <<"used_at">> => <<"2019-02-27T14:38:54Z">>,
            <<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
      <<"name">> => <<"hex_core">>,
      <<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
      <<"revoked_at">> => nil,
      <<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
      <<"url">> => <<"https://hex.pm/api/keys/test">>},
      }}}

Specs

delete(hex_core:config(), binary()) -> hex_api:response().

Deletes an API or repository key.

Examples:

  > hex_api_key:delete(hex_core:default_config(), <<"test">>).
  {ok, {200, ..., #{
      <<"authing_key">> => true,
      <<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
      <<"last_use">> =>
          #{<<"ip">> => <<"1.2.3.4">>,
            <<"used_at">> => <<"2019-02-27T14:38:54Z">>,
            <<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
      <<"name">> => <<"hex_core">>,
      <<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
      <<"revoked_at">> => nil,
      <<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
      <<"url">> => <<"https://hex.pm/api/keys/test">>},
      }}}

Specs

delete_all(hex_core:config()) -> hex_api:response().

Deletes all API and repository keys associated with the account.

Examples:

  > hex_api_key:delete_all(hex_core:default_config()).
  {ok, {200, ..., [#{
      <<"authing_key">> => true,
      <<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
      <<"last_use">> =>
          #{<<"ip">> => <<"1.2.3.4">>,
            <<"used_at">> => <<"2019-02-27T14:38:54Z">>,
            <<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
      <<"name">> => <<"hex_core">>,
      <<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
      <<"revoked_at">> => nil,
      <<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
      <<"url">> => <<"https://hex.pm/api/keys/test">>},
      }]}}

Specs

get(hex_core:config(), binary()) -> hex_api:response().

Gets an API or repository key by name.

Examples:

  > hex_api_key:get(hex_core:default_config(), <<"test">>).
  {ok, {200, ..., #{
      <<"authing_key">> => true,
      <<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
      <<"last_use">> =>
          #{<<"ip">> => <<"1.2.3.4">>,
            <<"used_at">> => <<"2019-02-27T14:38:54Z">>,
            <<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
      <<"name">> => <<"hex_core">>,
      <<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
      <<"revoked_at">> => nil,
      <<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
      <<"url">> => <<"https://hex.pm/api/keys/test">>},
      }}}

Specs

Lists the user's or organization's API and repository keys.

Examples:

  > hex_api_key:list(hex_core:default_config()).
  {ok, {200, ..., [#{
      <<"authing_key">> => true,
      <<"inserted_at">> => <<"2019-02-27T11:15:32Z">>,
      <<"last_use">> =>
          #{<<"ip">> => <<"1.2.3.4">>,
            <<"used_at">> => <<"2019-02-27T14:38:54Z">>,
            <<"user_agent">> => <<"hex_core/0.5.0 (httpc) (OTP/21) (erts/10.2)">>},
      <<"name">> => <<"hex_core">>,
      <<"permissions">> => [#{<<"domain">> => <<"api">>,<<"resource">> => <<"read">>}],
      <<"revoked_at">> => nil,
      <<"updated_at">> => <<"2019-02-27T14:38:54Z">>,
      <<"url">> => <<"https://hex.pm/api/keys/test">>},
      }]}}