Skip to content
This repository was archived by the owner on Jun 21, 2025. It is now read-only.
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion schema/api.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,15 @@ interface Diflouroborane {
# Diflouroborane stores machine¹ information in an opaque internal database. This interface is
# the only stable process of modifying that information

rooms @3 () -> ( room :Rooms );
# Diflouroborane stores room information in an opaque internal database. This interface is
# the only stable process of modifying that information.

# TODO Capability transfer system, required for machine takeover, session resumption.
}

struct UUID {
# UUID type used to identify machines.
# UUID type used to identify machines or rooms.
# Since the exact value has no meaning the encoding rules are not too relevant, but it is
# paramount that you are consistent when encoding and decoding this type.
#
Expand Down Expand Up @@ -92,6 +96,16 @@ interface Permissions {
addPolicy @5 ( p :List(Text) ) -> ();
}

interface Room {

interface Inside {
leave @0 () -> ();
}

enter @0 ( uuid :UUID ) -> ( inside :Inside );
# Enter a room, identified by its UUID. If the caller is allowed to a `inside` Capability will be returned.
}

interface Authentication {
# List all SASL mechs the server is willing to use
availableMechanisms @0 () -> ( mechanisms :List(Text) );
Expand Down