hex_core entrypoint module.
hex_core entrypoint module.
Most functions in the hex_core API takes a configuration. The configuration sets things
like HTTP client to use, and API and repository URL. Some of these configuration options
will likely be static for your application and some may change depending on the function
you call.
* api_key - Authentication key used when accessing the HTTP API.
* api_otp - TOTP (Time-based One-Time Password) code for two-factor authentication.
When using OAuth tokens, write operations require 2FA if the user has it enabled.
If required, the server returns one of:
- {error, otp_required} - Retry the request with a 6-digit TOTP code in this option
- {error, invalid_totp} - The provided TOTP code was incorrect, retry with correct code
- {ok, {403, _, #{<<"message">> => <<"Two-factor authentication must be enabled for API write access">>}}} - User must enable 2FA first
- {ok, {429, _, _}} - Too many failed TOTP attempts, rate limited
API keys do not require TOTP validation.
* api_organization - Name of the organization endpoint in the API, this should
for example be set when accessing key for a specific organization.
* api_repository - Name of the repository endpoint in the API, this should
for example be set when accessing packages from a specific repository.
* api_url - URL to the HTTP API (default: https://hex.pm/api).
* http_adapter - A tuple of a callback module and its configuration used
for HTTP requests (default: {r3_hex_http_httpc, #{profile => default}}). See
r3_hex_http and r3_hex_http_httpc for more information.
* http_etag - Sets the if-none-match HTTP header with the given value to do a
conditional HTTP request.
* http_user_agent_fragment - Will be appended to the user-agent HTTP header (default: <<"(httpc)">>).
* repo_key - Authentication key used when accessing the repository.
* repo_name - Name of the repository, used for verifying the repository signature
authenticity (default: hexpm).
* repo_public_key - Public key used to verify the repository signature
(defaults to hexpm public key https://hex.pm/docs/public_keys).
* repo_url - URL to the repository (default: https://repo.hex.pm).
* repo_organization - Name of the organization repository, appends /repos/:name
to the repository URL and overrides the repo_name option.
* repo_verify - If true will verify the repository signature (default: true).
* repo_verify_origin - If true will verify the repository signature origin,
requires protobuf messages as of hex_core v0.4.0 (default: true).
* send_100_continue - If true will send Expect: 100-continue header for
publish operations. This allows the server to validate authentication and
authorization before the client sends the request body (default: true).
* tarball_max_size - Maximum size of package tarball, defaults to
16_777_216 (16 MiB). Set to infinity to not enforce the limit.
* tarball_max_uncompressed_size - Maximum size of uncompressed package tarball, defaults to
134_217_728 (128 MiB). Set to infinity to not enforce the limit.
* docs_tarball_max_size - Maximum size of docs tarball, defaults to
16_777_216 (16 MiB). Set to infinity to not enforce the limit.
docs_tarball_max_uncompressed_size - Maximum size of uncompressed docs tarball, defaults to
134_217_728 (128 MiB). Set to infinity to not enforce the limit.
config() = #{api_key => binary() | undefined, api_otp => binary() | undefined, api_organization => binary() | undefined, api_repository => binary() | undefined, api_url => binary(), http_adapter => {module(), map()}, http_etag => binary() | undefined, http_headers => map(), http_user_agent_fragment => binary(), repo_key => binary() | undefined, repo_name => binary(), repo_public_key => binary(), repo_url => binary(), repo_organization => binary() | undefined, repo_verify => boolean(), repo_verify_origin => boolean(), send_100_continue => boolean(), tarball_max_size => pos_integer() | infinity, tarball_max_uncompressed_size => pos_integer() | infinity, docs_tarball_max_size => pos_integer() | infinity, docs_tarball_max_uncompressed_size => pos_integer() | infinity}
| default_config/0 |
default_config() -> config()
Generated by EDoc