This commit is contained in:
Mayel de Borniol 2023-02-20 14:09:04 +13:00
parent 11bee7f735
commit 1a2c1a7989
186 changed files with 199 additions and 18 deletions

View file

@ -1,2 +1,2 @@
erlang 25.2.2
erlang 25.2.3
elixir 1.14.3-otp-25

View file

@ -47,7 +47,7 @@ The code is broadly composed namespaces such as these, many of which are package
- `Bonfire.GraphQL.*` - Optional GraphQL API
- `Bonfire.Federate.*` - Optional Federation hooks
- `ActivityPub` - ActivityPub S2S models, logic and various helper modules
- `ActivityPubWeb` - ActivityPub S2S REST endpoints, activity ingestion and push federation facilities
- `ActivityPub.Web` - ActivityPub S2S REST endpoints, activity ingestion and push federation facilities
- `ValueFlows.*` - economic extensions implementing the [ValueFlows vocabulary](https://www.valueflo.ws)
@ -148,24 +148,24 @@ It is said that naming is one of the four hard problems of computer science (alo
This namespace handles the ActivityPub logic and stores AP activities. It is largely adapted Pleroma code with some modifications, for example merging of the activity and object tables and new actor object abstraction.
- `ActivityPub` contains the main API and is documented there.
- `ActivityPub.Adapter` defines callback functions for the AP library.
- `ActivityPub.Federator.Adapter` defines callback functions for the AP library.
It also contains some functionality that isn't part of the AP spec but is required for federation:
- `ActivityPub.Keys` - Generating and handling RSA keys for messagage signing
- `ActivityPub.Signature` - Adapter for the HTTPSignature library
- `ActivityPub.WebFinger` - Implementation of the WebFinger protocol
- `ActivityPub.HTTP` - Module for making HTTP requests (wrapper around tesla)
- `ActivityPub.Safety.Keys` - Generating and handling RSA keys for messagage signing
- `ActivityPub.Safety.Signatures` - Adapter for the HTTPSignature library
- `ActivityPub.Federator.WebFinger` - Implementation of the WebFinger protocol
- `ActivityPub.Federator.HTTP` - Module for making HTTP requests (wrapper around tesla)
- `ActivityPub.Instances` - Module for storing reachability information about remote instances
Also refer to [MRF documentation](./MRF.md) to learn how to rewrite or discard messages.
### `ActivityPubWeb`
### `ActivityPub.Web`
This namespace contains the ActivityPub Server-to-Server REST API, the activity ingestion pipeline (`ActivityPubWeb.Transmogrifier`) and the push federation facilities (`ActivityPubWeb.Federator`, `ActivityPubWeb.Publisher` and others). The outgoing federation module is designed in a modular way allowing federating through different protocols in the future.
This namespace contains the ActivityPub Server-to-Server REST API, the activity ingestion pipeline (`ActivityPub.Federator.Transformer`) and the push federation facilities (`ActivityPub.Federator`, `ActivityPub.Federator.APPublisher` and others). The outgoing federation module is designed in a modular way allowing federating through different protocols in the future.
### ActivityPub integration with Bonfire's application logic
The callback functions defined in `ActivityPub.Adapter` are implemented in `Bonfire.Federate.ActivityPub.Adapter`.
The callback functions defined in `ActivityPub.Federator.Adapter` are implemented in `Bonfire.Federate.ActivityPub.Adapter`.
When implementing federation for a new object type it needs to be implemented for both directions:
for outgoing federation using the hooks in `Bonfire.Federate.ActivityPub.Outgoing` and for incoming federation using the hooks in `Bonfire.Federate.ActivityPub.Incoming`.

View file

@ -267,7 +267,8 @@ how useful this is in practice, so we might go for a simpler option in future.
Example:
```elixir
defmodule Bonfire.Data.Social.APActivity.Migration do
defmodule Bonfire.Data.Social.APActivity.Migration do
@moduledoc false
use Ecto.Migration
import Pointers.Migration
alias Bonfire.Data.Social.APActivity

View file

@ -8,7 +8,7 @@ config :nodeinfo, :adapter, Bonfire.Federate.ActivityPub.NodeinfoAdapter
config :activity_pub, :instance,
hostname: "localhost",
federation_publisher_modules: [ActivityPubWeb.Publisher],
federation_publisher_modules: [ActivityPub.Federator.APPublisher],
federation_reachability_timeout_days: 7,
federating: true,
rewrite_policy: [Bonfire.Federate.ActivityPub.BoundariesMRF],
@ -28,7 +28,7 @@ config :activity_pub, :mrf_simple,
avatar_removal: [],
banner_removal: []
config :http_signatures, adapter: ActivityPub.Signature
config :http_signatures, adapter: ActivityPub.Safety.Signatures
config :activity_pub, :http,
proxy_url: nil,
@ -43,9 +43,9 @@ config :activity_pub, :http,
]
]
config :activity_pub, ActivityPubWeb.Endpoint,
config :activity_pub, ActivityPub.Web.Endpoint,
render_errors: [
view: ActivityPubWeb.ErrorView,
view: ActivityPub.Web.ErrorView,
accepts: ~w(json),
layout: false
]

View file

@ -20,6 +20,6 @@ config :tesla, adapter: Tesla.Mock
# Print only warnings and errors during test
config :logger, level: :warn
config :activity_pub, ActivityPubWeb.Endpoint,
config :activity_pub, ActivityPub.Web.Endpoint,
http: [port: 4000],
server: false

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.HelloWorld do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.InitPointers do
@moduledoc false
use Ecto.Migration
import Pointers.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.InitEdges do
@moduledoc false
use Ecto.Migration
alias Bonfire.Data.Edges.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.CreateApTables do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.CreateObanTables do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do
@moduledoc false
use Ecto.Migration
import Bonfire.Federate.ActivityPub.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Boundaries.Repo.Migrations.ImportBoundaries do
@moduledoc false
use Ecto.Migration
import Bonfire.Boundaries.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.AddFiles do
@moduledoc false
use Ecto.Migration
import Bonfire.Files.Media.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportMe do
@moduledoc false
use Ecto.Migration
import Bonfire.Me.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
@moduledoc false
use Ecto.Migration
import Bonfire.Social.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do
@moduledoc false
use Ecto.Migration
import Bonfire.Boundaries.Fixtures

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Tag do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportSharedUser do
@moduledoc false
use Ecto.Migration
import Bonfire.Data.SharedUser.Migration

View file

@ -1,4 +1,5 @@
defmodule ActivityPub.Repo.Migrations.APTestTable do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
@moduledoc false
use Ecto.Migration
import Pointers.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.FP do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
@moduledoc false
use Ecto.Migration
import Pointers.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do
@moduledoc false
use Ecto.Migration
def up, do: Oban.Migrations.up()

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportApActivity do
@moduledoc false
use Ecto.Migration
import Bonfire.Data.Social.APActivity.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportInviteLink do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Data.Identity.Repo.Migrations.CareClosure do
@moduledoc false
use Ecto.Migration
alias Bonfire.Data.Identity.CareClosure.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportSettings do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Identity.Settings.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.AddFilesMixin do
@moduledoc false
use Ecto.Migration
import Bonfire.Files.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Hashtag do
@moduledoc false
use Ecto.Migration
require Bonfire.Tag.Hashtag.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Seen do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Social.Seen.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.AuthSecondFactor do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Identity.AuthSecondFactor.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ExtraInfo do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Identity.ExtraInfo.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixturesUp do
@moduledoc false
use Ecto.Migration
import Bonfire.Boundaries.Fixtures

View file

@ -1,4 +1,5 @@
defmodule ActivityPub.Repo.Migrations.AddObjectBoolean do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreateTracks do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreatePlaylists do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreateTrackPlaylists do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Chaskiq.Repo.Migrations.CreateActiveStorageTables do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AlterPlaylistFielfToTrackPlaylists do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddPrivateToPlaylist do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddTypeToPlaylist do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddCounterCachesToTrack do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddCounterCachesToPlaylist do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreateTrackEvent do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddObanJobsTable do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddStateToTrack do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreatePreviewCards do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreateEvent do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreateEventTickets do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreatePurchasedTickets do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.CreatePurchaseOrders do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddPurchaseOrderToPurchasedTickets do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Rauversion.Repo.Migrations.AddPaymentIdAndPaymentProvider do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.HelloWorld do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.InitPointers do
@moduledoc false
use Ecto.Migration
import Pointers.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.InitEdges do
@moduledoc false
use Ecto.Migration
alias Bonfire.Data.Edges.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.CreateApTables do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.CreateObanTables do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do
@moduledoc false
use Ecto.Migration
import Bonfire.Federate.ActivityPub.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Boundaries.Repo.Migrations.ImportBoundaries do
@moduledoc false
use Ecto.Migration
import Bonfire.Boundaries.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.AddFiles do
@moduledoc false
use Ecto.Migration
import Bonfire.Files.Media.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportMe do
@moduledoc false
use Ecto.Migration
import Bonfire.Me.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
@moduledoc false
use Ecto.Migration
import Bonfire.Social.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do
@moduledoc false
use Ecto.Migration
import Bonfire.Boundaries.Fixtures

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Tag do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportQuantify do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportGeolocation do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportValueFlows do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportSharedUser do
@moduledoc false
use Ecto.Migration
import Bonfire.Data.SharedUser.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportValueFlowsObserve do
@moduledoc false
use Ecto.Migration
alias ValueFlows.Observe.Migrations

View file

@ -1,4 +1,5 @@
defmodule ActivityPub.Repo.Migrations.APTestTable do
@moduledoc false
use Ecto.Migration
def change do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Message do
@moduledoc false
use Ecto.Migration
import Bonfire.Data.Social.Message.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
@moduledoc false
use Ecto.Migration
import Pointers.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.FP do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
@moduledoc false
use Ecto.Migration
import Pointers.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do
@moduledoc false
use Ecto.Migration
def up, do: Oban.Migrations.up()

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportApActivity do
@moduledoc false
use Ecto.Migration
import Bonfire.Data.Social.APActivity.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportClassify do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportRanked do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Assort.Ranked.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportCommitmentSatisfaction do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportInviteLink do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Data.Identity.Repo.Migrations.CareClosure do
@moduledoc false
use Ecto.Migration
alias Bonfire.Data.Identity.CareClosure.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ImportSettings do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Identity.Settings.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.AddFilesMixin do
@moduledoc false
use Ecto.Migration
import Bonfire.Files.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Hashtag do
@moduledoc false
use Ecto.Migration
require Bonfire.Tag.Hashtag.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Seen do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Social.Seen.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.AuthSecondFactor do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Identity.AuthSecondFactor.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.ExtraInfo do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Identity.ExtraInfo.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Common.Repo.Migrations.CreateObanPeers do
@moduledoc false
use Ecto.Migration
def up, do: Oban.Migrations.up(version: 11)

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Pages.Repo.Migrations.ImportPages do
@moduledoc false
use Ecto.Migration
import Bonfire.Pages.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesUpFixtures do
@moduledoc false
use Ecto.Migration
import Bonfire.Boundaries.Fixtures

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.Pin do
@moduledoc false
use Ecto.Migration
require Bonfire.Data.Social.Pin.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Encrypt.Repo.Migrations.InitSecret do
@moduledoc false
use Ecto.Migration
if Code.ensure_loaded?(Bonfire.Encrypt.Migrations) do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.HelloWorld do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.InitPointers do
@moduledoc false
use Ecto.Migration
import Pointers.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.InitEdges do
@moduledoc false
use Ecto.Migration
alias Bonfire.Data.Edges.Migration

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.CreateApTables do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Repo.Migrations.CreateObanTables do
@moduledoc false
use Ecto.Migration
def up do

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do
@moduledoc false
use Ecto.Migration
import Bonfire.Federate.ActivityPub.Migrations

View file

@ -1,4 +1,5 @@
defmodule Bonfire.Boundaries.Repo.Migrations.ImportBoundaries do
@moduledoc false
use Ecto.Migration
import Bonfire.Boundaries.Migrations

Some files were not shown because too many files have changed in this diff Show more