REST API server for fetching and sharing DigiAssets transactions metadata. To learn how this repo fits into the DigiAssets stack please read the API docs & wiki.
$ npm i -g digiasset-metadata-server
Currently, the server uses AWS S3 storage service as a caching layer. So, in order to use the server one needs to set the environment variables:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_S3_BUCKET
Then, you can run the DigiAssets metadata server with the following options:
$ digiasset-metadata-server [options]
Options:
-h, --help output usage information
-V, --version output the version number
-p, --port <port> Port to listen on
Or just run it with the defaults using:
$ digiasset-metadata-server
GET /getMetadata
Query Parameters:
torrentHash
hex string of length 40, representing the SHA1 result of the origin metadata torrent filesha2
hex string of length 64, the SHA256 result of JSON.stringify()
of the origin metadataSuccess Response:
Code: 200 OK
Content: The origin metadata JSON
Error Response:
Code: 400 Bad Request
Content: "Can't get metadata"
In case no file which correponds to given torrentHash
and sha2
is found.
POST /addMetadata
Body Parameters:
metadata
JSONtoken
JWT encoded by secret given in environment variable JWTTOKENSECRET
. Decode is of the format {iss: 'admin', exp: 'expiration'}
.
If JWTTOKENSECRET
environment variable (or corresponding properties file field) is not given, this parameter is ignored.Success Response:
Code: 200 OK
Content: Object which consists of the following:
torrentHash
hex string of length 40, representing the SHA1 result of the origin metadata torrent filesha2
hex string of length 64, the SHA256 result of JSON.stringify()
of the origin metadataError Response:
Code: 401 Unauthorized
In case given token
is not as expected.
GET /shareMetadata
Query parameters
torrentHash
hex string of length 40, representing the SHA1 result of the origin metadata torrent filetoken
JWT encoded by secret given in environment variable JWTTOKENSECRET
. Decode is of the format {iss: 'admin', exp: 'expiration'}
.
If JWTTOKENSECRET
environment variable (or corresponding properties file field) is not given, this parameter is ignored.Success Response:
Code: 200 OK
Content: The metadata file which has torrent which corresponds to torrentHash
, is seeded to BitTorrent network.
Error Response:
Code: 401 Unauthorized
In case given token
is not as expected.
Code: 400 Bad Request
Content: "Can't share metadata"
In case no file which corresponds to torrentHash
is found.
Note: this call should be preceded by a call to POST /addMetadata
Default configuration per environment (NODE_ENV
value) can be found in the config
directory.
You can use custom properties by adding properties.conf
to that folder.
DigiAssets maintains a hosted version of this server at:
https://DigiAssets.net