---
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
```