On 26.4.2016 13:26, Petr Spacek wrote:
On 26.4.2016 12:28, Jan Cholasta wrote:
Hi,

see <http://www.freeipa.org/page/V4/Thin_Client> for initial design of the
Thin client feature. The API compatibility part of the design is work in
progress (by me), as is the client side caching part (by David).

Big thanks to David for actually writing most of the text in the design page.

Comments and suggestions are welcome.

In general it is good.

I have two questions:
1) Caching
IPA client can cache downloaded metadata to reduce traffic and reduce start up 
time. IPA client can send metadata fingerprint with request. When newer 
metadata are available server must add warning to the response.

Shouldn't it be an hard error when client sends old metadata? I do not like
the warning because when you receive a warning it is too late to cancel the
command.

You are right that a hard error might be better in this case. However, a metadata update should have no effect on the functionality of the command being executed, so it can very well be a warning to save the client a round trip to the server.

(Note that the client sends only fingerprint of the metadata.)



2) Client/server side plugins.
I expect that some very special features (like client-side OTP provisioning)
might depend particular version/range of version on the client.

Will the metadata include version range which can be checked on client side to
make sure that everything is compatible (for given command/plugin)?

No. You can't make incompatible changes to existing commands, so everything the client needs to know is whether the server supports the command or not, which is already provided in the metadata. If you *need* to do incompatible changes, you will have to introduce a new version of the command (which is basically a different command with the same name), but the server will still support the old version, so old clients will not break.



Other than that it seems reasonable. I'm looking forward to see more details!



--
Jan Cholasta

--
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to