Library Resource

Library Resource

Description

Libraries define the set of Articulate Rise 360 modules available to each organization. Each organization's library is derived from the platform-wide module list, with the ability to exclude specific modules. The result is the organization’s effective library: all platform modules minus those listed in the organization’s excludedModuleIds.

Library

Each organization has its own exclusion-based library, and can create named library sections (curated subsets) for custom grouping of available modules. Libraries are created and deleted on Organization creation and deletion - there are are no POST or DELETE routes for Library Entities themselves.

Modules

Library modules and library section modules link directly to Modules. Modules' type will be referenced in this documentation.


Example

Organization Library:

{
  "excludedModuleIds": string[],
  "schemaVersion": 1,
  "createdAt": number,
  "updatedAt": number
}

Update Library - (Platform Admin)

PATCH /organizations/{organization_id}/library

Example Request:

{
  "excludedModuleIds": ["mod789", "mod999"]
}

Example Response (200 OK):

{
  "success": true,
  "message": "updated organization library successfully.",
  "data": {
    "excludedModuleIds": ["mod789", "mod999"]
  }
}

Get Organization's Effective Library - (Authorized User)

GET /organizations/{organization_id}/library

Example Response (200 OK):

{
  "success": true,
  "message": "retrieved effective library successfully.",
  "data": [
    "mod001",
    "mod002"
    // ...all moduleIds not in excludedModuleIds
  ]
}

Get Library Module - (API Key)

GET /organizations/{organization_id}/library/modules/{module_id}?customFields={"custom": "field"}

Headers:

Authorization: Bearer <API key>

Query Parameters:

Name
Type
Required
Description

customFields

json

Any other optional tracking params

Example Response (200 OK):

{
  "success": true,
  "message": "Library Module retrieved successfully.",
  "data": {
    "url": "https://example.com/1/index.html?params",
    "signedCookies": {
      "CloudFront-Key-Pair-Id": "example-id",
      "CloudFront-Signature": "example-signature",
      "CloudFront-Policy": "example-token"
    },
    ...ModuleDocType // All Module Doc information will be returned. Please reference "### Modules" above
  }
}

Library Sections Resource

Description

Library Sections are curated groupings of modules defined by organization admins. Each section is a manually maintained inclusion list of module IDs, scoped to that organization’s effective library.

Library Sections

Sections allow for custom views like "Cybersecurity" or "Onboarding" without affecting the organization's main library.


Example

Library Section:

{
  "_id": string,
  "name": string,
  "description": string,
  "moduleIds": string[],
  "createdAt": number,
  "updatedAt": number,
  "schemaVersion": 1
}

Create Library Section - (Organization Admin)

POST /organizations/{organization_id}/library/sections

Example Request:

{
  "name": "Cybersecurity",
  "description": "Modules related to information security.",
  "moduleIds": ["mod001", "mod002"]
}

Example Response (201 Created):

{
  "success": true,
  "message": "created library section successfully.",
  "data": {
    "name": "Cybersecurity",
    "description": "Modules related to information security.",
    "moduleIds": ["mod001", "mod002"]
  }
}

Get All Library Sections

GET /organizations/{organization_id}/library/sections

Example Response (200 OK):

{
  "success": true,
  "message": "retrieved library sections successfully.",
  "data": [
    {
      "_id": "sec123",
      "name": "Cybersecurity",
      "description": "Modules related to information security.",
      "moduleIds": ["mod001", "mod002"]
    }
    // ...more sections
  ]
}

Get Library Section by ID

GET /organizations/{organization_id}/library/sections/{section_id}

Example Response (200 OK):

{
  "success": true,
  "message": "retrieved library section successfully.",
  "data": {
    "section": {
      "_id": "sec123",
      "name": "Cybersecurity",
      "description": "Modules related to information security.",
      "moduleIds": ["mod001", "mod002"]
    },
    "modules": [{
      ...ModuleDocType // All Module Doc information will be returned. Please reference "### Modules" above
    }]
  }
}

Update Library Section - (Organization Admin)

PATCH /organizations/{organization_id}/library/sections/{section_id}

Example Request:

{
  "name": "Cybersecurity Essentials",
  "moduleIds": ["mod001", "mod004"]
}

Example Response (200 OK):

{
  "success": true,
  "message": "updated library section successfully.",
  "data": {
    "name": "Cybersecurity Essentials",
    "moduleIds": ["mod001", "mod004"]
  }
}

Get Library Section Module - (API Key)

GET /organizations/{organization_id}/library/sections/{section_id}/modules/{module_id}?customFields={"custom": "field"}

Headers:

Authorization: Bearer <API key>

Query Parameters:

Name
Type
Required
Description

customFields

json

Any other optional tracking params

Example Response (200 OK):

{
  "success": true,
  "message": "Library Section Module retrieved successfully.",
  "data": {
    "url": "https://example.com/1/index.html?params",
    "signedCookies": {
      "CloudFront-Key-Pair-Id": "example-id",
      "CloudFront-Signature": "example-signature",
      "CloudFront-Policy": "example-token"
    },
    ...ModuleDocType // All Module Doc information will be returned. Please reference "### Modules" above
  }
}

Delete Library Section - (Organization Admin)

DELETE /organizations/{organization_id}/library/sections/{section_id}

Example Response (200 OK):

{
  "success": true,
  "message": "deleted library section successfully."
}

Last updated