Submit
Path:
~
/
/
usr
/
share
/
dbus-1
/
interfaces
/
File Content:
org.freedesktop.Flatpak.Authenticator.xml
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> <!-- Copyright (C) 2015 Red Hat, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Author: Alexander Larsson <alexl@redhat.com> --> <node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd"> <!-- 'org.freedesktop.Flatpak.Authenticator: @short_description: Flatpak authenticator An authenticator is a dbus service that flatpak talks to in order to negotiate downloads of protected content. Each commit in the repository has a "token-type" value (either directly or from a default), and whenever this is non-zero flatpak assumes it will need to do some sort of authentication to download it. Each configured remote in the system has information about what authenticator to use for the remote, as well as some config options for it. The configuration contains the dbus name of the authenticator, which is activated on demand by dbus. This allows authenticators to be shipped with the system, or installed as flatpaks. The main operation that the authenticator supports is the RequestRefToken where you pass a set of references and the authenticator returns a HTTP bearer token (if any) to use for each ref. Flatpak will then use the returned tokens in all its http requests, and it is then up to the server to validate the tokens. The authenticator dbus calls are not regular dbus calls, but instead long running (cancellable) object implementing the AuthenticatorRequest interface. This is very similiar to how org.freedesktop.portal.Request work when its used in xdg-desktop-portal. Most of the details in how the tokens look, are created and validated and how the token-type is interpreted is up to the authenticator (in combination with the actual repo server). The system has been designed to be very generic. The D-Bus interface for the authenticator is supposed to be available on the given bus name at the object path /org/freedesktop/Flatpak/Authenticator. This documentation describes version 1 of this interface. --> <interface name='org.freedesktop.Flatpak.Authenticator'> <property name="version" type="u" access="read"/> <!-- RequestRefTokens: @handle_token: A string that will be used as the last element of the @handle. Must be a valid object path element. See the #org.freedesktop.Flatpak.AuthenticatorRequest documentation for more information about the @handle. @authenticator_options: Data from the xa.authenticator-options key in the configuration for the remote, it is up to the authenticator to interpret this how it wants. @remote: The name of the remote we're pulling from. @remote_uri: The uri of the remote we're pulling from. @refs: An array of ref that flatpak wants to pull and info about each ref. @options: An extensible dict with extra options. @parent_window: Identifier for the application window, see <link linkend="https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#parent_window">xdg-desktop-portal docs</link> for details on its format. @handle: Object path for the #org.freedesktop.Flatpak.AuthenticatorRequest object representing this call. Starts a request for resolving the tokens to use for @refs from the @remote (with uri @remote_uri). This is not a regular dbus call that blocks until the result is done, instead it creates a org.freedesktop.Flatpak.AuthenticatorRequest object representing the ongoing operation and returns an object path @handle to it. When the operation succeds the Response signal is emitted on the request with a response status and a dict with details. The @refs array elements are of type (ssia{sv}) where the items are: <simplelist> <member>s: The ref being pulled</member> <member>s: The exact commit being pulled</member> <member>i: The token-type of the commit</member> <member>a{sv}: Extra per-ref metadata, currenlty only has summary.* fields which are copied from the summary per-commit metadata.</member> </simplelist> On success (response 0) the returned details should have: <variablelist> <varlistentry> <term>tokens a{sas}</term> <listitem><para> A list of tokens (the first element of the struct), and the refs (the second). </para></listitem> </varlistentry> </variablelist> For other response types, see the #org.freedesktop.Flatpak.AuthenticatorRequest docs. Exactly how the authenticator decides on what token to use is up to each implementation, but typically it needs to talk to some kind of network service which in turn may need interaction such as login or entering credit card details. This can be done in two ways: The authenticator can use a native ui toolkit directly (as its running in the session). To make this work well the flatpak client can (if its has a UI) pass in the @parent_window argument, allowing the authenticator to open its dialog in a way that is correctly parented. Alternatively, if the interaction is web-based, then rather than showing a web browser itself it can emit the WebFlow signal on the request object, which lets the flatpak client show a webview embedded in its ui in a way that works best with its user interface. For simple user/password authentication (such as http basic authentication systems) there is also a BasicAuth signal that can be used to get the user to interactively authenticate. This kind of authentication is quite limited, but if used it can allow nice interactive authentication even in the command line case. Currently used keys in the @options argument: <variablelist> <varlistentry> <term>xa.oci-registry-uri s</term> <listitem><para> For OCI remotes this is extracted from the summary file and contains the uri to the OCI registry that contains the images. </para></listitem> </varlistentry> <varlistentry> <term>no-interation b</term> <listitem><para> If true, the authenticator should not do any interaction (and fail instead if it needs to). This can be enabled by clients that want to run in the background. </para></listitem> </varlistentry> </variablelist> --> <method name="RequestRefTokens"> <arg type='s' name='handle_token' direction='in'/> <arg type='a{sv}' name='authenticator_options' direction='in'/> <arg type='s' name='remote' direction='in'/> <arg type='s' name='remote_uri' direction='in'/> <!-- This is the ref and its token-type --> <arg type='a(ssia{sv})' name='refs' direction='in'/> <arg type='a{sv}' name='options' direction='in'/> <arg type='s' name='parent_window' direction='in'/> <arg type='o' name='handle' direction='out'/> </method> </interface> <!-- 'org.freedesktop.Flatpak.AuthenticatorRequest: @short_description: Ongoing authenticator request The AuthenticatorRequest interface is used by the #org.freedesktop.Flatpak.Authenticator interface. When a method is called, the reply includes a handle (i.e. object path) for a AuthenticatorRequest object, which will stay alive for the duration of the user interaction related to the method call. The authenticator indicates that a request interaction is over by emitting the #org.freedesktop.Flatpak.AuthenticatorRequest::Response signal on the Request object. The application can abort the interaction calling org.freedesktop.Flatpak.AuthenticatorRequest.Close() on the AuthenticatorRequest object. The object path of each request object will be of the form /org/freedesktop/Flatpak/Authenticator/request/SENDER/TOKEN, where SENDER is the callers unique name, with the initial ':' removed and all '.' replaced by '_', and TOKEN is a unique token that the caller provided with the handle_token argument. This lets applications subscribe to the Response signal before making the initial portal call, thereby avoiding a race condition. --> <interface name="org.freedesktop.Flatpak.AuthenticatorRequest"> <!-- Close: Closes the authenticator request to which this object refers and ends all related user interaction (dialogs, webflows etc). A Response signal with the cancelled response will be emitted if the operation was cancelled. There is still a posibility of a race, so the operation might succeed or fail before processing the close request, so there is no guarantee that the operation will be cancelled. --> <method name="Close"> </method> <!-- Webflow: @uri: The uri to show @options: An extensible dict with extra options. Emitted by the authenticator when it needs to do web-based interaction. The client handles this by showing the URI in a graphical web view. Typically the uri includes information about a final redirect to a localhost uri that will happen when the operation is finished allowing the authenticator to get the result of the operation. This is similar to how OAUTH2 webflows typically work. If at any point the user closes or otherwise dismisses the web view the client should call the org.freedesktop.Flatpak.AuthenticatorRequest.Close method to tell the authenticator that the operation is aborted. --> <signal name="Webflow"> <arg type="s" name="uri"/> <arg type="a{sv}" name="options" direction="in"/> </signal> <!-- WebflowDone: @options: An extensible dict with extra options. Emitted by the authenticator when the web view is done, at this point the client can close the WebView. --> <signal name="WebflowDone"> <arg type="a{sv}" name="options" direction="in"/> </signal> <!-- BasicAuth: @realm: String showing what the auth is for, similar to http basic auth realm. @options: An extensible dict with extra options. Emitted by the authenticator when it needs to do a simple user + password authentication. This is only useful for very simple authentication interaction, but this is still used (for instance for http basic access authentication), and for those cases this allows a nicely integrated UI and CLI experience. --> <signal name="BasicAuth"> <arg type="s" name="realm"/> <arg type="a{sv}" name="options" direction="in"/> </signal> <!-- BasicAuthReply: @user: The user @password: The password @options: An extensible dict with extra options. Call to finish the request started with the BasicAuth signal. --> <method name="BasicAuthReply"> <arg type="s" name="user"/> <arg type="s" name="password"/> <arg type="a{sv}" name="options" direction="in"/> </method> <!-- Response: @response: Numeric response @results: Vardict with results. The keys and values in the vardict depend on the request. Emitted when the user interaction for a portal request is over. The @response indicates how the user interaction ended: <simplelist> <member>0: Success, the request is carried out</member> <member>1: The user cancelled the interaction</member> <member>2: The user interaction was ended in some other way</member> </simplelist> In the case of an error (response 2) @results can contain a error-message value describing what went wrong. --> <signal name="Response"> <arg type="u" name="response"/> <arg type="a{sv}" name="results"/> </signal> </interface> </node>
Submit
FILE
FOLDER
Name
Size
Permission
Action
org.freedesktop.Flatpak.Authenticator.xml
13027 bytes
0644
org.freedesktop.Flatpak.xml
12812 bytes
0644
org.freedesktop.LogControl1.xml
1973 bytes
0644
org.freedesktop.PackageKit.Transaction.xml
92312 bytes
0644
org.freedesktop.PackageKit.xml
22020 bytes
0644
org.freedesktop.RealtimeKit1.xml
2181 bytes
0644
org.freedesktop.Tracker3.Miner.Files.Index.xml
416 bytes
0644
org.freedesktop.Tracker3.Miner.xml
2190 bytes
0644
org.freedesktop.hostname1.xml
4845 bytes
0644
org.freedesktop.impl.portal.Access.xml
3816 bytes
0644
org.freedesktop.impl.portal.Account.xml
3425 bytes
0644
org.freedesktop.impl.portal.AppChooser.xml
5203 bytes
0644
org.freedesktop.impl.portal.Background.xml
4082 bytes
0644
org.freedesktop.impl.portal.Email.xml
3546 bytes
0644
org.freedesktop.impl.portal.FileChooser.xml
13768 bytes
0644
org.freedesktop.impl.portal.Inhibit.xml
5443 bytes
0644
org.freedesktop.impl.portal.Lockdown.xml
1739 bytes
0644
org.freedesktop.impl.portal.Notification.xml
2884 bytes
0644
org.freedesktop.impl.portal.PermissionStore.xml
7079 bytes
0644
org.freedesktop.impl.portal.Print.xml
6106 bytes
0644
org.freedesktop.impl.portal.RemoteDesktop.xml
13848 bytes
0644
org.freedesktop.impl.portal.Request.xml
1713 bytes
0644
org.freedesktop.impl.portal.ScreenCast.xml
12507 bytes
0644
org.freedesktop.impl.portal.Screenshot.xml
4347 bytes
0644
org.freedesktop.impl.portal.Secret.xml
2626 bytes
0644
org.freedesktop.impl.portal.Session.xml
1732 bytes
0644
org.freedesktop.impl.portal.Settings.xml
3439 bytes
0644
org.freedesktop.impl.portal.Wallpaper.xml
2281 bytes
0644
org.freedesktop.locale1.xml
2566 bytes
0644
org.freedesktop.login1.Manager.xml
16996 bytes
0644
org.freedesktop.login1.Seat.xml
2478 bytes
0644
org.freedesktop.login1.Session.xml
6383 bytes
0644
org.freedesktop.login1.User.xml
3442 bytes
0644
org.freedesktop.portal.Account.xml
3539 bytes
0644
org.freedesktop.portal.Background.xml
4034 bytes
0644
org.freedesktop.portal.Camera.xml
3127 bytes
0644
org.freedesktop.portal.Device.xml
2631 bytes
0644
org.freedesktop.portal.Documents.xml
11423 bytes
0644
org.freedesktop.portal.Email.xml
4894 bytes
0644
org.freedesktop.portal.FileChooser.xml
15156 bytes
0644
org.freedesktop.portal.FileTransfer.xml
5658 bytes
0644
org.freedesktop.portal.Flatpak.xml
22707 bytes
0644
org.freedesktop.portal.GameMode.xml
9089 bytes
0644
org.freedesktop.portal.Inhibit.xml
7285 bytes
0644
org.freedesktop.portal.Location.xml
6387 bytes
0644
org.freedesktop.portal.MemoryMonitor.xml
2069 bytes
0644
org.freedesktop.portal.NetworkMonitor.xml
4896 bytes
0644
org.freedesktop.portal.Notification.xml
6685 bytes
0644
org.freedesktop.portal.OpenURI.xml
7932 bytes
0644
org.freedesktop.portal.PowerProfileMonitor.xml
1709 bytes
0644
org.freedesktop.portal.Print.xml
14446 bytes
0644
org.freedesktop.portal.ProxyResolver.xml
1975 bytes
0644
org.freedesktop.portal.Realtime.xml
2532 bytes
0644
org.freedesktop.portal.RemoteDesktop.xml
16139 bytes
0644
org.freedesktop.portal.Request.xml
3538 bytes
0644
org.freedesktop.portal.ScreenCast.xml
13695 bytes
0644
org.freedesktop.portal.Screenshot.xml
4730 bytes
0644
org.freedesktop.portal.Secret.xml
3285 bytes
0644
org.freedesktop.portal.Session.xml
2950 bytes
0644
org.freedesktop.portal.Settings.xml
3375 bytes
0644
org.freedesktop.portal.Trash.xml
1746 bytes
0644
org.freedesktop.portal.Wallpaper.xml
3538 bytes
0644
org.freedesktop.resolve1.DnssdService.xml
1441 bytes
0644
org.freedesktop.resolve1.Link.xml
4284 bytes
0644
org.freedesktop.resolve1.Manager.xml
8054 bytes
0644
org.freedesktop.systemd1.Automount.xml
17730 bytes
0644
org.freedesktop.systemd1.Device.xml
17105 bytes
0644
org.freedesktop.systemd1.Job.xml
2256 bytes
0644
org.freedesktop.systemd1.Manager.xml
36177 bytes
0644
org.freedesktop.systemd1.Mount.xml
58653 bytes
0644
org.freedesktop.systemd1.Path.xml
18050 bytes
0644
org.freedesktop.systemd1.Scope.xml
30990 bytes
0644
org.freedesktop.systemd1.Service.xml
65486 bytes
0644
org.freedesktop.systemd1.Slice.xml
29034 bytes
0644
org.freedesktop.systemd1.Socket.xml
65410 bytes
0644
org.freedesktop.systemd1.Swap.xml
57550 bytes
0644
org.freedesktop.systemd1.Target.xml
17038 bytes
0644
org.freedesktop.systemd1.Timer.xml
19180 bytes
0644
org.freedesktop.systemd1.Unit.xml
16972 bytes
0644
org.freedesktop.timedate1.xml
2930 bytes
0644
N4ST4R_ID | Naxtarrr