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