Skip to content

ulams courses

Generated from front/cli (ulams schema)

Clone a course with its lessons and topics.

Kind: write. Stability: stable. MCP tool: courses_clone. Scopes: courses:write.

Endpoints: GET /api/admin/courses/{id}/clone.

Flag Type Required Description
--id (positional) number yes
Terminal window
# Clone a course with its lessons and topics
ulams courses clone 1 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "number"
}
},
"required": [
"id"
],
"additionalProperties": {}
}

Store a newly created Course in storage.

Kind: write. Stability: stable. MCP tool: courses_create. Scopes: courses:write.

Endpoints: POST /api/admin/courses.

Flag Type Required Description
--active-from string active_from
--active-to string active_to
--description string description
--duration string duration
--fields unknown additional fields
--findable boolean findable
--hours-to-complete integer hours_to_complete
--id integer id
--image string image (path of a local file)
--image-path string image_path
--image-url string image_url
--language string language
--level string level
--poster string poster (path of a local file)
--poster-path string poster_path
--poster-url string poster_url
--public boolean free access, public audience
--scorm-sco-id integer scorm_sco_id
--status string status
--subtitle string subtitle
--summary string summary
--target-group string target group
--teaser-url string teaser url
--title string yes title
--video string video (path of a local file)
--video-path string video_path
--video-url string video_url
Terminal window
# Store a newly created Course in storage
ulams courses create --title Example --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"active_from": {
"type": "string",
"description": "active_from"
},
"active_to": {
"type": "string",
"description": "active_to"
},
"description": {
"type": "string",
"description": "description"
},
"duration": {
"type": "string",
"description": "duration"
},
"fields": {
"description": "additional fields"
},
"findable": {
"type": "boolean",
"description": "findable"
},
"hours_to_complete": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "hours_to_complete"
},
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "id"
},
"image": {
"type": "string",
"description": "image (path of a local file)"
},
"image_path": {
"type": "string",
"description": "image_path"
},
"image_url": {
"type": "string",
"description": "image_url"
},
"language": {
"type": "string",
"description": "language"
},
"level": {
"type": "string",
"description": "level"
},
"poster": {
"type": "string",
"description": "poster (path of a local file)"
},
"poster_path": {
"type": "string",
"description": "poster_path"
},
"poster_url": {
"type": "string",
"description": "poster_url"
},
"public": {
"type": "boolean",
"description": "free access, public audience"
},
"scorm_sco_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "scorm_sco_id"
},
"status": {
"type": "string",
"description": "status"
},
"subtitle": {
"type": "string",
"description": "subtitle"
},
"summary": {
"type": "string",
"description": "summary"
},
"target_group": {
"type": "string",
"description": "target group"
},
"teaser_url": {
"type": "string",
"description": "teaser url"
},
"title": {
"type": "string",
"description": "title"
},
"video": {
"type": "string",
"description": "video (path of a local file)"
},
"video_path": {
"type": "string",
"description": "video_path"
},
"video_url": {
"type": "string",
"description": "video_url"
}
},
"required": [
"title"
],
"additionalProperties": {}
}

Remove the specified Course from storage.

Kind: destructive (idempotent). Stability: stable. MCP tool: courses_delete. Scopes: courses:write.

Endpoints: DELETE /api/admin/courses/{id}.

Flag Type Required Description
--id (positional) integer yes id of Course
Terminal window
# Remove the specified Course from storage
ulams courses delete 1 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "id of Course"
}
},
"required": [
"id"
],
"additionalProperties": {}
}

Export a course as a .zip (use –out).

Kind: read (idempotent). Stability: stable. MCP tool: courses_export. Scopes: courses:read.

Endpoints: GET /api/admin/courses/{id}/export.

Flag Type Required Description
--id (positional) number yes
--out string Write the download to this path (- for stdout)
Terminal window
# Export a course as a .zip (use --out)
ulams courses export 1 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "number"
},
"out": {
"description": "Write the download to this path (- for stdout)",
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": {}
}

Show one course with its lessons and topics.

Course ids come from courses list. Includes lessons and their topics (id, title, type, order).

Kind: read (idempotent). Stability: stable. MCP tool: courses_get. Scopes: courses:read.

Flag Type Required Description
--id (positional) integer yes Course id.
Terminal window
# Show a course
ulams courses get 12 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Course id."
}
},
"required": [
"id"
]
}

Import a course from an exported .zip.

Kind: write. Stability: stable. MCP tool: courses_import. Scopes: courses:write.

Endpoints: POST /api/admin/courses/zip/import.

Flag Type Required Description
--file string yes Path of a local file (.zip)
Terminal window
# Import a course from an exported .zip
ulams courses import --file text --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Path of a local file (.zip)"
}
},
"required": [
"file"
],
"additionalProperties": {}
}

Get a listing of the Courses.

Kind: read (idempotent). Stability: stable. MCP tool: courses_list. Scopes: courses:read.

Endpoints: GET /api/admin/courses.

Flag Type Required Description
--order-by string
--order string
--page number Pagination Page Number
--per-page number Pagination Per Page
--title string Course title %LIKE%
--category-id number Category ID. When applied all courses with given cat_id and children categories are searched
--authors array Authors
--tag string Tag name exactly
--free boolean Will show only free courses
--status string Course status: published, draft, archived
--group-id integer Group
Terminal window
# Get a listing of the Courses
ulams courses list --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"order_by": {
"type": "string",
"enum": [
"created_at",
"title",
"duration"
]
},
"order": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
},
"page": {
"type": "number",
"description": "Pagination Page Number"
},
"per_page": {
"type": "number",
"description": "Pagination Per Page"
},
"title": {
"type": "string",
"description": "Course title %LIKE%"
},
"category_id": {
"type": "number",
"description": "Category ID. When applied all courses with given cat_id and children categories are searched"
},
"authors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"additionalProperties": {}
},
"description": "Authors"
},
"tag": {
"type": "string",
"description": "Tag name exactly"
},
"free": {
"type": "boolean",
"description": "Will show only free courses"
},
"status": {
"type": "string",
"description": "Course status: published, draft, archived"
},
"group_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Group"
}
},
"additionalProperties": {}
}

Show the full program of a course (lessons, topics and their content).

Kind: read (idempotent). Stability: stable. MCP tool: courses_program. Scopes: courses:read.

Flag Type Required Description
--id (positional) integer yes Course id.
Terminal window
# Program of a course
ulams courses program 12 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Course id."
}
},
"required": [
"id"
]
}

Publish a course.

Makes the course visible to learners. Use courses get first to check that it has lessons and topics.

Kind: write (idempotent). Stability: stable. MCP tool: courses_publish. Scopes: courses:write.

Endpoints: POST /api/admin/courses/{id}.

Flag Type Required Description
--id (positional) integer yes Course id.
Terminal window
# Publish a course
ulams courses publish 12 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Course id."
}
},
"required": [
"id"
]
}

Sorts Lessons or Topics.

Kind: write. Stability: stable. MCP tool: courses_sort. Scopes: courses:write.

Endpoints: POST /api/admin/courses/sort.

Flag Type Required Description
--class string
--course-id integer
--orders array
Terminal window
# Sorts Lessons or Topics
ulams courses sort --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"class": {
"type": "string"
},
"course_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"orders": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
}
}
},
"additionalProperties": {}
}

Move a course back to draft.

Moves the course back to draft; learners lose access to it until it is published again.

Kind: write (idempotent). Stability: stable. MCP tool: courses_unpublish. Scopes: courses:write.

Endpoints: POST /api/admin/courses/{id}.

Flag Type Required Description
--id (positional) integer yes Course id.
Terminal window
# Move a course back to draft
ulams courses unpublish 12 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Course id."
}
},
"required": [
"id"
]
}

Update a course (send only the fields to change, plus title).

Kind: write. Stability: stable. MCP tool: courses_update. Scopes: courses:write.

Endpoints: POST /api/admin/courses/{id}.

Flag Type Required Description
--id (positional) integer yes id of Course
--active-from string active_from
--active-to string active_to
--description string description
--duration string duration
--fields unknown additional fields
--findable boolean findable
--hours-to-complete integer hours_to_complete
--image string image (path of a local file)
--image-path string image_path
--image-url string image_url
--language string language
--level string level
--poster string poster (path of a local file)
--poster-path string poster_path
--poster-url string poster_url
--public boolean free access, public audience
--scorm-sco-id integer scorm_sco_id
--status string status
--subtitle string subtitle
--summary string summary
--target-group string target group
--teaser-url string teaser url
--title string title
--video string video (path of a local file)
--video-path string video_path
--video-url string video_url
Terminal window
# Update a course (send only the fields to change, plus title)
ulams courses update 1 --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "id of Course"
},
"active_from": {
"type": "string",
"description": "active_from"
},
"active_to": {
"type": "string",
"description": "active_to"
},
"description": {
"type": "string",
"description": "description"
},
"duration": {
"type": "string",
"description": "duration"
},
"fields": {
"description": "additional fields"
},
"findable": {
"type": "boolean",
"description": "findable"
},
"hours_to_complete": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "hours_to_complete"
},
"image": {
"type": "string",
"description": "image (path of a local file)"
},
"image_path": {
"type": "string",
"description": "image_path"
},
"image_url": {
"type": "string",
"description": "image_url"
},
"language": {
"type": "string",
"description": "language"
},
"level": {
"type": "string",
"description": "level"
},
"poster": {
"type": "string",
"description": "poster (path of a local file)"
},
"poster_path": {
"type": "string",
"description": "poster_path"
},
"poster_url": {
"type": "string",
"description": "poster_url"
},
"public": {
"type": "boolean",
"description": "free access, public audience"
},
"scorm_sco_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "scorm_sco_id"
},
"status": {
"type": "string",
"description": "status"
},
"subtitle": {
"type": "string",
"description": "subtitle"
},
"summary": {
"type": "string",
"description": "summary"
},
"target_group": {
"type": "string",
"description": "target group"
},
"teaser_url": {
"type": "string",
"description": "teaser url"
},
"title": {
"type": "string",
"description": "title"
},
"video": {
"type": "string",
"description": "video (path of a local file)"
},
"video_path": {
"type": "string",
"description": "video_path"
},
"video_url": {
"type": "string",
"description": "video_url"
}
},
"required": [
"id"
],
"additionalProperties": {}
}

Get users assignable to course.

Kind: read (idempotent). Stability: stable. MCP tool: courses_users_assignable. Scopes: courses:read.

Endpoints: GET /api/admin/courses/users/assignable.

Flag Type Required Description
--search string
Terminal window
# Get users assignable to course
ulams courses users-assignable --json
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"search": {
"type": "string"
}
},
"additionalProperties": {}
}