View Source API Reference Bonfire v0.9.10-cooperation-beta.80

Modules

Supports use of GraphQL documents from with app containing the Absinthe schema

ActivityPub Library for elixir.

An ActivityPub Actor type and functions for dealing with actors.

Contract for ActivityPub module adapters

Handles fetching AS2 objects from remote instances.

Module for building and performing HTTP requests.

Specifies connection options for HTTP requests

Rate limit middleware for Tesla using Hammer Based on TeslaExtra.RateLimit and TeslaExtra.RetryAfter

Helper functions for building HTTP requests

Takes into account the Retry-After header returned by the server when the rate limit is exceeded.

Defines the contract used by federation implementations to publish messages to their peers.

This module normalises outgoing data to conform with AS2/AP specs and handles incoming objects and activities

Serves and fetches data (mainly actor URI) necessary for federation when only the username and host is known.

Helpers for workers to use

Instances context.

Filter activities depending on their origin instance

Prunes objects from the database.

The worker to prune old data from the database.

Contains queries for Object.

This module contains some useful functions for containing objects to specific origins and determining those origins. They previously lived in the ActivityPub Transformer module.

Handles RSA keys for Actors & helpers for HTTP signatures

Implementation for behaviour from HTTPSignatures library

Misc functions used for federation

The entrypoint for defining your web interface, such as controllers, views, channels and so on.

Endpoints for serving objects and collections, so the ActivityPub API can be used to read information from the server.

Conveniences for translating and building error messages.

Standard error view

Endpoints for the ActivityPub inbox

Ensures HTTP signature has been validated by previous plugs on ActivityPub requests.

An library for Bonfire that contains

The Json scalar type allows arbitrary JSON values to be passed in and out. Requires { :jason, "~> 1.1" } package: https://github.com/michalmuskala/jason

Information about this page's relation to a larger result set

GraphQL Plug to add current user to the context

Helpful functions for preparing to query or test Absinthe applications.

Encapsulates the flow for resolving a field in the absence of multiple parents.

Encapsulates the flow for resolving a field for potentially multiple parents.

Encapsulates the flow of resolving a page in the presence of a single parent. We also currently use this as a stopgap while we finish implementing some things, trading speed for correctness.

Encapsulates the flow of resolving a page in the presence of a single parent. We also currently use this as a stopgap while we finish implementing some things, trading speed for correctness.

Encapsulates the flow of resolving a page in the absence of parents.

An extension for Bonfire that handles

A mixin used to record parent/child relationships between categories (eg. a topic that belongs to a group) and between objects and categories (eg. a post was published in a topic)

File management extension for Bonfire.

Saves uploaded files as attachments to the post.

Fetch and save metadata of URLs

Uploader for larger images, for example, a profile page banner.

Extension to Waffle.Definition, adding support for checking against media types parsed through magic bytes instead of file extensions, which can be modified by the user.

Uploader for larger images, for example, a profile page banner.

Resizes images at compile time (when possible) or runtime

An extension for Bonfire that handles

Bonfire.Label is a powerful and flexible extension designed to enhance content moderation and improve online safety. Inspired by the design principles outlined by Prosocial Design (specifically the Label Misleading Content & Add Links to Reliable Related Content pattern), this library enables the addition of custom labels and descriptions to user-generated posts.

Creates a changeset for publishing a page

Runs at compile-time to include dynamic strings (like verb names and object types) in localisation string extraction.

An extension to enable

An extensions for asking questions, collecting options, and conducting ranked voting on Bonfire

Creates a changeset for publishing choice(s) for a question

Creates a changeset for publishing a page

An extension for Bonfire that handles

A way to have data seeds that work similarly to migrations.

An extension for Bonfire that handles

GraphQL tag/category queries

A mixin used for adding tags to an object

An extension for Bonfire that handles

Pages and UI components for groups in Bonfire.

An extension for Bonfire that handles

Upcycle supports a network of high school fablabs in Milwaukee that receive contributions of materials from organizations in the community and share these with each other. It is implemented as a UI for ValueFlows, which are both available as extensions for Bonfire. Upcycle was initially created for LearnDeep by students at MSOE, and is now being maintained by the Bonfire team.

Runs ecto migrations automatically on startup (add this to your app's supervision tree)

A behaviour implemented by our data migrations (generally backfills).

Configuration for a DataMigration behaviour module, used by the DataMigration.Runner.

Runs a DataMigration

A custom Ecto type for handling the serialization of arbitrary data types stored as binary data in the database. Requires the underlying DB field to be a binary.

A custom Ecto type for handling the serialization of arbitrary data types stored as JSON data in the database. Requires the underlying DB field to be :map (eg. JSONB field).

Log Ecto queries, and output warnings for slow or possible n+1 queries

Checks a query against the previous one and increments counter of collisions or swaps previous query with the last one.

Provides functions for sanitising input on Ecto.Changeset string fields.

ValueFlows is a Bonfire extension that implements ValueFlows for federated networks to conduct economic activities.

Catch-all migrations intended to be used to initialise new Bonfire apps. Add any new up/down ecto migrations in VF modules to the bottom of these two functions.

Schema for proposal, using Needle.Pointable