Skip to content

v0.26.0

Choose a tag to compare

@MasterJ93 MasterJ93 released this 11 May 06:45
· 372 commits to main since this release

Version 0.26.0 includes the following changes:

  • Reworked SessionConfiguration and ATProtocolConfiguration.
    • This change is supposed to handle ease of use with respect to how to handle session management, retrieving and sending tokens, and storing tokens securely.
    • ATProtocolConfiguration is supposed to be for app passwords and as such, the way things are managed for sessions will only relate to App Password-related authentication.
    • Included with the rework:
      • UserSessionRegistry is an actor that manages multiple instances of UserSession. This is useful for situations where an app can let the user log into multiple accounts at once.
      • SecureKeychainProtocol is a protocol used for managing the access token, refresh token, and password. The refresh token and password are stored in the keychain, while the access token is stored in-memory.
        • An actor named AppleSecureKeychain is provided for applications running on all Apple platforms. Linux and Windows developers will need to implement this on their own for now. A future update may include actors specifically for Linux and Windows.
      • All required and optionally authenticated methods will check to see if the token has expired (and will auto-refresh the token if it is).
  • Added support for the following in ATProtoBluesky:
    • Adding, editing, and deleting Profile records.
    • Adding, editing, and deleting List records.
    • Adding and deleting ListItem records.
    • Adding and deleting ListBlock records.
      • Also made improvements to determine whether a block record can be created (for example, if the DID of the user account doesn’t exist).
  • Made sure the last remaining lexicon methods no longer uses Result<Success, Failure> as its return` type.
  • Custom URLSessionConfiguration objects can now be used, whether on SessionConfiguration protocol, or the main ATProtoKit class.
    • Please note: the URLSessionConfiguration object in ATProtoKit will override the URLSessionConfiguration object in SessionConfiguration.
  • Removed the shouldAuthenticate argument from getSearchActors().
    • According to Bluesky’s new documentation, this method can only be used with authentication.
  • Improved on the truncation of links in Bluesky posts. (Thanks, @aaronvegh!)
  • Please note: the lexicons models and methods have not been updated since the beginning of April. They will be updated overtime.

Once again, thank you for your support. Please give feedback, bug reports, and contributions if you have time. Consider starring this project if you find it helpful, and feel free to donate an amount that reflects the value it has brought to you. Your support helps ensure the continued development and improvement of this project. You can also speak to me on Bluesky (@cjrriley.com) for any questions.