| 1 | {{{#!comment |
| 2 | = Configurable Job Server = |
| 3 | |
| 4 | == About the job server == |
| 5 | A job server is is an application server used to take control the arriving requests. |
| 6 | |
| 7 | The concept is similar to the 'Readers-writers problem'. If a new request is arrived to the server, the type of the request has to be determined. It can be a modifier or a non-modifier. If a request modify the database, then it is called modifier, else it is called non-modifier. After the type of the request has been determined, the permission of the execution should be limited, as described below. |
| 8 | A modifier can only be executed when nothing else is running. |
| 9 | A non-modifier can only not be executed when a modifier is running. |
| 10 | |
| 11 | == How to restrict the enabled user-level operations? |
| 12 | The blacklist is a list of denied operations. These operations can not be allowed to be run in any circumstances. The blacklist is loaded from a file, which is placed in ''data'' directory, is called ''ui_router_blacklist'' and is processed with ''file:consult'', during the initialization of the job server. |
| 13 | |
| 14 | A valid blacklist for example: |
| 15 | |
| 16 | {{{#!erlang |
| 17 | [add, drop, reset, add_dir, drop_dir]. |
| 18 | }}} |
| 19 | |
| 20 | If this blacklist is present, then nobody can add to / can delete anything from the database and noone can reset the database. |
| 21 | }}} |