diff --git a/core-concepts/did-ddo.md b/core-concepts/did-ddo.md index 33a7a2b2..0cc87d54 100644 --- a/core-concepts/did-ddo.md +++ b/core-concepts/did-ddo.md @@ -219,39 +219,111 @@ During the publish process, file URLs must be encrypted with a respective _Provi where "files" contains one or more storage objects. -Type of objects supported : +**Type of objects supported:** -| Type | Description | Example | -| ----- | ---------------------------------------- | ----------------------------------------------------------------- | -| `url` | Static URL. Contains url and HTTP method |
[
| -| { | | | +**`URL`** + +Static URLs. + +Parameters: +* `url` - File url +* `method` - The HTTP method +* `headers` - Additional HTTP headers ``` -"type": "url", -"url": "https://url.com/file1.csv", -"method": "GET", -"headers": - [ - {"Authorization": "Bearer 123"}, - {"APIKEY": "124"}, - ] +{ + "type": "url", + "url": "https://url.com/file1.csv", + "method": "GET", + "headers": + [ + {"Authorization": "Bearer 123"}, + {"APIKEY": "124"}, + ] +} +``` + +**`IPFS`** + +The [Interplanetary File System](https://ipfs.tech/) (IPFS) is a distributed file storage protocol that allows computers all over the globe to store and serve files as part of a giant peer-to-peer network. Any computer, anywhere in the world, can download the IPFS software and start hosting and serving files. + +Parameters: +* `hash` - The file hash + +``` +{ + "type": "ipfs", + "hash": "XXX" +} +``` + +**`GraphQL`** + +[GraphQL](https://graphql.org/) is a query language for APIs and a runtime for fulfilling those queries with your existing data. + +Parameters: +* `url` - Server endpoint url +* `query` - The query to be executed + +``` +{ + "type": "graphql", + "url": "http://172.15.0.15:8000/subgraphs/name/oceanprotocol/ocean-subgraph", + "query": """query{ + nfts(orderBy: createdTimestamp,orderDirection:desc){ + id + symbol + createdTimestamp + } + }""" +} +``` + +**`On-Chain`** + +Use a smart contract as data source. + +Parameters: + +* `chainId` - The chainId used to query the contract +* `address` - The smartcontract address +* `abi` - The function abi (NOT the entire contract abi) + +``` +{ + "type": "smartcontract", + "address": "0x8149276f275EEFAc110D74AFE8AFECEaeC7d1593", + "abi": { + "inputs": [], + "name": "swapOceanFee", + "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], + "stateMutability": "view", + "type": "function", + } +} +``` + +**`Arweave`** + +[Arweave](https://www.arweave.org/) is a decentralized data storage that allows to permanently store files over a distributed network of computers. + +Parameters: +* `transactionId` - The transaction identifier + +``` +{ + { + "type": "arweave", + "transactionId": "a4qJoQZa1poIv5guEzkfgZYSAD0uYm7Vw4zm_tCswVQ", + } +} ``` -} ] | First class integrations supported in the future : - -| Type | Description | Example | -| ------ | ----------- | ----------------------------------------------------------------- | -| `ipfs` | IPFS files |
[
| -| { | | | - -``` -"type": "ipfs", -"hash": "XXX" -``` - -} ] | | `filecoin` | Filecoin storage | | | `arwave` | Arwave | | | `storj` | Storj | | | `sql` | Sql connection, dataset is generated by a query | | +**`Filecoin`** +**`Storj`** +**`SQL`** A service can contain multiple files, using multiple storage types.