# OpenFeed v0.1.0 - Table of Contents

> Client for OpenFeed (Australian CDR banking and energy data). Handles the FAPI 2.0 Security Profile — PAR, PKCE, DPoP — and key management.

## GUIDES

- [Home](readme.md)
- [Changelog](changelog.md)

- Tutorials
  - [Collecting data](collecting-data.md)

- Topics
  - [Grant management](grant-management.md)
  - [Cost and cadence](cost-and-cadence.md)

## Modules

- [OpenFeed](OpenFeed.md): An Elixir client for [OpenFeed](https://openfeed.au) — Australian Consumer
Data Right banking and energy data.

- Configuration
  - [OpenFeed.Config](OpenFeed.Config.md): Everything this library needs to talk to OpenFeed, as an explicit struct.
  - [OpenFeed.ProviderConfiguration](OpenFeed.ProviderConfiguration.md): Supervised worker that fetches and caches OpenFeed's OIDC metadata and JWKS.
  - [OpenFeed.Scopes](OpenFeed.Scopes.md): OpenFeed's OAuth scopes, and shorthand atoms for them.

- Reading payloads
  - [OpenFeed.Amount](OpenFeed.Amount.md): Converting OpenFeed's monetary values to `Decimal`.
  - [OpenFeed.Energy](OpenFeed.Energy.md): Helpers for reading OpenFeed's energy usage payloads.

- Key management
  - [OpenFeed.KeyStore](OpenFeed.KeyStore.md): Where your OpenFeed keypair comes from.
  - [OpenFeed.KeyStore.Env](OpenFeed.KeyStore.Env.md): Reads the private JWK from an environment variable.
  - [OpenFeed.KeyStore.File](OpenFeed.KeyStore.File.md): Reads the private JWK from a JSON file on disk.

- Authorization
  - [OpenFeed.Auth](OpenFeed.Auth.md): OpenFeed's FAPI 2.0 authorization flow, built on `oidcc`.
  - [OpenFeed.Dpop](OpenFeed.Dpop.md): DPoP proof JWTs (RFC 9449) for OpenFeed resource-server requests.
  - [OpenFeed.Tokens](OpenFeed.Tokens.md): The result of a successful token exchange or refresh.

- Sharing API
  - [OpenFeed.Client](OpenFeed.Client.md): HTTP transport for the OpenFeed sharing API.
  - [OpenFeed.Error](OpenFeed.Error.md): A failed OpenFeed API call.
  - [OpenFeed.Sharing](OpenFeed.Sharing.md): The OpenFeed sharing API — one function per endpoint.

- Internals
  - [OpenFeed.ReqHttpAdapter](OpenFeed.ReqHttpAdapter.md): An `:oidcc_http_adapter` backed by Req and Finch.

## Mix Tasks

- [mix openfeed.gen.key](Mix.Tasks.Openfeed.Gen.Key.md): Generate the RSA keypair OpenFeed needs.
- [mix openfeed.jwks](Mix.Tasks.Openfeed.Jwks.md): Print the public half of your OpenFeed key, as a JWKS.

