mastodon.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
The original server operated by the Mastodon gGmbH non-profit

Administered by:

Server stats:

335K
active users

#fep

2 posts2 participants0 posts today

Progress on the FEP for Event objects

The FEP-8a8e (Fediverse Enhancement Proposal) had at lot of progress in the last months. In the meantime, the document has become somewhat more extensive than originally planned, but contains not only instructions for new features that have to be tediously implemented, but also a lot of advice and points that should provide orientation for developers of Fediverse applications that support events.

It now covers:

  • Required attributes
  • Events with Open End
  • Timezone
  • Physical and Virtual Locations
  • Event status
  • RSVP (Attendee Management)
  • Event Banner and Poster Images
  • Event Categories
  • Discoverability
  • Event Organizers
  • Upcoming Events Collection for ActivityPub actors
  • Term Definitions

Many thanks again to all reviewers and co-editors:

@lesion @heiglandreas @naturzukunft @laurin

We warmly welcome further feedback from the communities of #Friendica, #Mobilizon, #Hubzilla, and other Fediverse platforms supporting events.
If you’re working on such an application or are part of these communities, your insights would be very valuable! @developers @mobilizon

Summary card of an issue titled "WIP: FEP-8a8e: A common approach to using the Event object type" in repository fediverse/fep
Codeberg.orgWIP: FEP-8a8e: A common approach to using the Event object typeThis draft is still work in progress. I created the Pull Request to already share it with possible interested audience. ToDo before removing WIP: - [x] Anonymous Joins, indicate that such will always will be rejected. When supporting Organizers: `Join` has `to` or `cc` set to Organizer Collecti...

As we consider ways to implement #ActivityPub into our FOSS Community Calendar Ecosystem platform Koalagator, I've been looking over the differing specs for how to specify the event object schema.

Have any other folk wrestled with this?Asking before I get arms deep in this stuff.

For those playing at home...

---
Schema.org - Event

Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet.

schema.org/Event

-----
W3C Activity Vocabulary - Event

This specification describes the Activity vocabulary. It is intended to be used in the context of the ActivityStreams 2.0 format and provides a foundational vocabulary for activity structures, and specific activity types.

w3.org/TR/activitystreams-voca

----

Fediverse Enhancement Proposal
FEP-8a8e: A common approach to using the Event object type

ActivityStreams defines the Object Type Event. In real-world applications, the event object immediately showed the need for extension. Applications featuring Event objects have often chosen to add additional attributes and clarifications (i.e., interpretations) in order to implement their particular use case. This proposal clarifies and extends the ActivityPub standard to address the needs that have arisen in real-world implementations.

codeberg.org/linos/fep/src/bra

---

[HTML] Microformats - h-event

People are using microformats to mark up profiles, posts, events and other data on their personal sites, enabling developers to build applications which use this data in useful and interesting ways.

microformats.org/wiki/h-event

---

iCalendar Standard (RFC 5545)

iCalendar was first defined as a standard as RFC 2445 in 1998 by the Internet Engineering Task Force (IETF). Today, iCalendar is used to import and synchronize events on various platforms, including smart phones, computer and web applications.

icalendar.org/the-icalendar-st

schema.orgEvent - Schema.org TypeSchema.org Type: Event - An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the <a class="localLink" href="/offers">offers</a> property. Repeated events may be structured as separate Event objects.

I am working on a new revision of FEP-8b32:

https://codeberg.org/fediverse/fep/pulls/527

There are many editorial changes, such as replacing Controller Documents with Controlled Identifiers, new implementation (apsig), and one new requirement:

>The identifier of the verification method MUST have the same origin as the identifier of the secured document, or have a different origin, but with an established cross-origin trust relationship to the identifier of the secured document.

This is related to today's FEP-fe34 update and should cover all possible uses of integrity proofs, including regular objects signed with DID keys, and portable objects (FEP-ef61). I expect that all existing implementations of FEP-8b32 already meet this new requirement, but if not, please let me know. I'll keep this PR open / WIP for a couple of days.

Summary card of an issue titled "FEP-8b32: Update proposal" in repository fediverse/fep
Codeberg.orgFEP-8b32: Update proposal- Added same-origin / cross-origin requirement for verification method. - Removed "Special cases" section. - Fixed `@context` in activity example. - Added apsig to implementation list. - Updated links to Data Integrity and Controlled Identifiers specs. - Added type to proposal metadata.

FEP-fe34 "Origin-based security model" has been updated:

https://codeberg.org/fediverse/fep/pulls/526

There is a new section discussing cross-origin relationships. Some use cases require bypassing of same-origin policy, and in such situations confirmations of both authorities are required. One interesting example is FEP-c390: Identity Proofs, where trust is established by verification of complementary claims made by an HTTP authority (actor document) and DID authority (identity proof document).

I also added the definition of "authentication":

>Authentication is the process of verifying the origin of an object.

And the definition of "authorization":

>Authorization is the process of verfying permission to create, read, update or delete an object.

Summary card of an issue titled "FEP-fe34: Cross-origin relationships" in repository fediverse/fep
Codeberg.orgFEP-fe34: Cross-origin relationships- Added section describing cross-origin relationships. - Removed note about "other ways to establish trust". - Clarified what "authentication" means. - Specified that location must be the last in the chain of redirects. - Clarified what "authorization" means. - Made "Ownership" a sub-section...

Updating "FEP-f06f: Object observers": https://codeberg.org/fediverse/fep/pulls/512

I was thinking about managing a thread with #ActivityPub client and realized that observer actors would need to be created with Create(Application) activity where actor is user's primary actor (the one created during the registration).

This is unusual, but should work. Primary actors can't be created this way because the actor property of Create activity can't refer to a not yet created actor.

Summary card of an issue titled "FEP-f06f: Update proposal" in repository fediverse/fep
Codeberg.orgFEP-f06f: Update proposal- Requiring observers to have `observerOf` property. - Described creation of object observer (C2S). - Allowed key re-use. - Added example.

How to subscribe to a thread?

Several days ago FEP-efda: Followable objects was published. I don't like this solution because ActivityPub spec only talks about "following" in the context of actors, and the proposed "proxy-following" mechanism forces us to change some well-established practices.

So here is an alternative: FEP-f06f: Object observers.

Object observer is an actor that can be followed to receive object updates. If conversation thread is a collection, its observer will broadcast Add and Remove activities that have thread collection as their target. Observer's followers will have an up-to-date view of the thread.

Summary card of repository fediverse/fep
Codeberg.orgfep/fep/efda/fep-efda.md at mainfep - Fediverse Enhancement Proposals
I just had an interesting thought. There is a push towards using Decentralized IDs for user accounts. Bluesky uses DIDs to identify accounts. Hubzilla and (streams) have an internal hash generated from the user's cryptographic keys that serves as a DID.

Could Hubzilla and (streams) generate its own DID based on this information, and then include the DID over ActivityPub?

DID's issued by Bluesky would be: did:plc:12345

Whereas DID's issued by Hubzilla or (streams) or Forte would be: did:nomad:12345

If someone moved to another compatible server, they would keep their DID.

#fep @silverpill @Mike Macgirvin 🖥️ @Mario Vavti You know this stuff better than I do. Would something like that be useful?
codejournal.devCode Journal / Dev

FEP-2277: ActivityPub core types has been submitted to the FEP repository.

I made several changes based on the feedback, but they are minor. There are parallel discussions at W3C GitHub, where I was told that core types don't exist, or don't matter, but this is obviously wrong, because many requirements in AP and AS depend on definitions of "collection", "activity" and other core types. Classification of objects based on their properties still seems to be the best solution.

Also, due to an uncertainty about the future of SocialHub (where many accounts are going to be suspended soon), I didn't create a discussion topic there. If you have any suggestions or feedback, please reply here or open an issue at https://codeberg.org/silverpill/feps/issues.

Summary card of repository fediverse/fep
Codeberg.orgfep/fep/2277/fep-2277.md at mainfep - Fediverse Enhancement Proposals

I've made some changes to FEP-521a: https://codeberg.org/fediverse/fep/pulls/482

- Many changes due to a rename of Controller Documents specification to Controlled Identifiers.
- Using https://www.w3.org/ns/cid/v1 context in example. I haven't tried it myself yet, but it works in JSON-LD playground.
- Key ID and actor ID are now recommended to have same origin.

Summary card of an issue titled "FEP-521a: Update proposal" in repository fediverse/fep
Codeberg.orgFEP-521a: Update proposal- Updated references to Controlled Identifiers spec. - Referring to fragment ID resolution algorithm in the CID spec. - Recommending key ID and actor ID to have same origin. - Changed `@context` in the example. - Added `type` to proposal metadata.

Reminder: AS/AP-based suffers from #BallOfMud based ad-hoc expansion unless we find common practices and stick to them. Collaboration across a commons is essential here. Just coding your app with custom #ActivityPub protocol extension is contributing to #ProtocolDecay and increasing complexity to facilitate broad #interoperability.

The #FEP process and #SocialCG are where collective effort and proactive participation can improve #fedi for all. We need a bottom up standardization process.