πŸ““

Let’s get started

Let’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.

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:

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.