Skip to content

chore: make .env.prd and values consistent with production deployment#4967

Merged
rschlaefli merged 3 commits into
v3from
clean-env
Nov 29, 2025
Merged

chore: make .env.prd and values consistent with production deployment#4967
rschlaefli merged 3 commits into
v3from
clean-env

Conversation

@rschlaefli

@rschlaefli rschlaefli commented Nov 29, 2025

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • New Features

    • Added Matomo analytics integration across applications for usage tracking and insights.
  • Chores

    • Updated production environment configurations with new service endpoints and domain mappings.
    • Migrated infrastructure dependencies and backend service references across multiple applications.
    • Updated development tool configurations.

✏️ Tip: You can customize this high-level summary in your review settings.

@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Nov 29, 2025
@coderabbitai

coderabbitai Bot commented Nov 29, 2025

Copy link
Copy Markdown

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

This PR performs a production domain migration from prd.df-app.ch to klicker.uzh.ch across all application services, environment configurations, and Kubernetes deployment manifests. It also adds Matomo analytics configuration variables and updates backend API endpoints to align with the new infrastructure.

Changes

Cohort / File(s) Summary
VS Code Configuration
.vscode/settings.json
Adds SARIF viewer GitHub Code Scanning setting and corrects JSON syntax in search.exclude block.
Application Environment Configs
apps/auth/.env.prd, apps/chat/.env.prd, apps/frontend-control/.env.prd, apps/frontend-manage/.env.prd, apps/frontend-pwa/.env.prd, apps/frontend-pwa/.env.assessment.prd
Migrates all production domain origins from prd.df-app.ch subdomains to klicker.uzh.ch; updates backend API endpoints; adds/activates NEXT_PUBLIC_* URL variables; introduces Matomo analytics settings (NEXT_PUBLIC_MATOMO_URL, NEXT_PUBLIC_MATOMO_SITE_ID) in manage and pwa environments.
Kubernetes Deployment Manifest
deploy/env-uzh-prd/values.yaml
Updates all global app origins, ingress hosts, TLS certificates, and domain references throughout the Helm values from prd.df-app.ch to klicker.uzh.ch; aligns API domains, cookie domains, CORS origins, and redirect URLs across all services (auth, chat, frontend, backend, LTI, assessment, response API).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • Consistency verification: Ensure domain migrations are uniform across all files (old domains fully replaced with new domains)
  • Matomo configuration: Verify newly added Matomo variables have correct URLs and site IDs
  • Backend API endpoints: Cross-check SSR API URL updates reference the correct GraphQL services
  • Helm manifest alignment: Confirm Kubernetes ingress hosts and origins match corresponding env file values

Possibly related PRs

Suggested reviewers

  • sjschlapbach

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: updating environment configuration files (.env.prd) and Helm values to be consistent with production deployment domains (switching from prd.df-app.ch to klicker.uzh.ch).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5d3ebea and 6060dbf.

📒 Files selected for processing (8)
  • .vscode/settings.json (1 hunks)
  • apps/auth/.env.prd (2 hunks)
  • apps/chat/.env.prd (1 hunks)
  • apps/frontend-control/.env.prd (2 hunks)
  • apps/frontend-manage/.env.prd (2 hunks)
  • apps/frontend-pwa/.env.assessment.prd (1 hunks)
  • apps/frontend-pwa/.env.prd (2 hunks)
  • deploy/env-uzh-prd/values.yaml (15 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: sjschlapbach
Repo: uzh-bf/klicker-uzh PR: 4893
File: apps/frontend-pwa/.env.assessment:6-6
Timestamp: 2025-09-10T22:07:32.100Z
Learning: The Klicker UZH application uses a multi-tenant deployment architecture where the same codebase is deployed on separate pods for assessment mode and standard mode. During development, different commands start the application in either assessment or standard mode. During deployment, an assessment flag is used to create separate containers - one set for assessment frontend (assessment.klicker.com) and response API (assessment-response-api.com), and another set for standard mode. Traefik routing configuration is handled at the deployment/infrastructure level rather than in the repository's util/traefik directory.
📚 Learning: 2025-06-23T12:33:32.937Z
Learnt from: CR
Repo: uzh-bf/klicker-uzh PR: 0
File: packages/next-config/CLAUDE.md:0-0
Timestamp: 2025-06-23T12:33:32.937Z
Learning: The klicker-uzh/next-config package provides standardized Next.js configuration functions (getNextBaseConfig and getNextPWAConfig) to ensure consistency and reduce duplication across all frontend applications in the KlickerUZH ecosystem.

Applied to files:

  • apps/frontend-control/.env.prd
  • apps/frontend-pwa/.env.assessment.prd
  • apps/frontend-pwa/.env.prd
  • apps/chat/.env.prd
  • apps/frontend-manage/.env.prd
  • apps/auth/.env.prd
📚 Learning: 2025-09-10T22:07:32.100Z
Learnt from: sjschlapbach
Repo: uzh-bf/klicker-uzh PR: 4893
File: apps/frontend-pwa/.env.assessment:6-6
Timestamp: 2025-09-10T22:07:32.100Z
Learning: The Klicker UZH application uses a multi-tenant deployment architecture where the same codebase is deployed on separate pods for assessment mode and standard mode. During development, different commands start the application in either assessment or standard mode. During deployment, an assessment flag is used to create separate containers - one set for assessment frontend (assessment.klicker.com) and response API (assessment-response-api.com), and another set for standard mode. Traefik routing configuration is handled at the deployment/infrastructure level rather than in the repository's util/traefik directory.

Applied to files:

  • apps/frontend-pwa/.env.assessment.prd
  • deploy/env-uzh-prd/values.yaml
  • apps/auth/.env.prd
📚 Learning: 2025-09-09T15:29:52.287Z
Learnt from: sjschlapbach
Repo: uzh-bf/klicker-uzh PR: 4891
File: packages/graphql/src/services/liveQuizzes.ts:1082-1089
Timestamp: 2025-09-09T15:29:52.287Z
Learning: In the klicker-uzh project, they use persistent queries and controlled GraphQL schema exposure, which means that even if sensitive fields like pinCode are present in the returned objects from service functions, they are not actually exposed to clients if not included in the allowed GraphQL queries.

Applied to files:

  • apps/frontend-pwa/.env.prd
🪛 dotenv-linter (4.0.0)
apps/frontend-control/.env.prd

[warning] 4-4: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 5-5: [UnorderedKey] The NEXT_PUBLIC_API_URL key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 6-6: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 6-6: [UnorderedKey] The NEXT_PUBLIC_API_URL_SSR key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 10-10: [UnorderedKey] The APP_ORIGIN_MANAGE key should go before the APP_ORIGIN_PWA key

(UnorderedKey)


[warning] 11-11: [UnorderedKey] The APP_ORIGIN_CONTROL key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 12-12: [UnorderedKey] The APP_ORIGIN_LTI key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 13-13: [UnorderedKey] The APP_ORIGIN_AUTH key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 14-14: [UnorderedKey] The APP_ORIGIN_CHAT key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 15-15: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_API key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 16-16: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_PWA key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 26-26: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 27-27: [UnorderedKey] The NEXT_PUBLIC_MATOMO_SITE_ID key should go before the NEXT_PUBLIC_MATOMO_URL key

(UnorderedKey)

apps/frontend-pwa/.env.assessment.prd

[warning] 4-4: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 5-5: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 6-6: [UnorderedKey] The NEXT_PUBLIC_ADD_RESPONSE_URL key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 7-7: [UnorderedKey] The NEXT_PUBLIC_API_URL key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 8-8: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 8-8: [UnorderedKey] The NEXT_PUBLIC_API_URL_SSR key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 9-9: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 13-13: [UnorderedKey] The APP_ORIGIN_MANAGE key should go before the APP_ORIGIN_PWA key

(UnorderedKey)


[warning] 14-14: [UnorderedKey] The APP_ORIGIN_CONTROL key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 15-15: [UnorderedKey] The APP_ORIGIN_LTI key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 16-16: [UnorderedKey] The APP_ORIGIN_AUTH key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 17-17: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_API key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 18-18: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_PWA key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)

apps/frontend-pwa/.env.prd

[warning] 4-4: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 5-5: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 6-6: [UnorderedKey] The NEXT_PUBLIC_ADD_RESPONSE_URL key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 9-9: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 10-10: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 14-14: [UnorderedKey] The APP_ORIGIN_MANAGE key should go before the APP_ORIGIN_PWA key

(UnorderedKey)


[warning] 15-15: [UnorderedKey] The APP_ORIGIN_CONTROL key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 16-16: [UnorderedKey] The APP_ORIGIN_LTI key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 17-17: [UnorderedKey] The APP_ORIGIN_AUTH key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 18-18: [UnorderedKey] The APP_ORIGIN_CHAT key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 19-19: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_API key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 20-20: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_PWA key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 32-32: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 33-33: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 33-33: [UnorderedKey] The NEXT_PUBLIC_MATOMO_SITE_ID key should go before the NEXT_PUBLIC_MATOMO_URL key

(UnorderedKey)

apps/chat/.env.prd

[warning] 2-2: [UnorderedKey] The NEXT_PUBLIC_CHAT_URL key should go before the NEXT_PUBLIC_PWA_URL key

(UnorderedKey)

apps/frontend-manage/.env.prd

[warning] 4-4: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 5-5: [UnorderedKey] The NEXT_PUBLIC_API_URL key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 6-6: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 6-6: [UnorderedKey] The NEXT_PUBLIC_API_URL_SSR key should go before the NEXT_PUBLIC_AVATAR_BASE_PATH key

(UnorderedKey)


[warning] 10-10: [UnorderedKey] The APP_ORIGIN_MANAGE key should go before the APP_ORIGIN_PWA key

(UnorderedKey)


[warning] 11-11: [UnorderedKey] The APP_ORIGIN_CONTROL key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 12-12: [UnorderedKey] The APP_ORIGIN_LTI key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 13-13: [UnorderedKey] The APP_ORIGIN_AUTH key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 14-14: [UnorderedKey] The APP_ORIGIN_CHAT key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 15-15: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_API key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 16-16: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_PWA key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 27-27: [UnorderedKey] The NEXT_PUBLIC_MATOMO_SITE_ID key should go before the NEXT_PUBLIC_MATOMO_URL key

(UnorderedKey)

apps/auth/.env.prd

[warning] 7-7: [UnorderedKey] The APP_ORIGIN_MANAGE key should go before the APP_ORIGIN_PWA key

(UnorderedKey)


[warning] 8-8: [UnorderedKey] The APP_ORIGIN_CONTROL key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 9-9: [UnorderedKey] The APP_ORIGIN_LTI key should go before the APP_ORIGIN_MANAGE key

(UnorderedKey)


[warning] 10-10: [UnorderedKey] The APP_ORIGIN_AUTH key should go before the APP_ORIGIN_CONTROL key

(UnorderedKey)


[warning] 11-11: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_API key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 12-12: [UnorderedKey] The APP_ORIGIN_ASSESSMENT_PWA key should go before the APP_ORIGIN_AUTH key

(UnorderedKey)


[warning] 23-23: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 23-23: [UnorderedKey] The AUTH_STUDENT_ALLOWED_HOSTS key should go before the NEXTAUTH_URL key

(UnorderedKey)


[warning] 24-24: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 24-24: [UnorderedKey] The AUTH_LECTURER_ALLOWED_HOSTS key should go before the AUTH_STUDENT_ALLOWED_HOSTS key

(UnorderedKey)


[warning] 25-25: [QuoteCharacter] The value has quote characters (', ")

(QuoteCharacter)


[warning] 25-25: [UnorderedKey] The AUTH_PWA_HOSTS key should go before the AUTH_STUDENT_ALLOWED_HOSTS key

(UnorderedKey)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (19)
  • GitHub Check: Analyze (javascript)
  • GitHub Check: build-arm
  • GitHub Check: build-arm
  • GitHub Check: build-arm
  • GitHub Check: build
  • GitHub Check: build-arm
  • GitHub Check: build-amd
  • GitHub Check: build-arm
  • GitHub Check: build-arm
  • GitHub Check: build-arm
  • GitHub Check: build
  • GitHub Check: build-amd
  • GitHub Check: build-arm
  • GitHub Check: build-arm
  • GitHub Check: build-amd
  • GitHub Check: build-arm
  • GitHub Check: claude-review
  • GitHub Check: Analyze (java-kotlin)
  • GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (12)
.vscode/settings.json (2)

45-45: JSON syntax fix is correct.

The trailing comma after the search.exclude block is necessary for valid JSON structure when adding additional properties.


46-46: Verify scope: SARIF viewer setting appears unrelated to PR objective.

This PR's stated objective is a production domain migration (e.g., prd.df-app.chklicker.uzh.ch). The sarif-viewer.connectToGithubCodeScanning setting is a developer tooling enhancement that doesn't relate to production configuration changes.

Verify whether this change was intentional or should be extracted to a separate PR. If intentional, confirm this aligns with your team's standards for bundling unrelated .vscode/settings.json updates with infrastructure changes.

apps/chat/.env.prd (1)

1-3: Domain migration looks correct.

The environment variables have been successfully updated to the new uzh.ch domains. No functional issues detected.

apps/frontend-pwa/.env.assessment.prd (1)

1-20: Assessment domain configuration is correct.

Domain migrations are consistent with standard mode. The assessment-response-api subdomain and app-klicker-klicker-uzh-v2-backend-assessment SSR endpoint have been properly updated. NEXT_PUBLIC_IS_ASSESSMENT=true correctly flags this as assessment mode.

apps/auth/.env.prd (1)

5-25: Auth allowlists correctly mapped to new domains.

The AUTH_*_ALLOWED_HOSTS have been properly updated to reflect the multi-tenant deployment architecture (assessment, manage, pwa subdomains). APP_ORIGIN values are consistent with other frontend services.

apps/frontend-control/.env.prd (2)

1-16: Domain configuration correct.

API_DOMAIN properly set to backend-sls, matching the ingress definition in values.yaml. APP_ORIGIN variables are consistent across the PR.


26-27: Verify MATOMO_SITE_ID type consistency.

NEXT_PUBLIC_MATOMO_SITE_ID is set as a numeric value (480) here, but in apps/frontend-pwa/.env.prd it's a string ("469"). Confirm whether the code expects a string or number and align all files accordingly.

apps/frontend-pwa/.env.prd (2)

1-9: ✅ Resolves past review comment: API host now correctly aligned with backend-sls ingress.

The API_DOMAIN has been properly updated to backend-sls, which matches the ingress host defined in deploy/env-uzh-prd/values.yaml (backendGraphql.ingress.hosts). Browser GraphQL requests will now correctly reach the deployed endpoint at backend-sls.klicker.uzh.ch.


32-33: MATOMO_SITE_ID type inconsistency across frontend files.

Line 33 sets NEXT_PUBLIC_MATOMO_SITE_ID as a quoted string ("469"), while apps/frontend-control/.env.prd and apps/frontend-manage/.env.prd define it as unquoted numbers (480, 470). Verify that the frontend code can handle both types, or standardize across all environment files.

deploy/env-uzh-prd/values.yaml (1)

8-15: Infrastructure domain migration is comprehensive and consistent.

All service origins, ingress hosts, CORS configurations, and cookie domains have been properly updated to the new uzh.ch infrastructure. Assessment mode domains are correctly isolated (assessment.klicker.uzh.ch for student endpoint, assessment-api.klicker.uzh.ch for API). The response API CORS origins are appropriately scoped per mode.

Also applies to: 424-428, 528-528, 556-556, 739-743, 771-771

apps/frontend-manage/.env.prd (2)

1-16: Domain configuration is correct.

API_DOMAIN properly configured to use backend-sls, consistent with other frontend services and matching the infrastructure definition in values.yaml.


26-27: MATOMO configuration has type and quote inconsistency.

NEXT_PUBLIC_MATOMO_SITE_ID is numeric (470) here, but string ("469") in apps/frontend-pwa/.env.prd. Additionally, NEXT_PUBLIC_MATOMO_URL lacks quotes here but has quotes in frontend-pwa. Standardize the format and data types across all MATOMO configuration variables.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dosubot dosubot Bot added the deployment label Nov 29, 2025

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/frontend-pwa/.env.prd Outdated
@sonarqubecloud

Copy link
Copy Markdown

@rschlaefli rschlaefli merged commit 66443d4 into v3 Nov 29, 2025
47 of 48 checks passed
@rschlaefli rschlaefli deleted the clean-env branch November 29, 2025 09:42
@cypress

cypress Bot commented Nov 29, 2025

Copy link
Copy Markdown

klicker-uzh    Run #6533

Run Properties:  status check failed Failed #6533  •  git commit 379e55e24e ℹ️: Merge 6060dbf7008050154656b8331b9598a7473105c1 into 5d3ebeaa05c11ef7fb749cf30c71...
Project klicker-uzh
Branch Review clean-env
Run status status check failed Failed #6533
Run duration 09m 44s
Commit git commit 379e55e24e ℹ️: Merge 6060dbf7008050154656b8331b9598a7473105c1 into 5d3ebeaa05c11ef7fb749cf30c71...
Committer Roland Schläfli
View all properties for this run ↗︎

Test results
Tests that failed  Failures 2
Tests that were flaky  Flaky 1
Tests that did not run due to a developer annotating a test with .skip  Pending 0
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 756
View all changes introduced in this branch ↗︎

Tests for review

Failed  cypress/e2e/Q-practice-quiz-workflow.cy.ts • 2 failed tests

View Output Video

Test Artifacts
Different practice quiz workflows > Publish the future practice quiz and verify scheduled state Test Replay Screenshots Video
Different practice quiz workflows > Unpublish the practice quiz again on the lecturer view Test Replay Screenshots Video
Flakiness  cypress/e2e/O-live-quiz-workflow.cy.ts • 1 flaky test

View Output Video

Test Artifacts
Different live-quiz workflows > Verify that after closing the active live quiz block, the sample solution is shown Test Replay Screenshots Video

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

Labels

deployment size:L This PR changes 100-499 lines, ignoring generated files.

Development

Successfully merging this pull request may close these issues.

1 participant