
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
This is a CLI wrapper around the Canvas LMS API
Installation requires Python 3.10
$ pip install canvas-api-cli
$ canvas --help
The config file should be located at $HOME/.config/canvas.toml
, and look something like this:
[instance]
default="<nickname>"
[instance.<nickname>]
domain="domain.instructure.com"
token="<API TOKEN>"
To test that it's configured properly you can execute
$ canvas get users/self
And confirm that the output is for your user
Each customer or entity that Instructure deals with is given their own Canvas instance with a unique domain name. Each instance is added to your configuration like so:
[instance.<nickname>]
domain="domain.instructure.com"
token="<API TOKEN>"
The Canvas instance to use can then be selected when running a query
$ canvas get users/self -i <nickname>
If no instance is specified then the default will be used. If the configuration does not have a default, then you must specific an instance with every query
[instance]
default="<nickname>"
[instance.<nickname>]
domain="domain.instructure.com"
token="<API TOKEN>"
You can query Canvas endpoints using the query
subcommand and it's aliases (get
, post
, put
and delete
)
$ canvas get <endpoint>
The endpoint
parameter will simply be the unique part of the API url.
For example: The URL: https://canvas.instructure.com/api/v1/accounts/:account_id/users
would be queried as
$ canvas get accounts/:account_id/users
Query Parameters are added using the -q
option
$ canvas get :course_id/assignments -q include[]=submission -q all_dates=true
The request body for POST or PUT requests is passed in via the -d
option
Either as a JSON string:
$ canvas put courses/:course_id/assignments/:assignment_id -d '
{
"assignment": {
"name": "New Test Name"
}
}
'
Or a filename
$ canvas put courses/:course_id/assignments/:assignment_id -d @file.json
When you pipe the output of canvas
to another program, syntax highlighting will not be added. This is convenient, because it allows you to pipe to other programs like jq
very easily.
Additionally, any info that is not the JSON response from Canvas is written to stderr
instead of stdout
, so you don't have to worry abou those
The JSON output will still be formatted. If you want to disable all of that you can use the --raw
flag
FAQs
Canvas LMS API wrapper
We found that canvas-api-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.