aboutsummaryrefslogtreecommitdiffstats
path: root/src/cynagora-protocol.txt
blob: 29e5b3a5b978406f172f717c07bd68da4d044f3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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