Package Exports
- datapackage-query
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (datapackage-query) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
DataPackage Query
Opens datapackage.json and contained resource.csv files and performs various search queries on the contents.
npm install datapackage-queryGetting Started
Include package and perform a basic query with arguments. In this case the arguments are the type key and search
var Query = require('datapackage-query')
var arguments = { country: 'SY', 'search': 'DarkCo' }
Query.Grow('/path/to/your/datapackage.json', function(schema) {
Query.Twirl('/path/to/datapackage/', schema.resources[0], arguments, function(csv_to_json_data) {
// use your data for good :)
})
})Arguments
search filters results by wild card search term specified
key filters results by "key" in a datapackage's schema to the specified value of query
Examples
Here is an example of datapackage-query being used to power digitalfreedom.io website which creates a REST API using ConjurorAPI which exposes the data through the Hapi.js webserver.
Example: retrieve all surveillance vendors based in Germany:
curl "https://digitalfreedom.io/api/vendors?country=DE" | python -m json.toolExample: retrieve all targeted attacks related to Syria that have employed the DarkComet RAT:
curl "https://digitalfreedom.io/api/targetedthreats?country=SY&family=DarkCo" | python -m json.toolcurl "https://digitalfreedom.io/api/vendors?country=DE&search=Trojan" | python -m json.toolREST API Query Result
$ curl https://digitalfreedom.io/api/targetedthreats | python -m json.tool
{
"description": "Targeted attacks related to civil society",
"homepage": "",
"license": "PDDL-1.0",
"name": "data-targetedthreats",
"repository": "https://github.com/digitalfreedom/data-targetedthreats.git",
"result": [
{
"c2": "213.55.99.74",
"country": "ET",
"date": "2012-01-01",
"family": "FinSpy",
"md5": "8ae2febe04102450fdbc26a38037c82b",
"reference": "https://citizenlab.org/2013/03/you-only-click-twice-finfishers-global-proliferation-2/",
"target": "opposition"
},
{
"c2": "46.4.69.25",
"country": "ET",
"date": "2013-12-01",
"family": "RCS",
"md5": "53a9e1b59ff37cc2aeff0391cc546201",
"reference": "https://citizenlab.org/2014/02/hacking-team-targeting-ethiopian-journalists/",
"target": "journalist"
},
...
],
"status": "success",
"title": "Targeted Threats",
"version": "0.1.0"
}