Skip to content

Releases: openfun/ralph

5.0.1

11 Jul 09:41
Compare
Choose a tag to compare

Changed

  • Force Elasticsearch REFRESH_AFTER_WRITE setting to be a string

Fixed

  • Fix LaxStatement validation to prevent statements IDs modification

5.0.0

06 May 08:12
Compare
Choose a tag to compare

Added

  • Models: Add Webinar xAPI activity type

Changed

  • Upgrade pydantic to 2.7.0
  • Migrate model tests from hypothesis strategies to polyfactory
  • Replace soon-to-be deprecated parse_obj_as with TypeAdapter

4.2.0

08 Apr 15:41
Compare
Choose a tag to compare

Added

  • Models: Add Edx teams-related events support
  • Models: Add Edx notes events support
  • Models: Add Edx certificate events support
  • Models: Add Edx bookmark (renamed Course Resource) events support
  • Models: Add Edx poll and survey events support
  • Models: Add Edx Course Content Completion events support
  • Models: Add Edx drag and drop events support
  • Models: Add Edx cohort events support
  • Models: Add Edx content library interaction events support
  • Backends: Add ralph.backends.data and ralph.backends.lrs entry points
    to discover backends from plugins.

Changed

  • Backends: the first argument of the get_backends method now requires a list
    of EntryPoints, each pointing to a backend class, instead of a tuple of
    packages containing backends.
  • API: The RUNSERVER_BACKEND configuration value is no longer validated to
    point to an existing backend.

Fixed

  • LRS: Fix querying on activity when LRS contains statements with an object
    lacking a objectType attribute

4.1.0

12 Feb 11:07
Compare
Choose a tag to compare

Added

  • Add LRS multitenancy support for user-specific target storage

Changed

  • query_statements and query_statements_by_ids methods can now take an
    optional user-specific target

Fixed

  • Backends: switch LRSStatementsQuery since/until field types to iso 8601 string

Removed

  • Removed event_table_name attribute of the ClickHouse data backend

4.0.0

24 Jan 09:02
Compare
Choose a tag to compare

Added

  • Backends: Add Writable and Listable interfaces to distinguish supported
    functionalities among data backends
  • Backends: Add max_statements option to data backends read method
  • Backends: Add prefetch option to async data backends read method
  • Backends: Add concurrency option to async data backends write method
  • Backends: Add get_backends function to automatically discover backends
    for CLI and LRS usage
  • Backends: Add client options for WSDataBackend
  • Backends: Add READ_CHUNK_SIZE and WRITE_CHUNK_SIZE data backend settings
  • Models: Implement Pydantic model for LRS Statements resource query parameters
  • Models: Implement xAPI LMS Profile statements validation
  • Models: Add EdX to xAPI converters for enrollment events
  • Project: Add aliases for ralph-malph extra dependencies: backends and
    full

Changed

  • Arnold: Add variable to override PVC name in arnold deployment
  • API: GET /statements now has "mine" option which matches statements that
    have an authority field matching that of the user
  • API: Invalid parameters now return 400 status code
  • API: Forwarding PUT now uses PUT (instead of POST)
  • API: Incoming statements are enriched with id, timestamp, stored
    and authority
  • API: Add RALPH_LRS_RESTRICT_BY_AUTHORITY option making ?mine=True
    implicit
  • API: Add RALPH_LRS_RESTRICT_BY_SCOPE option enabling endpoint access
    control by user scopes
  • API: Enhance 'limit' query parameter's validation
  • API: Variable RUNSERVER_AUTH_BACKEND becomes RUNSERVER_AUTH_BACKENDS, and
    multiple authentication methods are supported simultaneously
  • Backends: Refactor LRS Statements resource query parameters defined for
    ralph API
  • Backends: Refactor database, storage, http and stream backends under
    the unified data backend interface [BC]
  • Backends: Refactor LRS query_statements and query_statements_by_ids
    backends methods under the unified lrs backend interface [BC]
  • Backends: Update statementId and voidedStatementId to snake_case,
    with camelCase alias, in LRSStatementsQuery
  • Backends: Replace reference to a JSON column in ClickHouse with
    function calls on the String column [BC]
  • CLI: User credentials must now include an "agent" field which can be created
    using the cli
  • CLI: Change push to write and fetch to read [BC]
  • CLI: Change -c --chunk-size option to -s --chunk-size [BC]
  • CLI: Change websocket backend name -b ws to -b async_ws along with it's
    uri option --ws-uri to --async-ws-uri [BC]
  • CLI: List cli usage strings in alphabetical order
  • CLI: Change backend configuration environment variable prefixes from
    RALPH_BACKENDS__{{DATABASE|HTTP|STORAGE|STREAM}}__{{BACKEND}}__{{OPTION}}
    to RALPH_BACKENDS__DATA__{{BACKEND}}__{{OPTION}}
  • Models: The xAPI context.contextActivities.category field is now mandatory
    in the video and virtual classroom profiles. [BC]
  • Upgrade base python version to 3.12 for the development stack and Docker
    image
  • Upgrade bcrypt to 4.1.2
  • Upgrade cachetools to 5.3.2
  • Upgrade fastapi to 0.108.0
  • Upgrade sentry_sdk to 1.39.1
  • Upgrade uvicorn to 0.25.0

Fixed

  • API: Fix a typo ('attachements' -> 'attachments') to ensure compliance with
    the LRS specification and prevent potential silent bugs

Removed

  • Project: Drop support for Python 3.7
  • Models: Remove school, course, module context extensions in Edx to xAPI
    base converter
  • Models: Remove name field in VideoActivity xAPI model mistakenly used in
    video profile
  • CLI: Remove DEFAULT_BACKEND_CHUNK_SIZE environment variable configuration

4.0.0-beta1

18 Dec 16:44
Compare
Choose a tag to compare
4.0.0-beta1 Pre-release
Pre-release

Install with:
pip install --pre --upgrade ralph-malph

Features

Added

  • Backends: Add Writable and Listable interfaces to distinguish supported
    functionalities among data backends
  • Backends: Add max_statements option to data backends read method
  • Backends: Add prefetch option to async data backends read method
  • Backends: Add concurrency option to async data backends write method
  • Backends: Add get_backends function to automatically discover backends
    for CLI and LRS usage
  • Backends: Add client options for WSDataBackend
  • Backends: Add READ_CHUNK_SIZE and WRITE_CHUNK_SIZE data backend settings
  • Models: Implement Pydantic model for LRS Statements resource query parameters
  • Models: Implement xAPI LMS Profile statements validation
  • Models: Add EdX to xAPI converters for enrollment events
  • Project: Add aliases for ralph-malph extra dependencies: backends and
    full

Changed

  • Arnold: Add variable to override PVC name in arnold deployment
  • API: GET /statements now has "mine" option which matches statements that
    have an authority field matching that of the user
  • API: Invalid parameters now return 400 status code
  • API: Forwarding PUT now uses PUT (instead of POST)
  • API: Incoming statements are enriched with id, timestamp, stored
    and authority
  • API: Add RALPH_LRS_RESTRICT_BY_AUTHORITY option making ?mine=True
    implicit
  • API: Add RALPH_LRS_RESTRICT_BY_SCOPE option enabling endpoint access
    control by user scopes
  • API: Enhance 'limit' query parameter's validation
  • API: Variable RUNSERVER_AUTH_BACKEND becomes RUNSERVER_AUTH_BACKENDS, and
    multiple authentication methods are supported simultaneously
  • Backends: Refactor LRS Statements resource query parameters defined for
    ralph API
  • Backends: Refactor database, storage, http and stream backends under
    the unified data backend interface [BC]
  • Backends: Refactor LRS query_statements and query_statements_by_ids
    backends methods under the unified lrs backend interface [BC]
  • Backends: Update statementId and voidedStatementId to snake_case,
    with camelCase alias, in LRSStatementsQuery
  • Backends: Replace reference to a JSON column in ClickHouse with
    function calls on the String column [BC]
  • CLI: User credentials must now include an "agent" field which can be created
    using the cli
  • CLI: Change push to write and fetch to read [BC]
  • CLI: Change -c --chunk-size option to -s --chunk-size [BC]
  • CLI: Change websocket backend name -b ws to -b async_ws along with it's
    uri option --ws-uri to --async-ws-uri [BC]
  • CLI: List cli usage strings in alphabetical order
  • CLI: Change backend configuration environment variable prefixes from
    RALPH_BACKENDS__{{DATABASE|HTTP|STORAGE|STREAM}}__{{BACKEND}}__{{OPTION}}
    to RALPH_BACKENDS__DATA__{{BACKEND}}__{{OPTION}}
  • Models: The xAPI context.contextActivities.category field is now mandatory
    in the video and virtual classroom profiles. [BC]
  • Upgrade base python version to 3.12 for the development stack and Docker
    image
  • Upgrade bcrypt to 4.1.2
  • Upgrade cachetools to 5.3.2
  • Upgrade fastapi to 0.105.0
  • Upgrade sentry_sdk to 1.39.1
  • Upgrade uvicorn to 0.24.0.post1

Fixed

  • API: Fix a typo ('attachements' -> 'attachments') to ensure compliance with
    the LRS specification and prevent potential silent bugs

Removed

  • Project: Drop support for Python 3.7
  • Models: Remove school, course, module context extensions in Edx to xAPI
    base converter
  • Models: Remove name field in VideoActivity xAPI model mistakenly used in
    video profile
  • CLI: Remove DEFAULT_BACKEND_CHUNK_SIZE environment variable configuration

3.9.0

21 Jul 14:55
Compare
Choose a tag to compare

Changed

  • Upgrade fastapi to 0.100.0
  • Upgrade sentry_sdk to 1.28.1
  • Upgrade uvicorn to 0.23.0
  • Enforce valid IRI for activity parameter in GET /statements
  • Change how duplicate xAPI statements are handled for clickhouse backend

General improvement for the Helm Chart:

  • add dependencies for MongoDB and Clickhouse
  • make persistence optional
  • allow use existing PVC
  • remove prefix label from ingress object name
  • add missing namespace label
  • make object name consistent

3.8.0

21 Jun 14:02
Compare
Choose a tag to compare

Added

  • Implement edX open response assessment events pydantic models
  • Implement edx peer instruction events pydantic models
  • Implement xAPI VideoDownloaded pydantic model
    (using xAPI TinCan downloaded verb)

Changed

  • Allow to use a query for HTTP backends in the CLI

3.7.0

13 Jun 17:30
Compare
Choose a tag to compare

Added

  • Implement synchronous lrs backend
  • Implement xAPI virtual classroom pydantic models
  • Allow to insert custom endpoint url for S3 service
  • Cache the HTTP Basic auth credentials to improve API response time
  • Support OpenID Connect authentication method

Changed

  • Clean xAPI pydantic models naming convention
  • Upgrade fastapi to 0.97.0
  • Upgrade sentry_sdk to 1.25.1
  • Set Clickhouse client_options to a dedicated Pydantic model
  • Upgrade httpx to 0.24.1
  • Force a valid (JSON-formatted) IFI to be passed for the /statements
    GET query agent filtering
  • Upgrade cachetools to 5.3.1

Removed

  • verb.display field no longer mandatory in xAPI models and for converter

3.6.0

17 May 11:50
Compare
Choose a tag to compare

Added

  • Allow to ignore health check routes for Sentry transactions

Changed

  • Upgrade sentry_sdk to 1.22.2
  • Upgrade uvicorn to 0.22.0
  • LRS /statements GET method returns a code 400 with certain parameters as per the xAPI specification
  • Use batch/v1 api in cronjob_pipeline manifest
  • Use autoscaling/v2 in HorizontalPodAutoscaler manifest

Fixed

  • Fix the more IRL building in LRS /statements GET requests