What shipped
All reposKey FrontendKeystoneKey Service Sites (KSL/GHK)Training Centre (STC/CPD)Key ProtosKeyflowCompany Backend (Strapi)Key Docs
All authorsJoshYG-TheKeyOwenTourlamainRhadamanthus1TheTomWardalex-wilson-the-keycpoteylunky84robin-agentsarahcthekeysnyk-io-eu[bot]
26 PRs · 4 repos · 9 contributors · 6 Jun – 6 Jul
Monday, 6 July 2026
Key Protos
- Llunky84A new API endpoint was added to allow services to check whether feature flags are enabled for a specific organization without needing to duplicate that logic everywhere.#124 — PENG-3540 add IsFeatureFlagEnabled rpc
Key Service Sites (KSL/GHK)
- Rrobin-agentThe key_service_sites microservice now applies timeouts to all gRPC calls including page-rendering operations, preventing worker threads from getting stuck waiting for unresponsive backend services.#1983 — feat: PENG-3675 gRPC deadlines, 16MB limits, and django-q task retries
Training Centre (STC/CPD)
- Rrobin-agentThe training_centre service added timeouts and automatic retries to its gRPC calls so transient service issues don't silently break course completion flows.#1964 — feat: PENG-3675 add deadlines and native gRPC retries to service clients
- RRhadamanthus1The almanac calendar management tool was restored to the training_centre codebase after it was accidentally deleted during a code cleanup.#1965 — fix(almanac): PENG-3499 restore almanac wagtail admin
Thursday, 2 July 2026
Key Protos
- JJoshYG-TheKeyAdded optional publish date filters to the chat search request protocol so articles can be filtered by when they were last updated.#118 — feat(ai_search): add published_after/before to ChatSearchRequest
- Rrobin-agentIncluded the publication status of training items in API responses so downstream services can see whether items are published or coming-soon.#117 — feat: PENG-3648 add status field to HydratedTrainingItem
- Aalex-wilson-the-keyAdded a missing external links data type to support KCSIE compliance features in the training assignment system.#120 — feat(assign-KCSIE-2): PENG-3668 Added external links data type with kcsie again
Key Service Sites (KSL/GHK)
- SsarahcthekeyConfigured the key_service_sites container to run as a non-root user for improved security in production environments.#1981 — feat(key_service_sites): run container as non-root user (PLA-380)
Training Centre (STC/CPD)
- Rrobin-agentPrevented accidental changes to SCOID identifiers on training pages once registrations exist, which was breaking the ability to sync completion data from ScormCloud.#1960 — fix: PENG-3637 prevent SCOID changes when registrations or results exist
- Llunky84Modified certificate downloads to reference training results through their unique IDs instead of a separate certificates table for better data consistency.#1962 — PENG-3540 certificates pass elearning result id
Wednesday, 1 July 2026
Key Protos
- Aalex-wilson-the-keyThe system now supports external links as a new assignment type, allowing users to assign government documents like KCSIE files as required reading with a corresponding external link identifier.#119 — feat(protos): PENG-3668 add EXTERNAL_LINK assignment type and identifier fields
Training Centre (STC/CPD)
- Llunky84The e-learning certificate API now exposes the record ID so clients can identify which e-learning result each certificate corresponds to.#1961 — PENG-3540 certificates from record id
Monday, 29 June 2026
Training Centre (STC/CPD)
- Rrobin-agentTraining content marked as 'new' will now automatically stop appearing as new after 2 months, eliminating the need for manual updates and preventing stale content from being labeled as fresh.#1959 — feat: PENG-3652 auto-expire is_new label after 2 months
Friday, 26 June 2026
Key Protos
- TTheTomWardAdded new API endpoints to support migrating training data between different user accounts.#115 — fix(migrate-data): PENG-3603 Updates to enable training data migration
Training Centre (STC/CPD)
- Rrobin-agentPrevented learner course completion status from reverting to incomplete when they re-access a finished ScormCloud course, ensuring consistent data between status and completion timestamps.#1957 — fix: PENG-3637 prevent status regression on ScormCloud re-access sync
- Ssnyk-io-eu[bot]Updated the PostgreSQL Docker image from version 16.11 to 16.14 to address three security vulnerabilities.#1955 — [Snyk] Security upgrade postgres from 16.11 to 16.14
Wednesday, 24 June 2026
Company Backend (Strapi)
- Rrobin-agentFixed security vulnerabilities in lodash-es and fast-xml-parser by adding dependency overrides and upgrading packages to safer versions.#68 — fix: PENG-3041 override lodash-es and upgrade fast-xml-parser to 5.x
Key Service Sites (KSL/GHK)
- Rrobin-agentMade text and messaging updates to the website for ticket 3635 to improve user-facing copy.#1978 — 3635 copy tweaks
Tuesday, 23 June 2026
Company Backend (Strapi)
- Rrobin-agentAdditional vulnerable transitive dependencies in company-backend have been patched through pnpm overrides to address remaining security vulnerabilities like prototype pollution and HTTP response splitting issues.#67 — fix: PENG-3041 override additional vulnerable transitive dependencies
- Rrobin-agentSeventy-one vulnerable transitive dependencies introduced by Strapi have been mitigated by pinning safe patched versions through pnpm overrides, addressing critical security issues while maintaining API compatibility.#66 — fix: PENG-3041 override vulnerable transitive dependencies
Key Service Sites (KSL/GHK)
- CcpoteyImages no longer silently disappear from articles when the Wagtail editor encounters rendering errors, preventing accidental data loss when users save pages after editing.#1976 — 2fix(rich_text): PENG-3622 Preserve image embed data when editor rende…
- RRhadamanthus1Unused application settings and the context processor module that served no active purpose have been removed as part of cleanup operations.#1977 — chore(settings): PENG-3499 prune unused settings
- RRhadamanthus1Obsolete OIDC middleware that was designed for the old user-facing Django template system has been removed since the application is now a headless backend.#1972 — chore(middleware): PENG-3499 remove unused oidc middleware
- RRhadamanthus1The single-access-session middleware and related functionality have been removed because no new tokens of this type have been created in years and stakeholders confirmed it is unused.#1974 — Peng 3499 remove single access session middleware
- RRhadamanthus1The redirect middleware has been removed because its functionality is now handled by Kubernetes infrastructure-level redirect rules that are already in place.#1973 — chore(middleware): PENG-3499 remove redirect middleware
Training Centre (STC/CPD)
- Aalex-wilson-the-keyThe training centre service now exposes an endpoint for the orca service to retrieve elearning results data, enabling service-to-service communication with proper authentication.#1950 — chore(certificates-part-5): PENG-3540 elearning data endpoint