Releases: openfun/ralph
Releases · openfun/ralph
5.0.1
5.0.0
Added
- Models: Add Webinar xAPI activity type
Changed
- Upgrade
pydantic
to2.7.0
- Migrate model tests from hypothesis strategies to polyfactory
- Replace soon-to-be deprecated
parse_obj_as
withTypeAdapter
4.2.0
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
andralph.backends.lrs
entry points
to discover backends from plugins.
Changed
- Backends: the first argument of the
get_backends
method now requires a list
ofEntryPoints
, 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 aobjectType
attribute
4.1.0
Added
- Add LRS multitenancy support for user-specific target storage
Changed
query_statements
andquery_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
Added
- Backends: Add
Writable
andListable
interfaces to distinguish supported
functionalities amongdata
backends - Backends: Add
max_statements
option to data backendsread
method - Backends: Add
prefetch
option to async data backendsread
method - Backends: Add
concurrency
option to async data backendswrite
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
andWRITE_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
toxAPI
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
andauthority
- 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
becomesRUNSERVER_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
andstream
backends under
the unifieddata
backend interface [BC] - Backends: Refactor LRS
query_statements
andquery_statements_by_ids
backends methods under the unifiedlrs
backend interface [BC] - Backends: Update
statementId
andvoidedStatementId
to snake_case,
with camelCase alias, inLRSStatementsQuery
- 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
towrite
andfetch
toread
[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}}
toRALPH_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
to4.1.2
- Upgrade
cachetools
to5.3.2
- Upgrade
fastapi
to0.108.0
- Upgrade
sentry_sdk
to1.39.1
- Upgrade
uvicorn
to0.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 inVideoActivity
xAPI model mistakenly used in
video
profile - CLI: Remove
DEFAULT_BACKEND_CHUNK_SIZE
environment variable configuration
4.0.0-beta1
Install with:
pip install --pre --upgrade ralph-malph
Features
Added
- Backends: Add
Writable
andListable
interfaces to distinguish supported
functionalities amongdata
backends - Backends: Add
max_statements
option to data backendsread
method - Backends: Add
prefetch
option to async data backendsread
method - Backends: Add
concurrency
option to async data backendswrite
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
andWRITE_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
toxAPI
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
andauthority
- 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
becomesRUNSERVER_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
andstream
backends under
the unifieddata
backend interface [BC] - Backends: Refactor LRS
query_statements
andquery_statements_by_ids
backends methods under the unifiedlrs
backend interface [BC] - Backends: Update
statementId
andvoidedStatementId
to snake_case,
with camelCase alias, inLRSStatementsQuery
- 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
towrite
andfetch
toread
[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}}
toRALPH_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
to4.1.2
- Upgrade
cachetools
to5.3.2
- Upgrade
fastapi
to0.105.0
- Upgrade
sentry_sdk
to1.39.1
- Upgrade
uvicorn
to0.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 inVideoActivity
xAPI model mistakenly used in
video
profile - CLI: Remove
DEFAULT_BACKEND_CHUNK_SIZE
environment variable configuration
3.9.0
Changed
- Upgrade
fastapi
to0.100.0
- Upgrade
sentry_sdk
to1.28.1
- Upgrade
uvicorn
to0.23.0
- Enforce valid IRI for
activity
parameter inGET /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
Added
- Implement edX open response assessment events pydantic models
- Implement edx peer instruction events pydantic models
- Implement xAPI VideoDownloaded pydantic model
(using xAPI TinCandownloaded
verb)
Changed
- Allow to use a query for HTTP backends in the CLI
3.7.0
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
to0.97.0
- Upgrade
sentry_sdk
to1.25.1
- Set Clickhouse
client_options
to a dedicated Pydantic model - Upgrade
httpx
to0.24.1
- Force a valid (JSON-formatted) IFI to be passed for the
/statements
GET queryagent
filtering - Upgrade
cachetools
to5.3.1
Removed
verb
.display
field no longer mandatory in xAPI models and for converter
3.6.0
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