Releases: cometsh/atex
Releases · cometsh/atex
v0.7.0
[0.7.0] - 2026-01-07
Breaking Changes
Atex.OAuth.Plugnow raisesAtex.OAuth.Errorexceptions instead of handling
error situations internally. Applications should implementPlug.ErrorHandler
to catch and gracefully handle them.Atex.OAuth.Plugnow saves only the user's DID in the session instead of the
entire OAuth session object. Applications must useAtex.OAuth.SessionStore
to manage OAuth sessions.Atex.XRPC.OAuthClienthas been overhauled to useAtex.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.SessionStorebehaviour andAtex.OAuth.Sessionstruct 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.Plugnow requires a:callbackoption 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 for a
simple usage of this.Atex.OAuth.Permissionmodule for creating
AT Protocol permission strings for
OAuth.Atex.OAuth.Errorexception module for OAuth flow errors. Contains both a
human-readablemessagestring and a machine-readablereasonatom for error
handling.Atex.OAuth.Cachemodule 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/2and
Atex.OAuth.get_authorization_server_metadata/2now support an optional
freshparameter to bypass the cache when needed.
Changed
mix atex.lexiconsnow adds@moduledoc falseto generated modules to stop
them from automatically cluttering documentation.Atex.IdentityResolver.Cache.ETSnow uses ConCache instead of ETS directly,
with a 1-hour TTL for cached identity information.
v0.6.0
[0.6.0] - 2025-11-25
Breaking Changes
deflexiconnow converts all def names to be in snake_case instead of the
casing as written the lexicon.
Added
deflexiconnow emits structs for records, objects, queries, and procedures.Atex.XRPC.get/3andAtex.XRPC.post/3now 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.atprotolexicons.
v0.5.0
[0.5.0] - 2025-10-11
Breaking Changes
- Remove
Atex.HTTPand 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.ClienttoAtex.XRPC.LoginClient
Added
Atex.OAuthmodule with utilites for handling some OAuth functionality.Atex.OAuth.Plugmodule (if Plug is loaded) which provides a basic but
complete OAuth flow, including storing the tokens inPlug.Session.Atex.XRPC.Clientbehaviour for implementing custom client variants.Atex.XRPCnow supports using different client implementations.Atex.XRPC.OAuthClientto make XRPC calls on the behalf of a user who has
authenticated with ATProto OAuth.
v0.4.0
[0.4.0] - 2025-08-27
Added
Atex.Lexiconmodule that provides thedeflexiconmacro, taking in a JSON
Lexicon definition and converts it into a series of schemas for each
definition within it.mix atex.lexiconsfor converting lexicon JSON files into modules using
deflexiconeasily.
v0.3.0
[0.3.0] - 2025-06-29
Changed
Atex.XRPC.Adapterrenamed toAtex.HTTP.Adapter.
Added
Atex.HTTPmodule that delegates to the currently configured adapter.Atex.HTTP.Responsestruct to be returned byAtex.HTTP.Adapter.Atex.IdentityResolvermodule for resolving and validating an identity,
either by DID or a handle.- Also has a pluggable cache (with a default ETS implementation) for keeping
some data locally.
- Also has a pluggable cache (with a default ETS implementation) for keeping