aboutsummaryrefslogtreecommitdiffstats
path: root/src/cynagora-protocol.txt
diff options
context:
space:
mode:
authorJose Bollo <jose.bollo@iot.bzh>2019-11-04 12:02:03 +0100
committerJose Bollo <jose.bollo@iot.bzh>2019-11-04 12:03:31 +0100
commit3ab6b486ca043d237b89fe530cb10ca89b489344 (patch)
treeff6f4869febd31ea3944469d4b0888352e3a15bc /src/cynagora-protocol.txt
parent283c69816157ef11aa93d54ab454a3368f35919e (diff)
Improvement of documentation
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/cynagora-protocol.txt')
-rw-r--r--src/cynagora-protocol.txt184
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.
-