ulams courses
Generated from front/cli (ulams schema)
ulams courses clone
Section titled “ulams courses clone”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 |
# Clone a course with its lessons and topicsulams courses clone 1 --jsonInput JSON Schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "id": { "type": "number" } }, "required": [ "id" ], "additionalProperties": {}}ulams courses create
Section titled “ulams courses create”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 |
# Store a newly created Course in storageulams courses create --title Example --jsonInput 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": {}}ulams courses delete
Section titled “ulams courses delete”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 |
# Remove the specified Course from storageulams courses delete 1 --jsonInput 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": {}}ulams courses export
Section titled “ulams courses export”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) |
# Export a course as a .zip (use --out)ulams courses export 1 --jsonInput 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": {}}ulams courses get
Section titled “ulams courses get”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. |
# Show a courseulams courses get 12 --jsonInput 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" ]}ulams courses import
Section titled “ulams courses import”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) |
# Import a course from an exported .zipulams courses import --file text --jsonInput 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": {}}ulams courses list
Section titled “ulams courses list”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 |
# Get a listing of the Coursesulams courses list --jsonInput 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": {}}ulams courses program
Section titled “ulams courses program”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. |
# Program of a courseulams courses program 12 --jsonInput 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" ]}ulams courses publish
Section titled “ulams courses publish”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. |
# Publish a courseulams courses publish 12 --jsonInput 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" ]}ulams courses sort
Section titled “ulams courses sort”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 |
# Sorts Lessons or Topicsulams courses sort --jsonInput 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": {}}ulams courses unpublish
Section titled “ulams courses unpublish”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. |
# Move a course back to draftulams courses unpublish 12 --jsonInput 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" ]}ulams courses update
Section titled “ulams courses update”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 |
# Update a course (send only the fields to change, plus title)ulams courses update 1 --jsonInput 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": {}}ulams courses users-assignable
Section titled “ulams courses users-assignable”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 |
# Get users assignable to courseulams courses users-assignable --jsonInput JSON Schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "search": { "type": "string" } }, "additionalProperties": {}}