Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • 0.7.0

    Added
    -----------------------
    
    - Generators:
      - `rails generate federails:copy_factories` copies FactoryBot factories in 'spec/factories', with `federails_` prefix
      - `rails generate federails:copy_client_policies` copies Pundit policies in 'app/policies/federails'
    - Actors:
      - added `sync!` method to update distant actors: `Actor.find(1).sync!`
      - added `on_federails_undelete_requested` callback
      - restore actor when `on_federails_undelete_requested` is triggered
    - DataEntity:
      - added `federails_sync!` method to update distant content: `Articles.find(1).federails_sync!`
      - added `on_federails_undelete_requested` callback
    - Inboxes:
      - dispatch `on_federails_undelete_requested` when receiving an `Undo` activity on a `Delete` one
    - Client:
      - Added a field with actor's "at address" to copy in another instance
    - Utils:
      - Added `Federails::Utils::JsonRequest` module to replace many similar methods in `Fediverse::Webfinger` and
        `Fediverse::Request`
    - Fediverse:
      - Added `Fediverse::NodeInfo` to retrieve nodeinfo data
    
    Changed
    -----------------------
    
    - Actors:
      - `entity` relation is now kept when actor is tombstoned with an existing entity
      - `at_address` now have a `prefix` argument to change the address prefix. Defaults to `@` for compatibility.
    - `Fediverse::Request`: class is not instantiable anymore
    
    Removed
    -----------------------
    
    - `Fediverse::Request.get` has been removed.
    
    Fixed
    -----------------------
    
    - Do not create actor when fetching new remote objects
    - Added missing condition on DataEntity's `after_update` hook
    - Client:
      - Don't fail in `follower` partial when user is not signed-in
      - Require `uri` parameter in new following action
      - Strip parameter value when searching for actors
      - Improve some strings in views
    - Server:
      - Fix nodeinfo scheme in schema URL
    
  • 0.6.2

    Fixed
    ----------------
    
    - Prevent overwriting actor's entity when updating with `ActorUpdater`
    - ActorEntity: Don't try to tombstone nonexistent actors
    
  • 0.6.1

    Fixed
    ------------------
    - Actors: don't use entity attributes if there isn't one available
    
  • 0.6.0

    Added
    ------------------
    
    - `Federails::Configuration#open_registrations` now supports a proc in addition to booleans.
    - `Federails::Actor` now stores the actor's type (`actor_type`)
    - `Federails::Maintenance::ActorsUpdater` was added to update distant actors
    - Rake task `federails:sync_actors` was added to update distant actors from CLI
    - Added support for `Delete` activities on:
      - `Actor`: soft-deletes the actor; returns 410 _gone_ responses on webfinger and Actor's `show` view
      - `Following`: destroys the following
      - `DataEntity`: triggers a hook so implementers can do what they want. Soft-deletions are also supported.
    
    Changed
    ------------------
    
    - Renamed `Fediverse::Inbox#handle_accept_request` private method to `handle_accept_follow_request`
    - Renamed `Fediverse::Inbox#handle_undo_request` private method to `handle_undo_follow_request`
    
    Fixed
    ------------------
    
    - `sleeping_king_studios-yard` repository has been renamed to `sleeping_king_studios-docs`. A gem has been released
    - [#25](https://gitlab.com/experimentslabs/federails/-/issues/25) - `Actor#local?` now resolves with a new `local` flag
      on `Actor`, so it is now reliable.
    - Distant actors can now have local entities. Override `create_federails_actor_as_local?` in your models to determine
      if associated actor is local or not (defaults to `true`)
    - Stop creating Activities when receiving distant following requests
    
    Maintenance
    ------------------
    
    - CI now runs against multiple Ruby versions
    - CI now runs against multiple Rails versions
    
  • 0.5.0

    Added
    ------------------------
    
    - `Federails::Actor`: Add `.distant` scope to select distant actors
    - `Federails::Request`: Add `.dereference` method to... dereference an object
    - New feature: Federated entities. This allows model configuration to ease the process of creating Fediverse entities
    from local content, and database entries from Fediverse content. When configured:
        - "Create" activities will be created on data creation
        - Incoming "Create" activities will be dispatched on supported models to create data locally
        - "Update" activities will be created on data update
        - Incoming "Update" activities will be dispatched on supported models to update (or create if missing) data locally
        - Ability to support the same Fediverse type with multiple models (note: only one model finally handles the object,
        check documentation for more)
    - Data transformer for Notes: `Federails::DataTransformer::Note`, to ease transforming local data to Fediverse Notes
    - Server: new "published" controller to render published `Federails::DataEntity` as federated object. This controller
    will answer to the `federated_url` generated for local content.
    - New helper module with methods to find local data from an ActivityPub object: `Federails::Utils::Object`:
        - `find_or_initialize(object_or_id)` returns nil when object is not found remotely
        - `find_or_initialize!(object_or_id)` raises an error when object is not found remotely
        - `find_or_create!(object_or_id)` raises an error when object is not found remotely
        - `timestamp_attributes(hash)` returns hash with `created_at`/`updated_at` attributes from the ActivityPub object
    
  • 0.4.0

    Added
    ------------------
    
    - Added `Federails.actor_entity(class_or_instance)` method which returns the configuration
    
    Changed
    ------------------
    
    - Methods included in `Federails::Entity` are renamed with `federails` in them to avoid confusion and make projects with _actors_ able to use the gem
    - [**BREAKING**] Concern `Federails::Entity` has been renamed to `Federails::ActorEntity`
    - Internal method `Federails::Configuration.register_entity` has been renamed to `Federails::Configuration.register_actor_class`.
    - [**BREAKING**] Configuration key `Federails::Configuration.entity_types` has been renamed to `Federails::Configuration.actor_types`
    
  • 0.3.0

    - Base controller for client controllers can be specified to something different from `ActionController::Base` with the
      `base_client_controller` option
    - New generator: `federails:copy_client_views`, that copies all the client views in `app/views/federails/client` for override
    - Added `auto_create_actors` option for `acts_as_federails_actor` method to disable automatic actor creation.
    - Added helper method `Federails.actor_entity?` to check if a given class/instance may have associated actors
    - Dynamic dispatch of activities with `after_activity_received` (e.g.: `after_activity_received 'Create', 'Note', :create_note`)
    - Ability to add custom data to actor responses
    - Handle URI-only objects in dynamic dispatch
    
    - Client: reworked the views:
      - Extracted some sections in reusable partials
      - Improved listings with no entries
      - Improved conditional display for some sections
      - Handled the case where the current user does not have an associated actor
      - Handled the case where the current user's class is not configured with `acts_as_federails_actor`
    
    - As actors' subject is a polymorphic relation, these Federails configuration options were removed: `user_class`,
      `user_table`, `user_profile_url_method`, `user_name_field` and `user_username_field`
    - `acts_as_federails_actor` is not automatically called when `Federails::Entity` concern is included in models.
    
    - Client controllers: enforce authorization calls on controller actions
    - Server controllers: enforce authorization calls on controller actions
    - Mime types: Don't consider "application/json" as "application/ld+json"
    
  • 0.2.0

    Sign messages, handle signed messages and remote following
    
  • 0.1.0

    More of the initial work and various additions