clean markdown documentation
[src/app-framework-main.git] / docs / 5.1-application-framework.md
1 # Comparison to other frameworks
2
3 - Tizen framework
4 - xdg-app
5 - ostro
6
7 ## Organization of directory of applications
8
9 The main path for applications are: APPDIR/PKGID/VER.
10
11 Where:
12
13 - APPDIR is as defined above
14 - PKGID is a directory whose name is the package identifier
15 - VER is the version of the package MAJOR.MINOR
16
17 The advantage of such an organization is to allow several versions to live together.  
18 This is required for multiple reasons (ie: roll back) and to comply with developers habits.
19
20 ### Identity of installed files
21
22 All the files are installed as user "userapp" and group "userapp".  
23 All files have rw(x) for user and r-(x) for group and others.
24
25 This allows any user to read files.
26
27 ### Labeling the directories of applications
28
29 ## Organization of data
30
31 The data of a user are contain within its directory and are labeled using the application labels
32
33 ## Setting Smack rules for the application
34
35 For Tizen, the following rules are set by the security manager for each application.
36
37     System ~APP~             rwx
38     System ~PKG~             rwxat
39     System ~PKG~::RO         rwxat
40     ~APP~  System            wx
41     ~APP~  System::Shared    rxl
42     ~APP~  System::Run       rwxat
43     ~APP~  System::Log       rwxa
44     ~APP~  _                 l
45     User   ~APP~             rwx
46     User   ~PKG~             rwxat
47     User   ~PKG~::RO         rwxat
48     ~APP~  User              wx
49     ~APP~  User::Home        rxl
50     ~APP~  User::App::Shared rwxat
51     ~APP~  ~PKG~             rwxat
52     ~APP~  ~PKG~::RO         rxl
53
54 Here, ~PKG~ is the identifier of the package and ~APP~ is the identifier of the application.
55
56 ## What user can run an application`?`
57
58 Not all user are able to run all applications.  
59 How to manage that?
60
61 [meta-intel]:       https://github.com/01org/meta-intel-iot-security                "A collection of layers providing security technologies"
62 [widgets]:          http://www.w3.org/TR/widgets                                    "Packaged Web Apps"
63 [widgets-digsig]:   http://www.w3.org/TR/widgets-digsig                             "XML Digital Signatures for Widgets"
64 [libxml2]:          http://xmlsoft.org/html/index.html                              "libxml2"
65 [openssl]:          https://www.openssl.org                                         "OpenSSL"
66 [xmlsec]:           https://www.aleksey.com/xmlsec                                  "XMLSec"
67 [json-c]:           https://github.com/json-c/json-c                                "JSON-c"
68 [d-bus]:            http://www.freedesktop.org/wiki/Software/dbus                   "D-Bus"
69 [libzip]:           http://www.nih.at/libzip                                        "libzip"
70 [cmake]:            https://cmake.org                                               "CMake"
71 [security-manager]: https://wiki.tizen.org/wiki/Security/Tizen_3.X_Security_Manager "Security-Manager"
72 [app-manifest]:     http://www.w3.org/TR/appmanifest                                "Web App Manifest"
73 [tizen-security]:   https://wiki.tizen.org/wiki/Security                            "Tizen security home page"
74 [tizen-secu-3]:     https://wiki.tizen.org/wiki/Security/Tizen_3.X_Overview         "Tizen 3 security overview"