API Reference Exosphere v#0.4.0

Copy Markdown View Source

Modules

Exosphere.

Lower-level, spec-aligned AT Protocol (ATProto) building blocks.

AT URI (at://) parsing and validation.

Minimal base58btc codec used for did:key and Multikey encoding.

Bluesky API client for app.bsky.* lexicons.

CAR (Content Addressable aRchive) file parser.

DAG-CBOR encoding and decoding with Exosphere.ATProto normalization.

Content Identifier (CID) handling for Exosphere.ATProto.

Cryptographic operations for Exosphere.ATProto.

Validation of values against the atproto data model.

Generic WebSocket consumer for the Exosphere.ATProto firehose using WebSockex.

Decode Exosphere.ATProto firehose WebSocket frames.

Parse firehose message payloads into structured events.

Simple HTTP client using Mint.

Behaviour for HTTP clients.

DID (Decentralized Identifier) resolution for Exosphere.ATProto.

DID Document structure and parsing for Exosphere.ATProto.

Handle resolution for Exosphere.ATProto.

Declares a label value and its expected interpretations and behaviors.

Strings which describe the label in the UI, localized into a specific language.

Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.

Metadata tags on an atproto record, published by the author within the record.

Merkle Search Tree (MST) for AT Protocol repositories.

Namespaced Identifiers (NSIDs).

Runtime OAuth client configuration: the metadata document paired with the private client-authentication key.

OAuth 2.0 Client Metadata Documents (the client_id document).

DPoP (RFC 9449) proof JWTs for the ATProto OAuth profile.

Per-authorization-server DPoP nonce cache.

Identity-to-authorization-server discovery for ATProto OAuth.

The ATProto OAuth authorization-code flow: PAR → authorize redirect → callback → token exchange.

JSON Web Keys (RFC 7517) for the ATProto OAuth profile.

Compact JWS signing and verification (RFC 7515) for the ATProto OAuth profile.

PKCE (RFC 7636) code verifiers and challenges.

DPoP-bound HTTP requests against OAuth endpoints.

State an application must retain between the two legs of the authorization flow.

Authorization Server and Resource Server metadata (RFC 8414 + the OAuth-Protected-Response draft used by ATProto).

A DPoP-bound ATProto OAuth session: the tokens, the session DPoP key, and everything needed to refresh and to make authorized XRPC requests.

Record Keys (rkeys).

Exosphere.ATProto repository operations for writing records to a user's PDS.

Repository commit signature verification.

A URI with a content-hash fingerprint.

Timestamp ID (TID) generation for Exosphere.ATProto records.

XRPC HTTP client for Exosphere.ATProto.

XRPC error handling.

Exosphere's supervision tree.

XRPC client functions for the app.bsky.actor namespace.

Record schema app.bsky.actor.contentVisibilityDeclaration.

Record schema app.bsky.actor.profile.

Record schema app.bsky.actor.status.

XRPC client functions for the app.bsky.ageassurance namespace.

XRPC client functions for the app.bsky.bookmark namespace.

XRPC client functions for the app.bsky.contact namespace.

XRPC client functions for the app.bsky.draft namespace.

XRPC client functions for the app.bsky.embed namespace.

width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.

A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).

Object schema app.bsky.embed.external##external.

An assortment of media embedded in a Bluesky record (eg, a post).

An assortment of media embedded in a Bluesky record (eg, a post).

A set of images embedded in a Bluesky record (eg, a post).

A set of images embedded in a Bluesky record (eg, a post).

A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record.

A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card.

A video embedded in a Bluesky record (eg, a post).

A video embedded in a Bluesky record (eg, a post).

XRPC client functions for the app.bsky.feed namespace.

Record schema app.bsky.feed.generator.

Record schema app.bsky.feed.like.

Record schema app.bsky.feed.post.

Deprecated: use facets instead.

Object schema app.bsky.feed.post##replyRef.

Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.

Record schema app.bsky.feed.postgate.

Disables embedding of this post.

Record schema app.bsky.feed.repost.

Record schema app.bsky.feed.threadgate.

Allow replies from actors who follow you.

Allow replies from actors you follow.

Allow replies from actors on a list.

Allow replies from actors mentioned in your post.

XRPC client functions for the app.bsky.graph namespace.

Record schema app.bsky.graph.block.

Record schema app.bsky.graph.follow.

Record schema app.bsky.graph.list.

Record schema app.bsky.graph.listblock.

Record schema app.bsky.graph.listitem.

Record schema app.bsky.graph.starterpack.

Object schema app.bsky.graph.starterpack##feedItem.

Record schema app.bsky.graph.verification.

XRPC client functions for the app.bsky.labeler namespace.

Object schema app.bsky.labeler.defs##labelerPolicies.

Record schema app.bsky.labeler.service.

XRPC client functions for the app.bsky.notification namespace.

Record schema app.bsky.notification.declaration.

Typed repository operations: create, fetch, list, and delete records through their generated struct modules.

Annotation of a sub-string within rich text.

Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.

Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.

Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.

Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').

Shared runtime helpers used by the generated Exosphere.Bsky.* modules.

XRPC client functions for the app.bsky.unspecced namespace.

XRPC client functions for the app.bsky.video namespace.

A record whose presence in an account can indicate that the account probably uses this app.

width:height represents an aspect ratio. It may be approximate.

An image associated with an app, including accessibility and display metadata. Exactly one of image (ATProto blob) or uri (remote URL) MUST be present. Consumers SHOULD ignore image items that have neither or both.

Self-declared AT Protocol lexicon interoperability signals.

A labeled URI associated with an app.

Record schema community.lexicon.app.entry.

Record schema community.lexicon.app.profile.

Localized metadata for a community.lexicon.app.profile record.

XRPC client functions for the community.lexicon.bookmarks namespace.

Record schema community.lexicon.bookmarks.bookmark.

Record schema community.lexicon.calendar.event.

A URI associated with the event.

Record schema community.lexicon.calendar.rsvp.

Record schema community.lexicon.interaction.like.

A physical location in the form of a street address.

A physical location contained in the Foursquare Open Source Places dataset.

A physical location in the form of a WGS84 coordinate.

A physical location in the form of a H3 encoded location.

Declares a user's preferences regarding AI usage of their public data. A record at key 'self' with globalScope establishes default preferences. Additional records keyed by TID establish scoped overrides for specific entities or content collections.

Declares a user's preferences regarding AI usage of their public data. A record at key 'self' with globalScope establishes default preferences. Additional records keyed by TID establish scoped overrides for specific entities or content collections.

Declares a user's preferences regarding AI usage of their public data. A record at key 'self' with globalScope establishes default preferences. Additional records keyed by TID establish scoped overrides for specific entities or content collections.

Declares a user's preferences regarding AI usage of their public data. A record at key 'self' with globalScope establishes default preferences. Additional records keyed by TID establish scoped overrides for specific entities or content collections.

Declares a user's preferences regarding AI usage of their public data. A record at key 'self' with globalScope establishes default preferences. Additional records keyed by TID establish scoped overrides for specific entities or content collections.

Declares a user's preferences regarding AI usage of their public data. A record at key 'self' with globalScope establishes default preferences. Additional records keyed by TID establish scoped overrides for specific entities or content collections.

Public-facing firehose consumer built on top of Exosphere.ATProto.Firehose.Consumer.

Registering, type-checking, and publishing lexicons.

Generates Elixir record modules from parsed lexicon IR.

Parses ATProto lexicon JSON files into a normalized schema IR.

A runtime registry of lexicons, keyed by NSID.

Fetching lexicons published as com.atproto.lexicon.schema records.

The com.atproto.lexicon.schema record type: publishing lexicons as atproto records.

Runtime validation of values against parsed lexicon schemas.

Process wrapper around an Exosphere.ATProto.OAuth.Session that keeps the session fresh and makes DPoP-signed XRPC calls.

Convenience wrapper around Exosphere.ATProto.TID.

Public-facing XRPC client built on top of Exosphere.ATProto.XRPC.Client.

Mix Tasks

Generates Elixir modules from the lexicon JSON files vendored under priv/lexicons, for every supported source.

Refreshes the vendored lexicon JSON files under priv/lexicons from their upstream sources and records the pinned revisions in priv/lexicons/SOURCES.md.

Lints lexicon JSON documents against the lexicon schema rules.