aboutsummaryrefslogtreecommitdiffstats
path: root/src/cynagora-protocol.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/cynagora-protocol.txt')
-rw-r--r--src/cynagora-protocol.txt83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/cynagora-protocol.txt b/src/cynagora-protocol.txt
new file mode 100644
index 0000000..29e5b3a
--- /dev/null
+++ b/src/cynagora-protocol.txt
@@ -0,0 +1,83 @@
+protocol
+========
+
+hello:
+
+ c->s cynagora 1
+ s->c yes 1 CACHEID
+
+invalidate cache:
+
+ s->c clear CACHEID
+
+test a permission:
+
+ c->s test CLIENT SESSION USER PERMISSION
+ s->c (done|yes|no) [EXPIRE]
+
+check a permission:
+
+ c->s check CLIENT SESSION USER PERMISSION
+ s->c (yes|no) [EXPIRE]
+
+enter critical (admin)
+
+ c->s enter
+ s->c done
+
+leave critical (admin)
+
+ c->s leave [commit|rollback]
+ s->c done|error ...
+
+erase (admin):
+
+ c->s drop CLIENT SESSION USER PERMISSION
+ s->c done|error ...
+
+set (admin):
+
+ c->s set CLIENT SESSION USER PERMISSION VALUE [EXPIRE]
+ s->c done|error ...
+
+list permissions (admin):
+
+ c->s get CLIENT SESSION USER PERMISSION
+ s->c item CLIENT SESSION USER PERMISSION VALUE [EXPIRE]
+ s->c ...
+ s->c done
+
+logging set/get (admin)
+
+ c->s log [on|off]
+ s->c done (on|off)
+
+register agent (agent):
+
+ c->s agent NAME [ARGS...]
+ s->c done|error ...
+
+ask agent (agent):
+
+ s->c ask NAME VALUE CLIENT SESSION USER PERMISSION
+ c->s done | ([yes|no] [always|session|one-time|EXPIRE])
+
+
+----------------------------------------------------------
+ c->s c(heck) CLIENT SESSION USER PERMISSION
+ c->s d(rop) CLIENT SESSION USER PERMISSION
+ c->s e(nter)
+ c->s g(et) CLIENT SESSION USER PERMISSION
+ c->s l(eave) [commit|rollback]
+ c->s r(cyn)
+ c->s s(et) CLIENT SESSION USER PERMISSION VALUE EXPIRE
+ c->s t(est) CLIENT SESSION USER PERMISSION
+
+ s->c clear
+ s->c done
+ s->c done [CLIENT SESSION USER PERMISSION VALUE]
+ s->c done|error ...
+ s->c item CLIENT SESSION USER PERMISSION VALUE EXPIRE
+ s->c done VALUE EXPIRE
+
+