aip | title | author | type | category | status | created | dependencies |
---|---|---|---|---|---|---|---|
2 |
Format of manifest.json DApp file |
Roman Kuznetsov <Xo66uT.kr@gmail.com> |
Standards Track |
Networking |
Draft |
2018-10-04 |
It's very important to think through and approve format of manifest.json file. Information from it will be used at DApp marketplace Smart Contract, stored at IPFS search index for marketplace and others part of Array.io ifrastructure.
We can divide parameters on groups:
- Used in external systems. Such parameters as name, author_key, stored at Smart Contract.
- Used in internal system (Array.io client). Such as index view file, main js file and others. Why we need this separation? Because to the format of the internal parameter is affected by Client code. But when we descibes external parameters we need ti take into consideration how external systems used this parameters.
The motivation is simple, think it all out now so that later there are no problems. Change format in the future may cause a lot of troubles.
DApp must provide information for Client application how to install it, what permissions it needed and how it showing marketplace catalog. For this conditions in the DApp archive developer must provide information file - manifest.json.
The file is array dictionary, whose contents are a set of keys and values describing different aspects of the DApp. The system uses these keys and values to obtain information about your DApp and how it is configured. All information for The file contents are structured using JSON. By convention, the name of an information list file is manifest.json. This name of this file is case sensitive and must have an initial lowercase letter m. In Array.io DApps, this file resides in the top-level of the DApp archive directory.
Manifest required parameters:
parameter_name | type and size | description | example | issue link |
---|---|---|---|---|
title |
varchar(30) | uniq name for DApp | "Tic Tac Toe" | https://github.com/arrayio/array-io-client/issues/8 |
author |
varchar(80) | author name and email | "Roman Kuznetsov Xo66uT.kr@gmail.com" | issue link |
version |
varchar(5) | current version of DApp archive | "1.0.0" | https://github.com/arrayio/array-io-client/issues/14 |
description |
varchar(255) | text description what DApp do. | "This is a good game for all" | issue link |
permissions |
array | parameters for get access to system Controllers | "['web', 'log']" | issue link |
license |
varchar(50) | information About DAPP license type | "GPLv3, LGPLv3, MIT[1][2]" | issue link |
index |
varchar(255) | path of DApp main view file | "index.html" | issue link |
main |
varchar(255) | path of DApp main js file | "main.js" | issue link |
icon |
varchar(255) | path of DApp main icon file. Size 42px on 42px. | "favicon.png" | issue link |
thumb |
varchar(255) | path of DApp main thumb file. Size 300px on 120px. | "thumb.png" | issue link |
default_language |
varchar(5) | The default language that defines the country of the marketplace | "ru-RU" | https://github.com/arrayio/array-io-client/issues/8 |
Manifest optional parameters:
parameter_name | type and size | description | example | issue link |
---|---|---|---|---|
tags |
array | parameters for help search DApp at marketplace. | "['work', 'tools']" | issue link |
dependencies |
array | information About DAPP dependency from other packages | "{'colors': '^1.1.2', 'concat-stream': '^1.5.0'}" | issue link |
Manifest file also used in google play and app store marketplaces. We must pay attention to theirs AndroidManifest.xml and info.plist files.
Copyright and related rights waived via CC0.