summaryrefslogtreecommitdiff
path: root/docs/design/tapicero.md
blob: 359ee1574a0fe0b233b312f9a90808127dc28f6e (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
Tapicero - Creating per user databases on the couch for soledad
------------------------------------------------------------

``tapicero`` is a daemon that creates per user databases when users are added to the LEAP Platform. It watches the changes made to the users database and creates new databases accordingly. This way soledad does not need admin privileges.

"Tapicero" is spanish for upholsterer - the person who creates your couch.

This program is written in Ruby and is distributed under the following license:

> GNU Affero General Public License
> Version 3.0 or higher
> http://www.gnu.org/licenses/agpl-3.0.html

Installation
---------------------

Prerequisites:

    sudo apt-get install ruby ruby-dev couchdb
    # for development, you will also need git, bundle, and rake.

From source:

    git clone git://leap.se/tapicero
    cd tapicero
    bundle
    rake build
    sudo rake install

From gem:

    sudo gem install tapicero

Running
--------------------

Run in foreground to see if it works:

    tapicero run -- test/config/config.yaml
    create a new record in the users database
    observe /var/log/syslog or the logfile you specified

Run as a deamon:

    tapicero start
    tapicero stop

Run once and then exit:

    tapicero --run-once
    This will create per user databases for all users created since
    the last run and then exit.

Flags
---------------------

--run-once:
  process the existing users and then exit

--rerun:
  also work on users that have been processed before

--overwrite-security:
  write the security settings even if the user database already has some

Combining these flags you can migrate the security settings of all existing per user databases.


Configuration
---------------------

``tapicero`` reads the following configurations files, in this order:

* ``$(tapicero_source)/config/default.yaml``
* ``/etc/leap/tapicero.yaml``
* Any file passed to ARGV like so ``tapicero start -- /etc/tapicero.yaml