diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2019-11-04 12:02:03 +0100 |
---|---|---|
committer | Jose Bollo <jose.bollo@iot.bzh> | 2019-11-04 12:03:31 +0100 |
commit | 3ab6b486ca043d237b89fe530cb10ca89b489344 (patch) | |
tree | ff6f4869febd31ea3944469d4b0888352e3a15bc /src | |
parent | 283c69816157ef11aa93d54ab454a3368f35919e (diff) |
Improvement of documentation
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src')
-rw-r--r-- | src/cynagora-protocol.txt | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/src/cynagora-protocol.txt b/src/cynagora-protocol.txt deleted file mode 100644 index ea3c1c2..0000000 --- a/src/cynagora-protocol.txt +++ /dev/null @@ -1,184 +0,0 @@ -The cynagora protocol -===================== - -Introduction ------------- - -### Notations: - - - c->s: from client to cynagora server - - s->c: from cynagora server to client - - CACHEID: a 32 bits positive integer - - ID: a string - - EXPIRE: if missing, means: can cache forever - if '-', means: don't cache - if TIMESPEC (see below), means: valid until given relative time - - SEXPIRE: Same as EXPIRE but also allows TIMESPEC prefixed with '-', meaning - valid until given relative time and don't cache - -For TIMESPEC see notes. - -Messages --------- - -### hello - -synopsis: - - c->s cynagora 1 - s->c done 1 CACHEID - -The client present itself with the version of the protocol it expects to -speak (today version 1 only). The server answer yes with the acknoledged -version it will use and the CACHEID that identify the cache (see note on -CACHEID) - -If hello is used, it must be the first message. If it is not used, the -protocol implicitely switch to the default version. - - -### invalidate cache - -synopsis: - - s->c clear CACHEID - -The server ask the client to clear its cache and to start the cache whose -identifier is CACHEID - - -### test a permission - -synopsis: - - c->s test ID CLIENT SESSION USER PERMISSION - s->c (ack|yes|no) ID [EXPIRE] - -Check whether the permission is granted (yes) or not granted (no) -or undecidable without querying an agent (ack). - - -### check a permission - -synopsis: - - c->s check ID CLIENT SESSION USER PERMISSION - s->c (yes|no) ID [EXPIRE] - -Check whether the permission is granted (yes) or not granted (no) and invoke -agent if needed. - - -### enter critical (admin) - -synopsis: - - c->s enter - s->c done - -Start modifications (prior to set or drop). - - -### leave critical (admin) - -synopsis: - - c->s leave [commit|rollback] - s->c done|error ... - -Terminate modifications and commit it (commit) or cancel it (rollback). - - -### erase (admin) - -synopsis: - - c->s drop CLIENT SESSION USER PERMISSION - s->c done|error ... - -Drop the rule matching the given filter. - - -### set (admin) - -synopsis: - - c->s set CLIENT SESSION USER PERMISSION VALUE [SEXPIRE] - s->c done|error ... - -Create the rule as given. - - -### list permissions (admin): - -synopsis: - - c->s get CLIENT SESSION USER PERMISSION - s->c item CLIENT SESSION USER PERMISSION VALUE [SEXPIRE] - s->c ... - s->c done - -List the rules matching the given filter. - - -### logging set/get (admin) - -synopsis: - - c->s log [on|off] - s->c done (on|off) - -Tell to log or not the queries or query the current state. - - -### register agent (agent) - -synopsis: - - c->s agent NAME - s->c done|error ... - -Register the agent of NAME - - -### ask agent (agent): - -synopsis: - - s->c ask ASKID NAME VALUE CLIENT SESSION USER PERMISSION - c->s reply ASKID ([yes|no] [always|session|one-time|EXPIRE]) - -Receive an agent resolution request. - - -### sub check (agent): - -synopsis: - - c->s sub ASKID ID CLIENT SESSION USER PERMISSION - s->c (yes|no) ID [EXPIRE] - -Make a check in the context of an agent resolution. - - -Notes ------ - -### TIMESPEC - -The TIMESPEC describe a number of seconds in the futur relative to now. -It can be a simple decimal integer. I can also use letters to designate -year (letter `y`), week (letter `w`), day (letter `d`), hour (letter `h`), -minute (letter `m`), second (letter `s`). - -Examples: - - - 15d - - -### CACHEID - -The cacheid identify the current cache. It changes each time the database -changes. After a disconnection, clients can use HELLO to check whether their -version of cache is still valid. This is implemented by the default C library. - |