Creating Courses

CLI Workflow

Validate and deploy courses using the tekanaid CLI. Always validate before pushing.

CLI Commands

tekanaid validate-course

Validate all content in the current course directory.

tekanaid push-course

Deploy the course to the active environment.

tekanaid validate-course-batch <dir>

Validate all courses in a parent directory.

tekanaid push-course-batch <dir>

Deploy all courses in a parent directory.

Development Workflow

Follow these steps when creating or updating a course:

  1. 1Create your course directory with course.yml and content files.
  2. 2Validate locally: tekanaid validate-course
  3. 3Set TEKANAID_ENV=production and TEKANAID_TARGET=povdemo, then run tekanaid push-course.
  4. 4Log in to POV Demo and publish the course to make it available to learners.
# Validate
tekanaid validate-course

# Deploy
export TEKANAID_ENV=production
export TEKANAID_TARGET=povdemo
tekanaid push-course

Batch Operations

Use batch commands when managing multiple courses in a shared parent directory. Each subdirectory is treated as a separate course and processed in sequence:

# Validate all courses under ./courses/
tekanaid validate-course-batch ./courses

# Deploy all
export TEKANAID_ENV=production
export TEKANAID_TARGET=povdemo
tekanaid push-course-batch ./courses

Troubleshooting

Common validation and deployment errors and how to fix them:

ErrorCauseFix
missing required field: slugcourse.yml is missing the slug field.Add slug: "your-slug" to course.yml.
invalid difficulty valuedifficulty must be one of: beginner, intermediate, advanced.Use exact lowercase value.
content path not foundA path in sections[].contentItems references a directory that doesn't exist.Verify directory path matches exactly.
lab not foundA lab.yml references a labSlug that isn't published on the platform.Publish the target lab first, or fix the slug.
not authenticatedYou're not logged in or your session expired.Run tekanaid login.