api.fabaccess-api/main.capnp
Nadja Reitzenstein f713df2221 More fragmentation
2021-10-28 00:32:25 +02:00

33 lines
1.2 KiB
Cap'n Proto

@0xbf017710be5a54ff;
using CSharp = import "programming_language/csharp.capnp";
$CSharp.namespace("FabAccessAPI.Schema");
using Authentication = import "auth.capnp".Authentication;
using Resources = import "resources.capnp".Resources;
using Users = import "users.capnp".Users;
interface Bootstrap
{
mechanisms @0 () -> ( mechs :List(Text) );
# Get a list of Mechanisms this server allows in this context.
createSession @1 ( mechanism :Text, initialData :Data ) -> ( authentication :Authentication );
# Create a new session with the server that you wish to authenticate using `mechanism`.
# If the mechanism is a client-first mechanism you MAY set `initialData` to contain the data you
# want to send. If the mechanism is server-first or you do not wish to send initial data, make
# initialData a NULL-pointer.
}
struct Session {
# An API session with the server. The below capabilities are set to NULL if the authenticated
# user doesn't have permission to access the system in question.
resources @0 :Resources;
# Access to the resources configured.
users @1 :Users;
# User administration. This includes both modifying other users and self-modification, so this
# is allowed for most sessions
}