@sanalabs/cli
v0.1.3
Published
Sana CLI
Downloads
4
Readme
Sana CLI
Command line tool for syncing data with the Sana Learn API from JSON files.
Install
npm install -g @sanalabs/cli
This installs the command sana
.
Usage
Usage: sana [options] [command]
Sana Web API Wrapper
Options:
-v, --version output the version number
-h, --help output usage information
Commands:
upload-events [options] Upload user_events into Sana Web API
upload-assets [options] Upload assets into Sana Web API
upload-views [options] Upload views into Sana Web API
For each data type the json file should be as follows, where UserEventObject
, AssetObject
and ViewObject
are defined in the API documentation.
upload-events
{
"user_events": [ UserEventObject, ... ]
}
upload-assets
{
"assets": [ AssetObject, ... ]
}
upload-views
{
"views": [ ViewObject, ... ]
}
Full example
sana upload-assets --json-file content.json --api-key $API_KEY
sana upload-views --json-file content.json --api-key $API_KEY
content.json
:
{
"assets": [
{
"id": "asset_1",
"type": "exercise"
},
{
"id": "asset_2",
"type": "exercise"
},
{
"id": "asset_3",
"type": "exercise"
},
{
"id": "asset_4",
"type": "exercise"
}
],
"views": [
{
"id": "view_1",
"name": "Course 1",
"items": [
{
"asset_id": "asset_1",
"path": "/section_1",
"attributes": {
"partner_difficulty": 0.0
}
},
{
"asset_id": "asset_2",
"path": "/section_1",
"attributes": {
"partner_difficulty": 0.33
}
},
{
"asset_id": "asset_3",
"path": "/section_2",
"attributes": {
"partner_difficulty": 0.66
}
},
{
"asset_id": "asset_4",
"path": "/section_2",
"attributes": {
"partner_difficulty": 1.0
}
}
]
}
]
}
sana upload-events --json-file events.json --api-key $API_KEY
events.json
:
{
"user_events": [
{
"user": {
"id": "user_1",
"type": "tester"
},
"type": "response_submit",
"timestamp": "2019-06-25T21:59:53.740Z",
"is_offline_event": true,
"attributes": {
"view_id": "view_1",
"asset_id": "asset_1",
"result": "correct",
"score": 1,
"time_spent_ms": 60000
}
}
]
}
Requirements
Node.js v10 or later.
Develop and deploy
Publish new version:
npm version 1.2.3 # or manually update package.json and set git tag
git push --follow-tags
GitLab CI will automatically test and publish the package. See .gitlab-ci.yml
.