-- adding logout and logout test
[bkell-clj.git] / etc / xml / bookkeeping.system.xml
blob74dfe2ad39330cbc7613408736fa47b7ebdb6af7
1 <?xml version='1.0' encoding='UTF-8'?>
2 <system xmlns='com/interrupt/bookkeeping' 
3                 xmlns:users='com/interrupt/bookkeeping/users' 
4                 xmlns:bkell='com/interrupt/bookkeeping/cc/bkell' 
5                 xmlns:command='com/interrupt/bookkeeping/cc/bkell/command' 
6                 xmlns:interpret='com/interrupt/bookkeeping/interpret' 
7                 xmlns:aauth='com/interrupt/bookkeeping/cc/bkell/aauth' 
8                 id='main.system' > 
9         
10         <!--    Authentication & Authorization information will not be given at this time.
11                         Should use an open, tested system for A & A. This is just an interface to that system. 
12         -->
13         <aauth:aauthentication id='main.authentication' sessiontimeout="6000" >
14                 
15                 <users:groups id="aauth.groups" >
16                         <users:group id="webkell" name="Webkell" owner="root" >
17                                 
18                                 <!-- for now, the account levels will be { FREE | PAID } 
19                                 --> 
20                                 <users:user id="root" />
21                         </users:group>
22                 </users:groups>
23                 
24                 
25                 <!-- actions that a user is allowed to do -->
26                 <users:users id="aauth.users" >
27                         
28                         <!-- this user has a default 10 minute session timeout period (1000 * 60 * 10 = 600'000 milliseconds) --> 
29                         <users:user id="root" username="root" password="password" logintimeout="600000" 
30                              accountLevel="FREE" defaultGroup='webkell' authenticated="" >
31                                 
32                                 <users:userSession id='' groupid='' userid='' >
33                                     <aauth:aauthentication />
34                                 </users:userSession>
35                                 <aauth:allowedActions id="root.allowedActions" >
36                                         <command:command name='create'  id='command.create' />
37                                         <command:command name='add'  id='command.add' />
38                                         <command:command name='remove'  id='command.remove' />
39                                         <command:command name='reverse'  id='command.reverse' />
40                                         <command:command name='find'  id='command.find' />
41                                         <command:command name='load'  id='command.load' />
42                                         <command:command name='list'  id='command.list' />
43                                         <command:command name='print'  id='command.print' />
44                                         <command:command name='commit'  id='command.commit' />
45                                         <command:command name='login'  id='command.login' />
46                                         <command:command name='logout'  id='command.logout' />
47                                         <command:command name='exit'  id='command.exit' />
48                                 </aauth:allowedActions>
49                                 
50                                 <users:profileDetails id='user.details' >
51                                         <users:profileDetail id='first.name' name='first.name' value='' />
52                                         <users:profileDetail id='last.name' name='last.name' value='' />
53                                         <users:profileDetail id='name' name='email' value='' />
54                                         <users:profileDetail id='country' name='country' value='' />
55                                 </users:profileDetails>
56                                 
57                         </users:user>
58                 </users:users>
59                 
60         </aauth:aauthentication>
61         
62         
63         <users:groups id="main.groups" >
64                 <users:group id="webkell" name="Webkell" owner="root" >
65                         
66                         <users:profileDetails id='group.details' >
67                                 <users:profileDetail id='defaultCurrency' name='defaultCurrency' value='' />
68                         </users:profileDetails>
69                         
70                         <bookkeeping 
71                                 xmlns='com/interrupt/bookkeeping'
72                                 xmlns:account='com/interrupt/bookkeeping/account' 
73                                 xmlns:journal='com/interrupt/bookkeeping/journal' 
74                                 xmlns:currency='com/interrupt/bookkeeping/currency' 
75                                 id='main.bookkeeping' > 
76                                 
77                                 
78                                 <!--
79                                         1. no 2 currencies can have the same 'id' 
80                                         2. An account MUST specify in which currency it is denominated 
81                                         3. Entry(s) should balance in the default currency unless otherwise specified 
82                                         4. DebitPointer(s) / Debit(s) must be put in Account(s) of the same currency 
83                                 --> 
84                                 <currency:currencies id='main.currencies' default='CDN' > 
85                                         <currency:currency id='CDN' name='Canadian Dollar' /> 
86                                         <currency:currency id='USD' name='US Dollar' /> 
87                                         <currency:currency id='BP' name='British Pound' /> 
88                                         <currency:currency id='EUR' name='Euoropean Euro' /> 
89                                         <currency:currency id='JPN' name='Japanese Yen' /> 
90                                 </currency:currencies>
91                                 
92                                 
93                                 <!-- 1. account types are: asset, liability, expense, revenue
94                                      2. each account has a given counter weight
95                                         
96                                         <account:account type="asset"           id="" name="" counterWeight="debit" />
97                                         <account:account type="expense"         id="" name="" counterWeight="debit" />
98                                         <account:account type="liability"       id="" name="" counterWeight="credit"/>
99                                         <account:account type="revenue"         id="" name="" counterWeight="credit" />
100                                 -->
101                             <account:accounts id='main.accounts' > 
102                                 <account:account type="asset" id="" name="" counterWeight="debit" />
103                                 </account:accounts>  
104                                 
105                                 <journal:journals id='main.journals' >
106                                     <journal:journal id='generalledger' name='generalledger' type='' balance=''>  
107                                                 <journal:entries id='main.entries' > 
108                                                         
109                                                         
110                                                         <journal:entry id='qwertySTUB' entrynum='' state='' journalid='generalledger' date='' currency='CDN' > 
111                                             <account:debit id='dtS' amount='120.00' entryid='qwertySTUB' accountid='05' account='' currency='CDN' /> 
112                                             <account:credit id='crS' amount='120.00' entryid='qwertySTUB' accountid='06' account='' currency='CDN' /> 
113                                         </journal:entry> 
114                                                         
115                                                 </journal:entries> 
116                                     </journal:journal>  
117                                 </journal:journals>
118                         </bookkeeping>
119                         
120                 </users:group>
121         </users:groups>
122         
123         
124         <users:groups id="group.attic" >
125         </users:groups>
126         
127         
128         <!-- The bkell(shell) sub-system
129         -->
130         <bkell:bkell id='bkell.main' >
131                 
132                 
133                 
134                 <!-- command results are put into a generic XML root -->
135                 <command:result />
136                 
137                 
138                 <!-- the memory sub-system, a list of user inputs -->
139                 <command:memory id='main.memory' >
140                         
141                         <command:variable name="" />
142                 </command:memory>
143                 
144                 
145                 <!-- these are the commands and all the tokens that command can use -->
146                 <command:commands id='commands.def' >
147                 
148                         <command:command name='create'  id='command.create' >
149                                 
150                                 <command:tokens id='create.tokens' >
151                                         
152                                         <command:token name='system' />
153                                         <command:token name='debit' />
154                                         <command:token name='credit' />
155                                         <command:token name='entry' />
156                                         <command:token name='entries' />
157                                         <command:token name='journal' />
158                                         <command:token name='journals' />
159                                         <command:token name='transaction' />
160                                         <command:token name='account' />
161                                         <command:token name='accounts' />
162                                         <command:token name='user' />
163                                         <command:token name='users' />
164                                         
165                                         <command:token name='group' />
166                                         <command:token name='groups' />
167                                         <command:token name='allowedActions' />
168                                         <command:token name='command' />
169                                         <command:token name='profileDetails' />
170                                         <command:token name='profileDetail' />
171                                         <command:token name='userSession' />
172                                         
173                                 </command:tokens>
174                                 <command:tokenLiterals id='input.tokens' />
175                         </command:command>
176                         
177                         
178                         <command:command name='add'  id='command.add' />
179                         <command:command name='remove'  id='command.remove' />
180                         <command:command name='reverse'  id='command.reverse' />
181                         
182                         <command:command name='find'  id='command.find' >
183                                 
184                                 <command:tokens id='find.tokens' >
185                                         
186                                         <command:token name='system' />
187                                         <command:token name='debit' />
188                                         <command:token name='credit' />
189                                         <command:token name='entry' />
190                                         <command:token name='entries' />
191                                         <command:token name='journal' />
192                                         <command:token name='journals' />
193                                         <command:token name='transaction' />
194                                         <command:token name='account' />
195                                         <command:token name='accounts' />
196                                         <command:token name='user' />
197                                         <command:token name='users' />
198                                         
199                                         <command:token name='group' />
200                                         <command:token name='groups' />
201                                         <command:token name='allowedActions' />
202                                         <command:token name='command' />
203                                         <command:token name='profileDetails' />
204                                         <command:token name='profileDetail' />
205                                         <command:token name='userSession' />
206                                         
207                                 </command:tokens>
208                         </command:command>
209                         <command:command name='load'  id='command.load' >
210                                 
211                                 <command:tokens id='load.tokens' >
212                                         
213                                         <command:token name='system' />
214                                         <command:token name='debit' />
215                                         <command:token name='credit' />
216                                         <command:token name='entry' />
217                                         <command:token name='entries' />
218                                         <command:token name='journal' />
219                                         <command:token name='journals' />
220                                         <command:token name='transaction' />
221                                         <command:token name='account' />
222                                         <command:token name='accounts' />
223                                         <command:token name='user' />
224                                         <command:token name='users' />
225                                         
226                                         <command:token name='group' />
227                                         <command:token name='groups' />
228                                         <command:token name='allowedActions' />
229                                         <command:token name='command' />
230                                         <command:token name='profileDetails' />
231                                         <command:token name='profileDetail' />
232                                         <command:token name='userSession' />
233                                         
234                                 </command:tokens>
235                         </command:command>
236                         <command:command name='list'  id='command.list' >
237                                 
238                                 <command:tokens id='list.tokens' >
239                                         
240                                         <command:token name='system' />
241                                         <command:token name='debit' />
242                                         <command:token name='credit' />
243                                         <command:token name='entry' />
244                                         <command:token name='entries' />
245                                         <command:token name='journal' />
246                                         <command:token name='journals' />
247                                         <command:token name='transaction' />
248                                         <command:token name='account' />
249                                         <command:token name='accounts' />
250                                         <command:token name='user' />
251                                         <command:token name='users' />
252                                         
253                                         <command:token name='group' />
254                                         <command:token name='groups' />
255                                         <command:token name='allowedActions' />
256                                         <command:token name='command' />
257                                         <command:token name='profileDetails' />
258                                         <command:token name='profileDetail' />
259                                         <command:token name='userSession' />
260                                         
261                                 </command:tokens>
262                         </command:command>
263                         <command:command name='commit'  id='command.commit' >
264                                 
265                                 <command:tokens id='find.tokens' >
266                                         
267                                         <command:token name='system' />
268                                         <command:token name='debit' />
269                                         <command:token name='credit' />
270                                         <command:token name='entry' />
271                                         <command:token name='entries' />
272                                         <command:token name='journal' />
273                                         <command:token name='journals' />
274                                         <command:token name='transaction' />
275                                         <command:token name='account' />
276                                         <command:token name='accounts' />
277                                         <command:token name='user' />
278                                         <command:token name='users' />
279                                         
280                                         <command:token name='group' />
281                                         <command:token name='groups' />
282                                         <command:token name='allowedActions' />
283                                         <command:token name='command' />
284                                         <command:token name='profileDetails' />
285                                         <command:token name='profileDetail' />
286                                         <command:token name='userSession' />
287                                         
288                                 </command:tokens>
289                         </command:command>
290                         <command:command name='login'  id='command.login' >
291                                 <command:tokens id='list.tokens' >
292                                         
293                                         <command:token name='user' />
294                                         
295                                 </command:tokens>
296                         </command:command>
297                         
298                         <command:command name='logout'  id='command.logout' />
299                         <command:command name='exit'  id='command.exit' />
300                         
301                                                 
302                 </command:commands>
303                 
304                 
305                 
306                 
307                 
308                 <!-- The definitions of all the tokens and thier possible options
309                 -->
310                 <command:tokens id='tokens.def' >
311                         
312                         
313                         <command:token name='debit' optionRequired='false' >
314                                 
315                                 <command:optionSet id='oset' >
316                                         
317                                         <command:options id='entry.option' >
318                                                 <command:option name='entryid' value='0876-42356523-2456' />
319                                                 <command:option name='accountid' value='tims-34577143' />
320                                                 <command:option name='amount' value='155000.00' />
321                                         </command:options>
322                                         <command:options id='entryid.single.option' >
323                                                 <command:option name='entryid' value='' />
324                                         </command:options>
325                                         <command:options id='accountid.single.option' >
326                                                 <command:option name='accountid' value='' />
327                                         </command:options>
328                                         <command:options id='amount.single.option' >
329                                                 <command:option name='amount' value='' />
330                                         </command:options>
331                                         <command:options id='id.single.option' >
332                                                 <command:option name='id' value='' />
333                                         </command:options>
334                                         
335                                 </command:optionSet>
336                         </command:token>
337                         
338                         
339                         <command:token name='credit' optionRequired='false' >
340                                 
341                                 <command:optionSet id='oset' >
342                                         
343                                         <command:options id='entry.option' >
344                                                 <command:option name='entryid' value='' />
345                                                 <command:option name='accountid' value='' />
346                                                 <command:option name='amount' value='' />
347                                         </command:options>
348                                         <command:options id='entryid.single.option' >
349                                                 <command:option name='entryid' value='' />
350                                         </command:options>
351                                         <command:options id='accountid.single.option' >
352                                                 <command:option name='accountid' value='' />
353                                         </command:options>
354                                         <command:options id='amount.single.option' >
355                                                 <command:option name='amount' value='' />
356                                         </command:options>
357                                         <command:options id='id.option' >
358                                                 <command:option name='id' value='' />
359                                         </command:options>
360                                         
361                                 </command:optionSet>
362                         </command:token>
363                         
364                         
365                         <command:token name='entry' optionRequired='false' >
366                                 
367                                 <command:optionSet id='oset' >
368                                         
369                                         <command:options id='entrynum.option' >
370                                                 <command:option name='entrynum' value='' />
371                                                 <command:option name='journal' value='' />
372                                                 <command:option name='date' value='' />
373                                         </command:options>
374                                         <command:options id='entrynum.single.option' >
375                                                 <command:option name='entrynum' value='' />
376                                         </command:options>
377                                         <command:options id='journal.single.option' >
378                                                 <command:option name='journal' value='' />
379                                         </command:options>
380                                         <command:options id='date.single.option' >
381                                                 <command:option name='date' value='' />
382                                         </command:options>
383                                         <command:options id='id.single.option' >
384                                                 <command:option name='id' value='' />
385                                         </command:options>
386                                         
387                                 </command:optionSet>
388                         </command:token>
389                         
391                         <command:token name='journal' optionRequired='false' >
392                                 
393                                 <command:optionSet id='oset' >
394                                         
395                                         <command:options id='name.option' >
396                                                 <command:option name='name' value='' />
397                                         </command:options>
398                                         <command:options id='id.option' >
399                                                 <command:option name='id' value='' />
400                                         </command:options>
401                                         
402                                 </command:optionSet>
403                         </command:token>
404                         
405                         
406                         
407                         <command:token name='transaction' optionRequired='false' >
408                                 
409                                 <command:optionSet id='oset' >
410                                         
411                                         <command:options id='name.option' >
412                                                 <command:option name='name' value='' />
413                                         </command:options>
414                                         <command:options id='id.option' >
415                                                 <command:option name='id' value='' />
416                                         </command:options>
417                                         
418                                 </command:optionSet>
419                         </command:token>
420                         
421                         
422                         
423                         <command:token name='account' optionRequired='false' >
424                                 
425                                 <command:optionSet id='oset' >
426                                         
427                                         <command:options id='cweight.option' >
428                                                 <command:option name='name' value='' />
429                                                 <command:option name='type' value='' />
430                                                 <command:option name='counterWeight' value='' />
431                                                 
432                                         </command:options>
433                                         <command:options id='name.single.option' >
434                                                 <command:option name='name' value='' />
435                                         </command:options>
436                                         <command:options id='id.single.option' >
437                                                 <command:option name='id' value='' />
438                                         </command:options>
439                                         
440                                 </command:optionSet>
441                         </command:token>
442                         
443                         
444                 </command:tokens>
445                 
446         </bkell:bkell>
448 </system>