Built and signed on GitHub ActionsBuilt and signed on GitHub Actions
oneroster
Developer-friendly & type-safe Typescript SDK specifically catered to leverage oneroster API.
This SDK is not yet ready for production use. To complete setup please follow the steps outlined in your workspace. Delete this section before > publishing to a package manager.
Summary
OneRoster API: # Authentication
All endpoints require authentication using the Authorization: Bearer <token>
header.
The token can be obtained with:
curl -X POST https://alpha-auth-production-idp.auth.us-west-2.amazoncognito.com/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=<your-client-id>&client_secret=<your-client-secret>"
Use the correct IDP server depending on the environment you're using:
-
Production Server:
https://alpha-auth-production-idp.auth.us-west-2.amazoncognito.com
-
Staging Server:
https://alpha-auth-development-idp.auth.us-west-2.amazoncognito.com
Reach out to the platform team to get a client/secret pair for your application.
Pagination
Our API uses offset pagination for list endpoints. Paginated responses include the following fields:
offset
: Offset for the next page of resultslimit
: Number of items per page (default: 100)
Example request:
GET /ims/oneroster/rostering/v1p2/users?offset=20&limit=20
All listing endpoints support offset pagination.
Filtering
All listing endpoints support filtering using the filter
query parameter, following 1EdTech's filtering specification.
The filter should be a string with the following format:
?filter=[field][operator][value]
Example request:
GET /ims/oneroster/rostering/v1p2/users?filter=status='active'
Example request with multiple filters:
GET /ims/oneroster/rostering/v1p2/users?filter=status='active' AND name='John'
Filtering by nested relations is not supported.
Sorting
All listing endpoints support sorting using the sort
and orderBy
query parameters, following 1EdTech's sorting specification
Example request:
GET /ims/oneroster/rostering/v1p2/users?sort=lastName&orderBy=asc
Table of Contents
SDK Installation
To finish publishing your SDK to npm and others you must run your first generation action.
The SDK can be installed with either npm, pnpm, bun or yarn package managers.
NPM
npm add <UNSET>
PNPM
pnpm add <UNSET>
Bun
bun add <UNSET>
Yarn
yarn add <UNSET> zod # Note that Yarn does not install peer dependencies automatically. You will need # to install zod as shown above.
This package is published with CommonJS and ES Modules (ESM) support.
Model Context Protocol (MCP) Server
This SDK is also an installable MCP server where the various SDK methods are exposed as tools that can be invoked by AI applications.
Node.js v20 or greater is required to run the MCP server from npm.
Claude installation steps
Add the following server definition to your claude_desktop_config.json
file:
{ "mcpServers": { "OneRoster": { "command": "npx", "args": [ "-y", "--package", "oneroster", "--", "mcp", "start", "--client-id", "...", "--client-secret", "...", "--token-url", "..." ] } } }
Cursor installation steps
Create a .cursor/mcp.json
file in your project root with the following content:
{ "mcpServers": { "OneRoster": { "command": "npx", "args": [ "-y", "--package", "oneroster", "--", "mcp", "start", "--client-id", "...", "--client-secret", "...", "--token-url", "..." ] } } }
You can also run MCP servers as a standalone binary with no additional dependencies. You must pull these binaries from available Github releases:
curl -L -o mcp-server \ https://github.com/{org}/{repo}/releases/download/{tag}/mcp-server-bun-darwin-arm64 && \ chmod +x mcp-server
If the repo is a private repo you must add your Github PAT to download a release -H "Authorization: Bearer {GITHUB_PAT}"
.
{ "mcpServers": { "Todos": { "command": "./DOWNLOAD/PATH/mcp-server", "args": [ "start" ] } } }
For a full list of server arguments, run:
npx -y --package oneroster -- mcp start --help
Requirements
For supported JavaScript runtimes, please consult RUNTIMES.md.
SDK Example Usage
Example
import { OneRoster } from "oneroster"; const oneRoster = new OneRoster({ security: { clientID: process.env["ONEROSTER_CLIENT_ID"] ?? "", clientSecret: process.env["ONEROSTER_CLIENT_SECRET"] ?? "", }, }); async function run() { const result = await oneRoster.scoreScales.list(); // Handle the result console.log(result); } run();
Authentication
Per-Client Security Schemes
This SDK supports the following security scheme globally:
Name | Type | Scheme | Environment Variable |
---|---|---|---|
clientID clientSecret |
oauth2 | OAuth2 Client Credentials Flow | ONEROSTER_CLIENT_ID ONEROSTER_CLIENT_SECRET ONEROSTER_TOKEN_URL |
You can set the security parameters through the security
optional parameter when initializing the SDK client instance. For example:
import { OneRoster } from "oneroster"; const oneRoster = new OneRoster({ security: { clientID: process.env["ONEROSTER_CLIENT_ID"] ?? "", clientSecret: process.env["ONEROSTER_CLIENT_SECRET"] ?? "", }, }); async function run() { const result = await oneRoster.scoreScales.list(); // Handle the result console.log(result); } run();
Available Resources and Operations
Available methods
academicSessions
- getAll - Get all academic sessions
- create - Create an academic session
- get - Get an academic session
- update - Update an academic session
- delete - Delete an academic session
assessmentLineItems
- getAll - The REST read request message for the getAllAssessmentLineItems() API call.
- create - The REST create request message for the createAssessmentLineItem() API call.
- get - The REST read request message for the getAssessmentLineItem() API call.
- update - The REST update request message for the updateAssessmentLineItem() API call.
- delete - The REST delete request message for the deleteAssessmentLineItem() API call.
assessmentResults
- getAll - The REST read request message for the getAllAssessmentResults() API call.
- create - The REST create request message for the createAssessmentResult() API call.
- get - The REST read request message for the getAssessmentResult() API call.
- update - The REST update request message for the updateAssessmentResult() API call.
- delete - The REST delete request message for the deleteAssessmentResult() API call.
categories
- getAll - The REST read request message for the getAllCategories() API call.
- create - The REST create request message for the createCategory() API call.
- get - The REST read request message for the getCategory() API call.
- update - The REST update request message for the updateCategory() API call.
- delete - The REST delete request message for the deleteCategory() API call.
classes
- createResults - Create results for an academic session in a class
- listLineItems - Get line items for a class
- createLineItem - Create a line item for a class
- getStudentResults - Get results for a specific student in a class
- getCategories - Get categories for a class
- getScoreScales - Get score scales for a class
- listResources - Get resources for a class
- getTeachers - Get teachers for a specific class in a school
- getAll - Get all classes
- create - Create a new class
- getStudents - Get students for a class
- addStudent - Add a student to a class
- addTeacher - Add a teacher to a class
- get - Get a specific class
- update - Update a class
- delete - Delete a class
classes.results
- getForLineItem - Get results for a specific line item in a class
- get - Get results for a class
classResources
- delete - Remove a resource from a class
classTeachers
- getAll - Get teachers for a class
componentResources
- getAll - Get All Component Resources
courseClasses
- getAll - Get Classes For Course
courseComponents
courseResources
- delete - Remove a resource from a course
courses
- getResources - Get resources for a course
- assignResource - Assign a resource to a course
- getAll - Get All Courses
- create - Create Course
- get - Get Course
- update - Update Course
- delete - Delete Course
- createComponentResource - Create Component Resource
- getComponentResource - Get Component Resource
- updateComponentResource - Update Component Resource
- deleteComponentResource - Delete Component Resource
- createComponent - Create Course Component
- getComponent - Get Course Component
- updateComponent - Update Course Component
demographics
- getAll - Get all demographics records
- create - Create a new demographics record
- get - Get a specific demographics record
- update - Update a demographics record
- delete - Delete a demographics record
enrollments
- getAll - Get all enrollments
- create - Create a new enrollment
- get - Get a specific enrollment
- update - Update an enrollment
- delete - Delete an enrollment
- getForClass - Get enrollments for a specific class in a school
gradingPeriods
- getAll - Get all grading periods
- create - Create a new grading period
- get - Get a specific grading period
- update - Update a grading period
- delete - Delete a grading period
- createForTerm - Create a new grading period for a term
lineItems
- list - Get all line items
- create - Create a new line item
- get - Get a specific line item
- update - Update an existing line item
- delete - Delete a line item
organizations
- getAll - Get all organizations
- create - Create an organization
- get - Get a specific organization
- update - Update an organization
- delete - Delete an organization
resources
- getAll - Get all resources
- create - Create a new resource
- get - Get a specific resource
- update - Update an existing resource
- delete - Delete a resource
resources.classes
- assign - Assign a resource to a class
results
- getAll - Get all results
- create - Create a new result
- get - Get a specific result
- update - Update an existing result
- delete - Delete a result
- createForLineItem - Create a new result for a line item
schoolLineItems
- get - Get line items for a school
schools
- getAll - Get all schools
- create - Create a new school
- getStudents - Get all students for a school
- getTeachers - Get all teachers for a school
- getTerms - Get all terms for a school
- get - Get a single school
- update - Update a school
- delete - Delete a school
- getEnrollments - Get all enrollments for a school
- getClasses - Get all classes for a school
schools.courses
- getAll - Get all courses for a school
schools.lineItems
- create - Create line items for a school
schoolsScoreScales
- get - Get score scales for a school
scoreScales
- list - Get all score scales
- create - Create a new score scale
- get - Get a specific score scale
- update - Update an existing score scale
- delete - Delete a score scale
students
- getAll - Get all students
- get - Get a specific student
- getForClass - Get students for a specific class in a school
students.classes
- get - Get classes for a student
teachers
- getAll - Get all teachers
- get - Get a specific teacher
- getClasses - Get classes for a teacher
terms
- list - Get all terms
- get - Get a specific term
- getGradingPeriods - Get grading periods for a term
- getClasses - Get classes for a term
userResources
- remove - Remove a resource from a user
users
- getResources - Get resources for a user
- assignResource - Assign a resource to a user
- getAll - Get all users
- create - Create a new user
- get - Get a specific user
- update - Update an existing user
- delete - Delete a user
- getClasses - Get classes for a user
Standalone functions
All the methods listed above are available as standalone functions. These functions are ideal for use in applications running in the browser, serverless runtimes or other environments where application bundle size is a primary concern. When using a bundler to build your application, all unused functionality will be either excluded from the final bundle or tree-shaken away.
To read more about standalone functions, check FUNCTIONS.md.
Available standalone functions
academicSessionsCreate
- Create an academic sessionacademicSessionsDelete
- Delete an academic sessionacademicSessionsGet
- Get an academic sessionacademicSessionsGetAll
- Get all academic sessionsacademicSessionsUpdate
- Update an academic sessionassessmentLineItemsCreate
- The REST create request message for the createAssessmentLineItem() API call.assessmentLineItemsDelete
- The REST delete request message for the deleteAssessmentLineItem() API call.assessmentLineItemsGet
- The REST read request message for the getAssessmentLineItem() API call.assessmentLineItemsGetAll
- The REST read request message for the getAllAssessmentLineItems() API call.assessmentLineItemsUpdate
- The REST update request message for the updateAssessmentLineItem() API call.assessmentResultsCreate
- The REST create request message for the createAssessmentResult() API call.assessmentResultsDelete
- The REST delete request message for the deleteAssessmentResult() API call.assessmentResultsGet
- The REST read request message for the getAssessmentResult() API call.assessmentResultsGetAll
- The REST read request message for the getAllAssessmentResults() API call.assessmentResultsUpdate
- The REST update request message for the updateAssessmentResult() API call.categoriesCreate
- The REST create request message for the createCategory() API call.categoriesDelete
- The REST delete request message for the deleteCategory() API call.categoriesGet
- The REST read request message for the getCategory() API call.categoriesGetAll
- The REST read request message for the getAllCategories() API call.categoriesUpdate
- The REST update request message for the updateCategory() API call.classesAddStudent
- Add a student to a classclassesAddTeacher
- Add a teacher to a classclassesCreate
- Create a new classclassesCreateLineItem
- Create a line item for a classclassesCreateResults
- Create results for an academic session in a classclassesDelete
- Delete a classclassesGet
- Get a specific classclassesGetAll
- Get all classesclassesGetCategories
- Get categories for a classclassesGetScoreScales
- Get score scales for a classclassesGetStudentResults
- Get results for a specific student in a classclassesGetStudents
- Get students for a classclassesGetTeachers
- Get teachers for a specific class in a schoolclassesListLineItems
- Get line items for a classclassesListResources
- Get resources for a classclassesResultsGet
- Get results for a classclassesResultsGetForLineItem
- Get results for a specific line item in a classclassesUpdate
- Update a classclassResourcesDelete
- Remove a resource from a classclassTeachersGetAll
- Get teachers for a classcomponentResourcesGetAll
- Get All Component ResourcescourseClassesGetAll
- Get Classes For CoursecourseComponentsDelete
- Delete Course ComponentcourseComponentsGetAll
- Get All Course ComponentscourseResourcesDelete
- Remove a resource from a coursecoursesAssignResource
- Assign a resource to a coursecoursesCreate
- Create CoursecoursesCreateComponent
- Create Course ComponentcoursesCreateComponentResource
- Create Component ResourcecoursesDelete
- Delete CoursecoursesDeleteComponentResource
- Delete Component ResourcecoursesGet
- Get CoursecoursesGetAll
- Get All CoursescoursesGetComponent
- Get Course ComponentcoursesGetComponentResource
- Get Component ResourcecoursesGetResources
- Get resources for a coursecoursesUpdate
- Update CoursecoursesUpdateComponent
- Update Course ComponentcoursesUpdateComponentResource
- Update Component ResourcedemographicsCreate
- Create a new demographics recorddemographicsDelete
- Delete a demographics recorddemographicsGet
- Get a specific demographics recorddemographicsGetAll
- Get all demographics recordsdemographicsUpdate
- Update a demographics recordenrollmentsCreate
- Create a new enrollmentenrollmentsDelete
- Delete an enrollmentenrollmentsGet
- Get a specific enrollmentenrollmentsGetAll
- Get all enrollmentsenrollmentsGetForClass
- Get enrollments for a specific class in a schoolenrollmentsUpdate
- Update an enrollmentgradingPeriodsCreate
- Create a new grading periodgradingPeriodsCreateForTerm
- Create a new grading period for a termgradingPeriodsDelete
- Delete a grading periodgradingPeriodsGet
- Get a specific grading periodgradingPeriodsGetAll
- Get all grading periodsgradingPeriodsUpdate
- Update a grading periodlineItemsCreate
- Create a new line itemlineItemsDelete
- Delete a line itemlineItemsGet
- Get a specific line itemlineItemsList
- Get all line itemslineItemsUpdate
- Update an existing line itemorganizationsCreate
- Create an organizationorganizationsDelete
- Delete an organizationorganizationsGet
- Get a specific organizationorganizationsGetAll
- Get all organizationsorganizationsUpdate
- Update an organizationresourcesClassesAssign
- Assign a resource to a classresourcesCreate
- Create a new resourceresourcesDelete
- Delete a resourceresourcesGet
- Get a specific resourceresourcesGetAll
- Get all resourcesresourcesUpdate
- Update an existing resourceresultsCreate
- Create a new resultresultsCreateForLineItem
- Create a new result for a line itemresultsDelete
- Delete a resultresultsGet
- Get a specific resultresultsGetAll
- Get all resultsresultsUpdate
- Update an existing resultschoolLineItemsGet
- Get line items for a schoolschoolsCoursesGetAll
- Get all courses for a schoolschoolsCreate
- Create a new schoolschoolsDelete
- Delete a schoolschoolsGet
- Get a single schoolschoolsGetAll
- Get all schoolsschoolsGetClasses
- Get all classes for a schoolschoolsGetEnrollments
- Get all enrollments for a schoolschoolsGetStudents
- Get all students for a schoolschoolsGetTeachers
- Get all teachers for a schoolschoolsGetTerms
- Get all terms for a schoolschoolsLineItemsCreate
- Create line items for a schoolschoolsScoreScalesGet
- Get score scales for a schoolschoolsUpdate
- Update a schoolscoreScalesCreate
- Create a new score scalescoreScalesDelete
- Delete a score scalescoreScalesGet
- Get a specific score scalescoreScalesList
- Get all score scalesscoreScalesUpdate
- Update an existing score scalestudentsClassesGet
- Get classes for a studentstudentsGet
- Get a specific studentstudentsGetAll
- Get all studentsstudentsGetForClass
- Get students for a specific class in a schoolteachersGet
- Get a specific teacherteachersGetAll
- Get all teachersteachersGetClasses
- Get classes for a teachertermsGet
- Get a specific termtermsGetClasses
- Get classes for a termtermsGetGradingPeriods
- Get grading periods for a termtermsList
- Get all termsuserResourcesRemove
- Remove a resource from a userusersAssignResource
- Assign a resource to a userusersCreate
- Create a new userusersDelete
- Delete a userusersGet
- Get a specific userusersGetAll
- Get all usersusersGetClasses
- Get classes for a userusersGetResources
- Get resources for a userusersUpdate
- Update an existing user
Pagination
Some of the endpoints in this SDK support pagination. To use pagination, you
make your SDK calls as usual, but the returned response object will also be an
async iterable that can be consumed using the for await...of
syntax.
Here's an example of one such pagination call:
import { OneRoster } from "oneroster"; const oneRoster = new OneRoster({ security: { clientID: process.env["ONEROSTER_CLIENT_ID"] ?? "", clientSecret: process.env["ONEROSTER_CLIENT_SECRET"] ?? "", }, }); async function run() { const result = await oneRoster.assessmentResults.getAll({ fields: "sourcedId,name", filter: "status='active'", }); for await (const page of result) { // Handle the page console.log(page); } } run();
Retries
Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
To change the default retry strategy for a single API call, simply provide a retryConfig object to the call:
import { OneRoster } from "oneroster"; const oneRoster = new OneRoster({ security: { clientID: process.env["ONEROSTER_CLIENT_ID"] ?? "", clientSecret: process.env["ONEROSTER_CLIENT_SECRET"] ?? "", }, }); async function run() { const result = await oneRoster.scoreScales.list({ retries: { strategy: "backoff", backoff: { initialInterval: 1, maxInterval: 50, exponent: 1.1, maxElapsedTime: 100, }, retryConnectionErrors: false, }, }); // Handle the result console.log(result); } run();
If you'd like to override the default retry strategy for all operations that support retries, you can provide a retryConfig at SDK initialization:
import { OneRoster } from "oneroster"; const oneRoster = new OneRoster({ retryConfig: { strategy: "backoff", backoff: { initialInterval: 1, maxInterval: 50, exponent: 1.1, maxElapsedTime: 100, }, retryConnectionErrors: false, }, security: { clientID: process.env["ONEROSTER_CLIENT_ID"] ?? "", clientSecret: process.env["ONEROSTER_CLIENT_SECRET"] ?? "", }, }); async function run() { const result = await oneRoster.scoreScales.list(); // Handle the result console.log(result); } run();
Error Handling
Some methods specify known errors which can be thrown. All the known errors are enumerated in the models/errors/errors.ts
module. The known errors for a method are documented under the Errors tables in SDK docs. For example, the list
method may throw the following errors:
Error Type | Status Code | Content Type |
---|---|---|
errors.BadRequestResponseError1 | 400 | application/json |
errors.UnauthorizedRequestResponseError1 | 401 | application/json |
errors.ForbiddenResponseError1 | 403 | application/json |
errors.NotFoundResponseError1 | 404 | application/json |
errors.UnprocessableEntityResponseError1 | 422 | application/json |
errors.TooManyRequestsResponseError1 | 429 | application/json |
errors.InternalServerErrorResponse1 | 500 | application/json |
errors.APIError | 4XX, 5XX | */* |
If the method throws an error and it is not captured by the known errors, it will default to throwing a APIError
.
import { OneRoster } from "oneroster"; import { BadRequestResponseError1, ForbiddenResponseError1, InternalServerErrorResponse1, NotFoundResponseError1, SDKValidationError, TooManyRequestsResponseError1, UnauthorizedRequestResponseError1, UnprocessableEntityResponseError1, } from "oneroster/models/errors"; const oneRoster = new OneRoster({ security: { clientID: process.env["ONEROSTER_CLIENT_ID"] ?? "", clientSecret: process.env["ONEROSTER_CLIENT_SECRET"] ?? "", }, }); async function run() { let result; try { result = await oneRoster.scoreScales.list(); // Handle the result console.log(result); } catch (err) { switch (true) { // The server response does not match the expected SDK schema case (err instanceof SDKValidationError): { // Pretty-print will provide a human-readable multi-line error message console.error(err.pretty()); // Raw value may also be inspected console.error(err.rawValue); return; } case (err instanceof BadRequestResponseError1): { // Handle err.data$: BadRequestResponseError1Data console.error(err); return; } case (err instanceof UnauthorizedRequestResponseError1): { // Handle err.data$: UnauthorizedRequestResponseError1Data console.error(err); return; } case (err instanceof ForbiddenResponseError1): { // Handle err.data$: ForbiddenResponseError1Data console.error(err); return; } case (err instanceof NotFoundResponseError1): { // Handle err.data$: NotFoundResponseError1Data console.error(err); return; } case (err instanceof UnprocessableEntityResponseError1): { // Handle err.data$: UnprocessableEntityResponseError1Data console.error(err); return; } case (err instanceof TooManyRequestsResponseError1): { // Handle err.data$: TooManyRequestsResponseError1Data console.error(err); return; } case (err instanceof InternalServerErrorResponse1): { // Handle err.data$: InternalServerErrorResponse1Data console.error(err); return; } default: { // Other errors such as network errors, see HTTPClientErrors for more details throw err; } } } } run();
Validation errors can also occur when either method arguments or data returned from the server do not match the expected format. The SDKValidationError
that is thrown as a result will capture the raw value that failed validation in an attribute called rawValue
. Additionally, a pretty()
method is available on this error that can be used to log a nicely formatted multi-line string since validation errors can list many issues and the plain error string may be difficult read when debugging.
In some rare cases, the SDK can fail to get a response from the server or even make the request due to unexpected circumstances such as network conditions. These types of errors are captured in the models/errors/httpclienterrors.ts
module:
HTTP Client Error | Description |
---|---|
RequestAbortedError | HTTP request was aborted by the client |
RequestTimeoutError | HTTP request timed out due to an AbortSignal signal |
ConnectionError | HTTP client was unable to make a request to a server |
InvalidRequestError | Any input used to create a request is invalid |
UnexpectedClientError | Unrecognised or unexpected error |
Server Selection
Override Server URL Per-Client
The default server can be overridden globally by passing a URL to the serverURL: string
optional parameter when initializing the SDK client instance. For example:
import { OneRoster } from "oneroster"; const oneRoster = new OneRoster({ serverURL: "https://api.alpha-1edtech.com", security: { clientID: process.env["ONEROSTER_CLIENT_ID"] ?? "", clientSecret: process.env["ONEROSTER_CLIENT_SECRET"] ?? "", }, }); async function run() { const result = await oneRoster.scoreScales.list(); // Handle the result console.log(result); } run();
Custom HTTP Client
The TypeScript SDK makes API calls using an HTTPClient
that wraps the native
Fetch API. This
client is a thin wrapper around fetch
and provides the ability to attach hooks
around the request lifecycle that can be used to modify the request or handle
errors and response.
The HTTPClient
constructor takes an optional fetcher
argument that can be
used to integrate a third-party HTTP client or when writing tests to mock out
the HTTP client and feed in fixtures.
The following example shows how to use the "beforeRequest"
hook to to add a
custom header and a timeout to requests and how to use the "requestError"
hook
to log errors:
import { OneRoster } from "oneroster"; import { HTTPClient } from "oneroster/lib/http"; const httpClient = new HTTPClient({ // fetcher takes a function that has the same signature as native `fetch`. fetcher: (request) => { return fetch(request); } }); httpClient.addHook("beforeRequest", (request) => { const nextRequest = new Request(request, { signal: request.signal || AbortSignal.timeout(5000) }); nextRequest.headers.set("x-custom-header", "custom value"); return nextRequest; }); httpClient.addHook("requestError", (error, request) => { console.group("Request Error"); console.log("Reason:", `${error}`); console.log("Endpoint:", `${request.method} ${request.url}`); console.groupEnd(); }); const sdk = new OneRoster({ httpClient });
Debugging
You can setup your SDK to emit debug logs for SDK requests and responses.
You can pass a logger that matches console
's interface as an SDK option.
Beware that debug logging will reveal secrets, like API tokens in headers, in log messages printed to a console or files. It's recommended to use this feature only during local development and not in production.
import { OneRoster } from "oneroster"; const sdk = new OneRoster({ debugLogger: console });
You can also enable a default debug logger by setting an environment variable ONEROSTER_DEBUG
to true.
Development
Maturity
This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally looking for the latest version.
Contributions
While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation. We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
SDK Created by Speakeasy
Add Package
deno add jsr:@trilogy/oneroster
Import symbol
import * as oneroster from "@trilogy/oneroster";
Import directly with a jsr specifier
import * as oneroster from "jsr:@trilogy/oneroster";
Add Package
pnpm i jsr:@trilogy/oneroster
pnpm dlx jsr add @trilogy/oneroster
Import symbol
import * as oneroster from "@trilogy/oneroster";
Add Package
yarn add jsr:@trilogy/oneroster
yarn dlx jsr add @trilogy/oneroster
Import symbol
import * as oneroster from "@trilogy/oneroster";
Add Package
vlt install jsr:@trilogy/oneroster
Import symbol
import * as oneroster from "@trilogy/oneroster";
Add Package
npx jsr add @trilogy/oneroster
Import symbol
import * as oneroster from "@trilogy/oneroster";
Add Package
bunx jsr add @trilogy/oneroster
Import symbol
import * as oneroster from "@trilogy/oneroster";