Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.31.0 #2086

Closed
wants to merge 20 commits into from
Closed

Release 0.31.0 #2086

wants to merge 20 commits into from

Conversation

odlbot
Copy link
Contributor

@odlbot odlbot commented Feb 28, 2025

Chris Chudzicki

Nathan Levesque

Shankar Ambady

Matt Bertrand

Arslan Ashraf

renovate[bot]

renovate bot and others added 20 commits February 24, 2025 10:22
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Update dependency @mui/lab to v6.0.0-beta.28

* update lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: shankar ambady <[email protected]>
* Update dependency @sentry/nextjs to v9

* update lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: shankar ambady <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Update dependency @dnd-kit/sortable to v10

* updating lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: shankar ambady <[email protected]>
* workaround for mui select focusVisible issue

tmp

* use legend for checkboxfield overall description

* make focus outlines a bit more visible

* add a comment about the typecasting
* Fix SCIM view tests

* Fix user migrations for scim fields
* add MITOL_LOGOUT_SUFFIX to github actions

* add dockerfile build arg

* fix typo
* switch to using next_run

* adding test

* adding fallback for missing next runs

* adding test

* checking published

* fixing test flakiness
* serialize contentfiles like we do with learning resources

* fixing contentfile serialization

* optimize loop and data fetch

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fixing n+1 queries

* adding block id to embedded metadata

* adding block id as filter parameter

* regenerate spec

* fixing test:

* some consolidation

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* make LinkAdapter use shallow

* tie AskTim to drawer query param

* display syllabus chat based on query param
Copy link

gitguardian bot commented Feb 28, 2025

⚠️ GitGuardian has uncovered 5 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secrets in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
13777606 Triggered Generic Private Key 131c04e config/keycloak/tls/tls.key.default View secret
13777608 Triggered Generic High Entropy Secret 131c04e config/keycloak/realms/default-realm.json View secret
13777609 Triggered Generic Password 131c04e config/keycloak/realms/default-realm.json View secret
13777610 Triggered Generic High Entropy Secret 131c04e config/keycloak/realms/default-realm.json View secret
10259317 Triggered Generic Password 131c04e docker-compose.services.yml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @odlbot, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Summary of Changes

This pull request releases version 0.31.0, incorporating a variety of fixes, improvements, and dependency updates. Key changes include APISIX integration, SCIM-related fixes, accessibility improvements, and updates to several dependencies. The changes span multiple files, including workflow configurations, Dockerfiles, configuration files for APISIX and Keycloak, and frontend code.

Highlights

  • APISIX Integration: Introduces APISIX as a reverse proxy and API gateway, including configuration files and documentation for Keycloak integration.
  • SCIM Fixes: Addresses several issues related to SCIM (System for Cross-domain Identity Management), including user migrations, view tests, and search API sorting and pagination.
  • Accessibility Improvements: Implements accessibility improvements in the frontend.
  • Dependency Updates: Updates several dependencies, including @dnd-kit/sortable, @sentry/nextjs, @mui/lab, and tldextract.
  • Github Workflow Updates: Updates github workflows to include MITOL_API_LOGOUT_SUFFIX and update heroku deploy digest.

Changelog

Click here to see the changelog
  • .github/workflows/production.yml
    • Updates the akhileshns/heroku-deploy action to a new digest.
    • Adds MITOL_API_LOGOUT_SUFFIX to the environment variables.
    • Adds NEXT_PUBLIC_MITOL_API_LOGOUT_SUFFIX as a build argument.
  • .github/workflows/release-candidate.yml
    • Updates the akhileshns/heroku-deploy action to a new digest.
    • Adds MITOL_API_LOGOUT_SUFFIX to the environment variables.
    • Adds NEXT_PUBLIC_MITOL_API_LOGOUT_SUFFIX as a build argument.
  • .pre-commit-config.yaml
    • Excludes keycloak config files from pre-commit checks.
  • .secrets.baseline
    • Excludes keycloak tls files from secrets checks.
  • Dockerfile
    • Changes mkdir /src/staticfiles to mkdir -p /src/staticfiles to ensure parent directories are created if they don't exist.
  • Dockerfile-litellm
    • Removes the litellm dockerfile.
  • README-keycloak.md
    • Adds documentation for Keycloak and APISIX integration.
  • RELEASE.rst
    • Adds release notes for version 0.31.0.
  • config/apisix/apisix.yaml
    • Adds configuration for apisix routes.
  • config/apisix/config.yaml
    • Adds configuration for apisix config.
  • config/apisix/debug.yaml
    • Adds configuration for apisix debug.
  • config/keycloak/providers/README.md
    • Adds a README file for the keycloak providers directory.
  • config/keycloak/realms/default-realm.json
    • Adds a default realm configuration for Keycloak.
  • config/keycloak/tls/README.md
    • Adds a README file for the keycloak tls directory.
  • config/keycloak/tls/tls.crt
    • Adds a default tls certificate.
  • config/keycloak/tls/tls.crt.default
    • Adds a default tls certificate.
  • config/keycloak/tls/tls.key
    • Adds a default tls key.
  • config/keycloak/tls/tls.key.default
    • Adds a default tls key.
  • config/litellm_config.yml
    • Removes the litellm config file.
  • config/postgres/init-keycloak.sql
    • Adds a sql file to initialize the keycloak database.
  • docker-compose.litellm.yml
    • Removes the litellm docker compose file.
  • docker-compose.opensearch.base.yml
    • Adds _JAVA_OPTIONS=-XX:UseSVE=0 to disable SVE (Scalable Vector Extension) for ARM64.
  • docker-compose.services.yml
    • Adds a volume for postgres initdb.
    • Removes restart policy from qdrant service.
    • Adds keycloak and apigateway services.
    • Adds keycloak-store volume.
  • docker-compose.yml
    • Adds env files to the docker compose include.
  • env/backend.env
    • Changes MITOL_COOKIE_NAME from discussions to mitlearn.
  • env/backend.local.example.env
    • Adds APISIX/Keycloak settings.
  • env/frontend.env
    • Adds NEXT_PUBLIC_MITOL_API_LOGOUT_SUFFIX.
  • env/shared.env
    • Adds comments to explain apisix and keycloak settings.
    • Adds NGINX_PORT, APISIX_PORT, KEYCLOAK_PORT, and KEYCLOAK_SSL_PORT.
  • env/shared.local.example.env
    • Adds MITOL_NEW_USER_LOGIN_URL.
  • frontends/api/src/generated/v0/api.ts
    • Adds edx_block_id to the VectorContentFilesSearchApi.
  • frontends/main/Dockerfile.web
    • Adds NEXT_PUBLIC_MITOL_API_LOGOUT_SUFFIX to the build environment.
  • frontends/main/package.json
    • Updates @sentry/nextjs to v9.0.0.
    • Updates @dnd-kit/sortable to v10.0.0
  • frontends/main/src/app-pages/ChatPage/ChatPage.tsx
    • Adds credentials: 'include' to the fetch options.
  • frontends/main/src/app-pages/ChatSyllabusPage/ChatSyllabusPage.tsx
    • Adds credentials: 'include' to the fetch options.
  • frontends/main/src/app-pages/DashboardPage/DashboardPage.tsx
    • Adds focus-visible styling to tabs container.
  • frontends/main/src/common/metadata.ts
    • Updates import to use RESOURCE_DRAWER_PARAMS instead of RESOURCE_DRAWER_QUERY_PARAM.
  • frontends/main/src/common/urls.ts
    • Adds MITOL_API_LOGOUT_SUFFIX and incorporates it into the LOGOUT url.
    • Adds RECOMMENDER_QUERY_PARAM and RESOURCE_DRAWER_PARAMS.
  • frontends/main/src/page-components/AiChat/AiChatWithEntryScreen.tsx
    • Adds data-testid to EntryScreen.
  • frontends/main/src/page-components/AiChat/AiRecommendationBotDrawer.tsx
    • Refactors AiRecommendationBotDrawer to use RoutedDrawer and DrawerContent.
  • frontends/main/src/page-components/AiChat/AskTimDrawerButton.test.tsx
    • Adds tests for AskTimDrawerButton.
  • frontends/main/src/page-components/AiChat/AskTimDrawerButton.tsx
    • Refactors AskTimDrawerButton to use ButtonLink and RoutedDrawer.
  • frontends/main/src/page-components/LearningResourceDrawer/LearningResourceDrawer.test.tsx
    • Adds tests for LearningResourceDrawer.
  • frontends/main/src/page-components/LearningResourceDrawer/LearningResourceDrawer.tsx
    • Refactors LearningResourceDrawer to use RoutedDrawer and DrawerContent.
  • frontends/main/src/page-components/LearningResourceDrawer/useResourceDrawerHref.ts
    • Updates import to use RESOURCE_DRAWER_PARAMS instead of RESOURCE_DRAWER_QUERY_PARAM.
  • frontends/main/src/page-components/LearningResourceExpanded/AiChatSyllabusSlideDown.test.tsx
    • Adds tests for AiChatSyllabusSlideDown.
  • frontends/main/src/page-components/LearningResourceExpanded/AiChatSyllabusSlideDown.tsx
    • Refactors AiChatSyllabusSlideDown to use props for open state.
  • frontends/main/src/page-components/LearningResourceExpanded/LearningResourceExpanded.test.tsx
    • Adds tests for LearningResourceExpanded.
  • frontends/main/src/page-components/LearningResourceExpanded/LearningResourceExpanded.tsx
    • Adds logic to handle chat expansion and URL parameters.
  • frontends/main/src/page-components/ResourceCard/ResourceCard.test.tsx
    • Updates import to use RESOURCE_DRAWER_PARAMS instead of RESOURCE_DRAWER_QUERY_PARAM.
  • frontends/ol-components/package.json
    • Updates @mui/lab to 6.0.0-beta.28.
    • Updates @mui/material to 6.4.5.
    • Updates @mui/material-nextjs to 6.4.3.
    • Updates @mui/system to 6.4.3.
    • Updates @dnd-kit/sortable to v10.0.0
  • frontends/ol-components/src/components/Checkbox/Checkbox.tsx
    • Adds focus-visible styling to checkboxes.
  • frontends/ol-components/src/components/Checkbox/CheckboxChoiceField.tsx
    • Fixes type error with FormLabel.
  • frontends/ol-components/src/components/Link/Link.tsx
    • Refactors Link component to use LinkAdapter.
  • frontends/ol-components/src/components/LinkAdapter/LinkAdapter.tsx
    • Adds LinkAdapter component for handling shallow routing.
  • frontends/ol-components/src/components/RoutedDrawer/RoutedDrawer.tsx
    • Adds RoutedDrawer component for managing drawer state with URL parameters.
  • frontends/ol-components/src/components/SelectField/SelectField.test.tsx
    • Adds tests for Select and SelectField components.
  • frontends/ol-components/src/components/SelectField/SelectField.tsx
    • Adds workaround for MUI issue with SelectField focus.
  • frontends/ol-components/src/components/SimpleSelect/SimpleSelect.tsx
    • Removes unused MenuItem.
  • frontends/ol-components/src/components/ThemeProvider/ThemeProvider.tsx
    • Updates ThemeProvider to use LinkAdapter.
  • frontends/ol-utilities/package.json
    • Updates @dnd-kit/sortable to v10.0.0
  • learning_resources/models.py
    • Updates for_serialization to prefetch related fields.
    • Adds edx_block_id to QDRANT_CONTENT_FILE_PARAM_MAP
  • main/factories.py
    • Adds scim_external_id and scim_username to UserFactory.
  • main/middleware/apisix_user.py
    • Adds ApisixUserMiddleware for handling APISIX-specific headers.
  • main/middleware/apisix_user_test.py
    • Adds tests for apisix middleware.
  • main/settings.py
    • Updates VERSION to 0.31.0.
    • Adds ApisixUserMiddleware to MIDDLEWARE.
    • Adds Keycloak API settings.
  • openapi/specs/v0.yaml
    • Adds edx_block_id to the VectorContentFilesSearch API.
  • poetry.lock
    • Updates dependencies in poetry.lock.
  • profiles/admin.py
    • Removes scim fields from ProfileAdmin.
  • profiles/forms.py
    • Removes scim fields from ProfileForm.
  • scim/adapters.py
    • Updates SCIMUser adapter to use User model fields instead of Profile fields.
  • scim/urls.py
    • Updates scim urls to use regex.
  • scim/views.py
    • Adds SearchView for handling SCIM search requests.
  • scim/views_test.py
    • Adds tests for SCIM views.
    • Adds large_user_set fixture.
  • users/admin.py
    • Adds SCIM fields to UserAdmin.
  • users/migrations/0004_add_scim_and_timestamp_fields.py
    • Adds SCIM and timestamp fields to the User model.
  • users/migrations/0005_set_user_scim_id.py
    • Adds migration to set user scim id.
  • users/models.py
    • Updates User model to inherit from AbstractSCIMUserMixin and TimestampedModel.
  • vector_search/constants.py
    • Adds edx_block_id to QDRANT_CONTENT_FILE_PARAM_MAP.
  • vector_search/serializers.py
    • Adds edx_block_id to ContentFileVectorSearchRequestSerializer.
  • vector_search/tasks.py
    • Content files to embed should come from next course run
  • vector_search/tasks_test.py
    • Adds tests for vector search tasks.
    • Content files to embed should come from latest run if the next run is missing
  • vector_search/utils.py
    • Updates _content_file_vector_hits to include all Contentfile metadata to chunk responses.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


Trivia time!

What is the origin of the name 'Keycloak'?

Click here for the answer
The name 'Keycloak' is derived from the term 'key cloaking,' which refers to the process of securely managing and protecting cryptographic keys. The project aims to provide a secure and centralized identity and access management solution, effectively 'cloaking' or managing the keys to access various applications and services.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the version number in the release notes and settings. The changes are straightforward and seem correct. No major issues were identified.

Summary of Findings

Merge Readiness

The pull request updates the version number in the release notes and settings. The changes are straightforward and appear correct. I am unable to directly approve this pull request, and recommend that others review and approve this code before merging. There are no critical or high severity issues, so it seems ready to be merged after another review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants