Getting started
Let’s get startedTrack activityAdd studentsAdd resourcesGuides
WidgetWebhooksKnowledge base
LimitationsErrorsResourcesActivitiesF.A.Q.Legacy versions
Airlock 0.1Let’s get started
Dashboard
On the Woolf dashboard, developers can obtain access and secret keys, manage their subscriptions to events, and monitor data updates after calling API or SDK methods.
- To access your production dashboard, go to https://ams.woolf.university/sign-in.
- To access your sandbox dashboard, go to https://ams.x.university/sign-in.
Sandbox
Our sandbox provides colleges with an environment identical to production. This allows them to integrate our API and SDK without the risk of corrupting or damaging production data. It is a safe and secure way to test and integrate experimental features or breaking changes before we release them. Our goal is to make the integration experience as easy as possible. You can obtain access to our sandbox from your college administrators or ask our support team directly via support@woolf.university.
Switching between Sandbox and Production environments is easy. Simply change the API domain from https://x.university
to https://woolf.university
, and replace your College Token and College Secret with the production versions.
Links to Woolf Environments
- Sandbox API:
api.x.university/v1/
- Production API:
api.woolf.university/v1/
By default, each member college receives its own instance in our sandbox after signing the contract with Woolf. If you are not a member college but are interested in testing our product and its integration with your LMS, you can request access to our sandbox via support@woolf.university.
API Explorer in GraphiQL:
- Sandbox https://api.x.university/v1/graphiql
- Production https://api.woolf.university/v1/graphiql
API Authorization
We use Bearer Authentication. You need to add your College Token as a Bearer Token to the Authorization header in all queries and mutations to access protected data. College Token is signed by Woolf and acts on behalf of a college. They do not expire. If your secrets are leaked or you want to regenerate them, please contact our support team at support@woolf.university.
Authorization: Bearer <College Token>
To verify that authorization is working, query information about your college using the college
query.
query {
college {
id
name
status
}
}
SDK Authorization
NPM
npm i -S @woolfuniversity/sdk
Identity Verification helps ensure that one user cannot impersonate another during conversations between your LMS and our AMS. This is achieved by generating a client-side User Token based on the user’s ID. User Tokens are JWT tokens which act on behalf of user.
You can generate a User Token on your side by providing a college ID, user ID, and College Secret to a JWT signing library like jsonwebtoken
, or you can use the generateUserToken
mutation to generate it.
import jwt from "jsonwebtoken"
const COLLEGE_SECRET = "SECRET_KEY"
const token = jwt.sign(
{
id: "userId",
collegeId: "collegeId"
},
COLLEGE_SECRET
);
console.log("User Token", token)
mutation {
generateUserToken(id: $id)
}
You can now use the generated token to authorize the SDK instance. If everything goes well, you will receive access to a user
property with information about the identified user. Additionally, the Woolf Widget will automatically become visible on the page.
import { Woolf } from "@wooluniversity/sdk"
const woolf = await Woolf.create('userToken')
console.log(woolf.user)
The user
property includes a user's id
, name
, email
, and identityStatus
. If an authorized user is a student, their entity will also include a degrees
property with all of the student's degrees. Each object inside the array includes an application's id
, status
, qualificationStatus
, agreementStatus
, and other necessary properties such as degreeId
or degreeName
.
When you no longer require an SDK or wish to reinitialize its instance, use woolf.destroy()
- method effectively removes all event listeners associated with the Woolf SDK instance, helping to clean up resources and prevent memory leaks.
import { Woolf } from "@woolfuniversity/sdk"
const woolf = await Woolf.create('userToken')
woolf.destroy()
CDN
You can use a CDN to install the Airlock SDK on your platform. This will add the woolf
object to the window
and publish the woolf:created
event on the document
. This event will return the event with woolf
object when it finishes loading.
<script type="module" src="https://sdk.woolf.university/v1/latest?token=accessToken"></script>
document.addEventListener('woolf:created', (event) => { console.log(event.woolf.user) })
Switch to Sandbox Environment
If you would like to test the SDK in a sandbox environment, you need to pass the { env: 'sandbox' }
property to the Woolf.create
method.
import { Woolf } from "@woolfuniversity/sdk"
const woolf = await Woolf.create('userToken', { env: 'sandbox' })
console.log(woolf.env)
If you are using the CDN version, you can switch to the Sandbox environment by adding the options
property directly to the script src
.
<script
src="https://sdk.woolf.university/v1/latest?token=accessToken&options=%7B%22env%22%3A%22sandbox%22%7D"
></script>
Switch back to the production environment by replacing the value of sandbox
with university
.