anastasis

Credential backup and recovery protocol and service
Log | Files | Refs | Submodules | README | LICENSE

README (3055B)


      1 =============
      2 GNU ANASTASIS
      3 =============
      4 
      5 This package includes the Anastasis core logic.  The code is released
      6 under the GNU Affero General Public License (v3 or later).  See
      7 COPYING for details.
      8 
      9 Description
     10 ===========
     11 
     12 GNU Anastasis is a key backup and recovery tool from the GNU project.
     13 This package includes the backend run by the Anastasis providers as
     14 well as libraries for clients and a command-line interface.
     15 
     16 Installation instructions can be found in INSTALL and
     17 also in the handbook at https://docs.anastasis.lu/ which
     18 is also in the doc/ folder. Please note that you must run
     19 'make install' before you can run the testsuite using
     20 'make check'.
     21 
     22 
     23 Dependencies
     24 ============
     25 
     26 Build tools for compiling Anastasis from source:
     27 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     28 
     29 - gcc or clang
     30 - autoconf           >= 2.69        (building from git)
     31 - automake           >= 1.11.1      (building from git)
     32 - recutils           >= 1.0         (building from git)
     33 - libtool            >= 2.2
     34 - makeinfo           >= 4.8
     35 - make[*3]
     36 - pkgconf or pkg-config
     37 - sphinx
     38 - sphinx-rtd-theme
     39 - sphinx-multiversion
     40 
     41 
     42 Direct dependencies
     43 ~~~~~~~~~~~~~~~~~~~
     44 
     45 These are the direct dependencies for running Anastasis:
     46 
     47 - GNU Taler merchant >= 0.14.0
     48 - PostgreSQL         >= 15.0
     49 
     50 
     51 Directory structure
     52 ===================
     53 
     54 src/include/ includes installed (public) headers
     55 src/util/ implements helper and crypto routines
     56 src/backend/ contains the REST service
     57 src/stasis/ implements the database logic for the backend
     58 src/authorization/ contains various authorization plugins
     59 src/restclient/ implements a REST client for the backend
     60 src/lib/ implements the main client-side backup and recovery logic
     61 src/testing/ contains test cases for 'src/restclient/' and 'src/lib/'
     62 src/reducer/ implements a reducer API on top of 'src/lib/'
     63 src/cli/ includes a reducer-based command-line interface
     64 contrib/ contains resource files, like what identity attributes to ask for
     65 doc/ contains documentation files, like TeXinfo
     66 po/ internationalization via GNU gettext
     67 
     68 
     69 Development note
     70 ================
     71 
     72 To test against a local development service, add
     73 
     74 	{
     75 	    "code" : "xx",
     76 	    "name" : "Testland",
     77 	    "continent" : "Demoworld",
     78 	    "call_code" : "+00"
     79 	}
     80 
     81 to contrib/redux.countries.json, and also append something like
     82 
     83 	{
     84             "url" : "http://localhost:8086/",
     85             "restricted" : "xx"
     86 	},
     87 	{
     88             "url" : "http://localhost:8087/",
     89             "restricted" : "xx"
     90 	},
     91 	{
     92             "url" : "http://localhost:8088/",
     93             "restricted" : "xx"
     94 	},
     95 	{
     96             "url" : "http://localhost:8089/",
     97             "restricted" : "xx"
     98 	}
     99 
    100 to contrib/provider-list.json. Then the reducer will use these
    101 providers on loopback for the "testland" country.
    102 
    103 
    104 Experimental providers
    105 ======================
    106 
    107 We hope to have another provider running soon. Once it is operational,
    108 we should add
    109 
    110         {
    111             "url" : "https://v1.anastasis.openw3b.org/",
    112             "name" : "Openw3b Foundation, India"
    113         },
    114 
    115 to the contrib/provider-list.json.