---
# System prepended metadata

title: SIFIS App manifest
tags: [' hazards', wp2]

---

---
tags: wp2, hazards
title: SIFIS App manifest
---


# Application Manifest for SIFIS-compliant applications

## How to create a manifest in Android
https://developer.android.com/guide/topics/manifest/manifest-intro

## Original idea for manifest

Please read [this](https://iris.polito.it/retrieve/handle/11583/2933592/532216/SIFIS_Preprint.pdf)

## Main ideas

- The applications live sandboxed and have only a restricted API provided by the sifis library.
- The sifis library is just a rpc shim that contacts a sifis-runtime
- The Application provides a manifest for the App Store with details on what it would like to do.

## Possible Actions

- Public Network Access
- Storage Access
- ~~Device access (e.g. local Microphone or Camera)~~ later
- Access/Control over Connected Things

## Manifest

Every action has an hazard, some are implicit (e.g. Public Network Access is a privacy risk), other have to be stated explicitly, possibly filtering over kind of Things supported.

``` toml
[sifis]
some_metadata_1 = " "
some_metadata_2 = " "

some_metadata_n = " "

[access.things]
# Specify properties and actions hazards for a specific device, in this case a lamp
lamp = ["fire", "energy", ...]
# Specify access privileges of events for a specific device, in this case an oven
oven = { events = { access = "ro" } }

[access.storage]
# Resource name which will be saving the data produced by an application. 
# It requires a specific path and access privileges.
# ro stands for `read only`
# rw stands for `read write`
# public defines a resource which is accessible by different users
resource_name = { path = "..", access = "rw" }
other_resource = { path = "..", access = "ro" }
shared = { path = "", access = "ro", public = true }

[access.network]
# Unrestricted access to the network (defined in the paper above)
all = true
```
