Skip to content

Tags: cometsh/atex

Tags

v0.7.0

Toggle v0.7.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ovyerus Ashlynne Mitchell
# [0.7.0] - 2026-01-07

## Breaking Changes

- `Atex.OAuth.Plug` now raises `Atex.OAuth.Error` exceptions instead of handling
  error situations internally. Applications should implement `Plug.ErrorHandler`
  to catch and gracefully handle them.
- `Atex.OAuth.Plug` now saves only the user's DID in the session instead of the
  entire OAuth session object. Applications must use `Atex.OAuth.SessionStore`
  to manage OAuth sessions.
- `Atex.XRPC.OAuthClient` has been overhauled to use `Atex.OAuth.SessionStore`
  for retrieving and managing OAuth sessions, making it easier to use with not
  needing to manually keep a Plug session in sync.

## Added

- `Atex.OAuth.SessionStore` behaviour and `Atex.OAuth.Session` struct for
  managing OAuth sessions with pluggable storage backends.
  - `Atex.OAuth.SessionStore.ETS` - in-memory session store implementation.
  - `Atex.OAuth.SessionStore.DETS` - persistent disk-based session store
    implementation.
- `Atex.OAuth.Plug` now requires a `:callback` option that is a MFA tuple
  (Module, Function, Args), denoting a callback function to be invoked by after
  a successful OAuth login. See [the OAuth example](./examples/oauth.ex) for a
  simple usage of this.
- `Atex.OAuth.Permission` module for creating
  [AT Protocol permission](https://atproto.com/specs/permission) strings for
  OAuth.
- `Atex.OAuth.Error` exception module for OAuth flow errors. Contains both a
  human-readable `message` string and a machine-readable `reason` atom for error
  handling.
- `Atex.OAuth.Cache` module provides TTL caching for OAuth authorization server
  metadata with a 1-hour default TTL to reduce load on third-party PDSs.
- `Atex.OAuth.get_authorization_server/2` and
  `Atex.OAuth.get_authorization_server_metadata/2` now support an optional
  `fresh` parameter to bypass the cache when needed.

## Changed

- `mix atex.lexicons` now adds `@moduledoc false` to generated modules to stop
  them from automatically cluttering documentation.
- `Atex.IdentityResolver.Cache.ETS` now uses ConCache instead of ETS directly,
  with a 1-hour TTL for cached identity information.

v0.6.0

Toggle v0.6.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ovyerus Ashlynne Mitchell
- `deflexicon` now converts all def names to be in snake_case instead…

… of the

  casing as written the lexicon.

- `deflexicon` now emits structs for records, objects, queries, and procedures.
- `Atex.XRPC.get/3` and `Atex.XRPC.post/3` now support having a lexicon struct
  as the second argument instead of the method's name, making it easier to have
  properly checked XRPC calls.
- Add pre-transpiled modules for the core `com.atproto` lexicons.

v0.5.0

Toggle v0.5.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ovyerus Ashlynne Mitchell
## [0.5.0] - 2025-10-11

### Breaking Changes

- Remove `Atex.HTTP` and associated modules as the abstraction caused a bit too
  much complexities for how early atex is. It may come back in the future as
  something more fleshed out once we're more stable.
- Rename `Atex.XRPC.Client` to `Atex.XRPC.LoginClient`

### Added

- `Atex.OAuth` module with utilites for handling some OAuth functionality.
- `Atex.OAuth.Plug` module (if Plug is loaded) which provides a basic but
  complete OAuth flow, including storing the tokens in `Plug.Session`.
- `Atex.XRPC.Client` behaviour for implementing custom client variants.
- `Atex.XRPC` now supports using different client implementations.
- `Atex.XRPC.OAuthClient` to make XRPC calls on the behalf of a user who has
  authenticated with ATProto OAuth.

v0.4.0

Toggle v0.4.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ovyerus Ashlynne Mitchell
# 0.4.0 - 2025-08-27

## Added

- `Atex.Lexicon` module that provides the `deflexicon` macro, taking in a JSON
  Lexicon definition and converts it into a series of schemas for each
  definition within it.
- `mix atex.lexicons` for converting lexicon JSON files into modules using
  `deflexicon` easily.

Verified

This tag was signed with the committer’s verified signature.
Ovyerus Ashlynne Mitchell

Verified

This tag was signed with the committer’s verified signature.
Ovyerus Ashlynne Mitchell

Verified

This tag was signed with the committer’s verified signature.
Ovyerus Ashlynne Mitchell