Notes on Pending Clients
From Scire Wiki
Here is the result of a discussion on how to implement a pending clients table and the process for new clients.
the client program is run for the first time on a new machine
it generates a cert and connects "normally" to the server via XMLRPC over SSL
the server generates a digest of the client's cert each time a client connects
the client does the same for the server's cert when it connects
server looks through the client cert digests index of the clients table looking for the client. if found, the client has approval to communicate normally.
when the client connects for the first time (or any connects until approved), it will only be able to call a single function: register(). this function will add the client to the clients table with a status of "Pending" and stick the various information gathered about the client into appropriate hardware/software tables.
now then in the UI some admin will see a list of pending clients and their status, likely ordered by most recent
and he'll manually check out the digests because he's a good admin to verify they are correct
and then he'll check a checkbox that says "Approve and add client" or whatever
and then when they submit that form
we'll switch the status field in the clients table from Pending to Active.
and the client will then be visible throughout and able to be assigned jobs.
