diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 5151fee12..fb53bd257 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,6 +33,10 @@ body: options: # The below comment is used to insert a new version with on-release.yml #NEXT_VERSION# + - 1.37.0 + - 1.36.1 + - 1.36.0 + - 1.35.1 - 1.35.0 - 1.34.0 - 1.33.0 diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 377002605..4f136e5f6 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -6,6 +6,11 @@ matchPackagePatterns: ["^@homarr/"], enabled: false, }, + // Reenable once https://github.com/privatenumber/tsx/issues/737 is fixed + { + matchPackagePatterns: ["tsx"], + enabled: false, + }, { matchUpdateTypes: ["minor", "patch", "pin", "digest"], automerge: true, diff --git a/.github/workflows/automatic-approval.yml b/.github/workflows/automatic-approval.yml index 72e6aaea2..7a38b6e02 100644 --- a/.github/workflows/automatic-approval.yml +++ b/.github/workflows/automatic-approval.yml @@ -3,6 +3,8 @@ on: pull_request: types: [opened, synchronize] +permissions: {} + jobs: approve-automatic-prs: runs-on: ubuntu-latest @@ -12,10 +14,12 @@ jobs: uses: actions/checkout@v5 - name: Obtain token id: obtainToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} - app_id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} + private-key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} + app-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} + permission-pull-requests: write # required to approve pull request + - name: Install GitHub CLI run: sudo apt-get install -y gh - name: Approve automatic PRs diff --git a/.github/workflows/crowdin-schedule-download.yml b/.github/workflows/crowdin-schedule-download.yml index f5814f120..c2f12042a 100644 --- a/.github/workflows/crowdin-schedule-download.yml +++ b/.github/workflows/crowdin-schedule-download.yml @@ -5,6 +5,9 @@ on: schedule: - cron: "0 0 * * *" # every day at midnight +permissions: + contents: read # required for code checkout + jobs: download-crowdin-translations: runs-on: ubuntu-latest @@ -15,10 +18,12 @@ jobs: - name: Obtain token id: obtainToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.CROWDIN_APP_PRIVATE_KEY }} - app_id: ${{ secrets.CROWDIN_APP_ID }} + private-key: ${{ secrets.CROWDIN_APP_PRIVATE_KEY }} + app-id: ${{ secrets.CROWDIN_APP_ID }} + permission-contents: write # required to commit to crowdin branch + permission-pull-requests: write # required to create pull request - name: Download Crowdin translations id: crowdin-download diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 307930137..1223b4db1 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -49,18 +49,23 @@ jobs: - name: Obtain token if: env.SKIP_RELEASE == 'false' id: obtainToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} - app_id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} + app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + permission-contents: write # required to commit package.json & changelog changes, merge them to dev and publish the release + - uses: actions/checkout@v5 if: env.SKIP_RELEASE == 'false' with: persist-credentials: false - - uses: actions/setup-node@v4 + - uses: pnpm/action-setup@v4 + if: env.SKIP_RELEASE == 'false' + - uses: actions/setup-node@v5 if: env.SKIP_RELEASE == 'false' with: node-version: 22.19.0 + cache: "pnpm" - run: npm i -g pnpm if: env.SKIP_RELEASE == 'false' - name: Install dependencies diff --git a/.github/workflows/deployment-weekly-release.yml b/.github/workflows/deployment-weekly-release.yml index a0fdcc723..e96cf4eec 100644 --- a/.github/workflows/deployment-weekly-release.yml +++ b/.github/workflows/deployment-weekly-release.yml @@ -49,10 +49,11 @@ jobs: args: "Created a release PR ${{ steps.create-pull-request.outputs.url }} for version ${{ steps.semver.outputs.next }} (new behaviour: ${{ steps.semver.outputs.bump }})" - name: Obtain token id: obtainApprovalToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} - app_id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} + private-key: ${{ secrets.RENOVATE_APPROVE_PRIVATE_KEY }} + app-id: ${{ secrets.RENOVATE_APPROVE_APP_ID }} + permission-pull-requests: write - name: Approve PR env: GITHUB_TOKEN: ${{ steps.obtainApprovalToken.outputs.token }} @@ -60,10 +61,12 @@ jobs: gh pr review --approve --body "Automatically approved by GitHub Action" - name: Obtain token id: obtainMergeToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} - app_id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} + app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + permission-contents: write # write to main branch (due to merge) + permission-pull-requests: write # merge pull request - id: automerge if: ${{ steps.semver.outputs.bump != 'major' }} name: automerge diff --git a/.github/workflows/on-release.yml b/.github/workflows/on-release.yml index 83357cafe..9aac94c45 100644 --- a/.github/workflows/on-release.yml +++ b/.github/workflows/on-release.yml @@ -11,12 +11,14 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.HOMARR_DOCS_RELEASE_APP_PRIVATE_KEY }} - app_id: ${{ vars.HOMARR_DOCS_RELEASE_APP_ID }} - installation_retrieval_mode: repository - installation_retrieval_payload: homarr-labs/documentation + private-key: ${{ secrets.HOMARR_DOCS_RELEASE_APP_PRIVATE_KEY }} + app-id: ${{ vars.HOMARR_DOCS_RELEASE_APP_ID }} + owner: homarr-labs + repositories: | + documentation + permission-contents: write # required to dispatch repository workflow - name: Trigger documentation release env: GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} @@ -40,10 +42,12 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} - app_id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + private-key: ${{ secrets.RENOVATE_MERGE_PRIVATE_KEY }} + app-id: ${{ secrets.RENOVATE_MERGE_APP_ID }} + permission-contents: write # required to commit to branch + permission-pull-requests: write # required to create pr & enable automerge - name: Checkout code uses: actions/checkout@v5 with: @@ -57,6 +61,7 @@ jobs: run: | git config --global user.email "175486441+homarr-releases[bot]@users.noreply.github.com" git config --global user.name "Releases Homarr" + git checkout -b update-bug-report-template git add . git commit -m "chore: update bug report template" diff --git a/.github/workflows/skip-renovate-stability-days.yml b/.github/workflows/skip-renovate-stability-days.yml new file mode 100644 index 000000000..5492103b7 --- /dev/null +++ b/.github/workflows/skip-renovate-stability-days.yml @@ -0,0 +1,26 @@ +permissions: + statuses: write + +on: + pull_request: + types: [opened, synchronize] + +jobs: + skip-stability-days: + if: ${{ !startsWith(github.head_ref, 'renovate/') }} + name: Skip Stability Days + runs-on: ubuntu-latest + steps: + - name: Add status check + env: + GH_TOKEN: ${{secrets.GITHUB_TOKEN}} + run: | + gh api \ + --method POST \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + /repos/${{github.repository}}/statuses/${{github.event.pull_request.head.sha}} \ + -f 'state=success' \ + -f 'target_url=https://docs.renovatebot.com/configuration-options#minimumreleaseage' \ + -f 'description=Skipped for non renovate branches' \ + -f 'context=renovate/stability-days' diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index 86f7c95d5..c8cb1efde 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -9,9 +9,6 @@ env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" CROWDIN_TOKEN: "${{ secrets.CROWDIN_UPDATE_CONTRIBUTORS_TOKEN }}" -permissions: - contents: write - jobs: update-contributors: runs-on: ubuntu-latest @@ -21,20 +18,24 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} - app_id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} + private-key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} + app-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} + permission-contents: write # required to commit to branch + permission-pull-requests: write # required to create pr & enable automerge - name: Checkout repository uses: actions/checkout@v5 env: GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} + - uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: ${{ matrix.node-version }} + cache: "pnpm" - name: Run update script run: node ./scripts/update-contributors.mjs diff --git a/.github/workflows/update-integration-list.yml b/.github/workflows/update-integration-list.yml index dc90ce5c3..ff7ad9ae8 100644 --- a/.github/workflows/update-integration-list.yml +++ b/.github/workflows/update-integration-list.yml @@ -1,7 +1,7 @@ name: Update integration list on: - workflow_dispatch: { } + workflow_dispatch: {} push: paths: - packages/definitions/src/integration.ts @@ -20,10 +20,12 @@ jobs: steps: - name: Obtain token id: obtainToken - uses: tibdex/github-app-token@v2 + uses: actions/create-github-app-token@v2 with: - private_key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} - app_id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} + private-key: ${{ secrets.HOMARR_UPDATE_CONTRIBUTORS_PRIVATE_KEY }} + app-id: ${{ vars.HOMARR_UPDATE_CONTRIBUTORS_APP_ID }} + permission-contents: write # required to commit to branch + permission-pull-requests: write # required to create pr & enable automerge - name: Checkout code uses: actions/checkout@v5 env: @@ -59,4 +61,4 @@ jobs: env: GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} run: | - gh pr merge ${{steps.create-pull-request.outputs.pull-request-number}} --auto --squash \ No newline at end of file + gh pr merge ${{steps.create-pull-request.outputs.pull-request-number}} --auto --squash diff --git a/CHANGELOG.md b/CHANGELOG.md index 587ee9a24..b331ae6d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,88 @@ +## [1.37.0](https://github.com/homarr-labs/homarr/compare/v1.36.1...v1.37.0) (2025-09-12) + +### Features + +* **integration:** add github app authentication ([#3968](https://github.com/homarr-labs/homarr/issues/3968)) ([bfcbffb](https://github.com/homarr-labs/homarr/commit/bfcbffbdc6499ac5f10bfbf2f5db141eef955049)) +* **integrations:** add truenas ([#3745](https://github.com/homarr-labs/homarr/issues/3745)) ([dc08bac](https://github.com/homarr-labs/homarr/commit/dc08bacebfe22ee528565259605787720a522b6b)) + +### Bug Fixes + +* **adguard-integration:** parse error with protection_disabled_duration field ([#4018](https://github.com/homarr-labs/homarr/issues/4018)) ([eb5af11](https://github.com/homarr-labs/homarr/commit/eb5af116436ddd11b7ff094e882355f951ca622a)) +* **api:** page is crashing ([#4039](https://github.com/homarr-labs/homarr/issues/4039)) ([a843f60](https://github.com/homarr-labs/homarr/commit/a843f6043b0ed90c5a205b697497490631e0dd19)) +* **boards:** issues with old-import board name containing spaces ([#4052](https://github.com/homarr-labs/homarr/issues/4052)) ([f7471b6](https://github.com/homarr-labs/homarr/commit/f7471b6c63f80618d0b91b16fb5545e0a3760cbe)) +* **deps:** update dependency @ctrl/deluge to ^7.2.0 ([#4009](https://github.com/homarr-labs/homarr/issues/4009)) ([e70074b](https://github.com/homarr-labs/homarr/commit/e70074b2191df1dac1e9aa94dbb0cec7073193c9)) +* **deps:** update dependency @ctrl/qbittorrent to ^9.7.0 ([#4010](https://github.com/homarr-labs/homarr/issues/4010)) ([32b2a09](https://github.com/homarr-labs/homarr/commit/32b2a09ab4e9826b0640d47e1d443682b5fbcff5)) +* **deps:** update dependency @ctrl/transmission to ^7.3.0 ([#4011](https://github.com/homarr-labs/homarr/issues/4011)) ([bc94e34](https://github.com/homarr-labs/homarr/commit/bc94e34ada04458901389f3d7ba18e76849fe6d4)) +* **deps:** update dependency @extractus/feed-extractor to v7.1.7 ([#4034](https://github.com/homarr-labs/homarr/issues/4034)) ([fbb86c4](https://github.com/homarr-labs/homarr/commit/fbb86c452d3b8d8cde5357e369fbc14349b71c81)) +* **deps:** update dependency @gitbeaker/rest to ^43.5.0 ([#4023](https://github.com/homarr-labs/homarr/issues/4023)) ([4fc38bc](https://github.com/homarr-labs/homarr/commit/4fc38bcd5bbed0b3ede2e742c0677bdfbab47295)) +* **deps:** update dependency dotenv to ^17.2.2 ([#4024](https://github.com/homarr-labs/homarr/issues/4024)) ([1323bb2](https://github.com/homarr-labs/homarr/commit/1323bb276fc8120dd62385b4c79cc630b2078949)) +* **deps:** update dependency fastify to ^5.6.0 ([#4042](https://github.com/homarr-labs/homarr/issues/4042)) ([a149d8c](https://github.com/homarr-labs/homarr/commit/a149d8c3c112740c9c563463ab72e89c77b9a4ec)) +* **deps:** update dependency mysql2 to v3.14.4 ([#4013](https://github.com/homarr-labs/homarr/issues/4013)) ([8bf278f](https://github.com/homarr-labs/homarr/commit/8bf278f603ff37e68d7bed41c4c5f6e6351fe94e)) +* **deps:** update dependency next-intl to v4.3.6 ([#4035](https://github.com/homarr-labs/homarr/issues/4035)) ([a1b5f5c](https://github.com/homarr-labs/homarr/commit/a1b5f5ceea96b18bda8aa7cee7002b10dc4b428c)) +* **deps:** update dependency next-intl to v4.3.7 ([#4038](https://github.com/homarr-labs/homarr/issues/4038)) ([cd90eaa](https://github.com/homarr-labs/homarr/commit/cd90eaae9da566393114a02765f57f1e6f55fe1c)) +* **deps:** update dependency sass to ^1.92.0 ([#4025](https://github.com/homarr-labs/homarr/issues/4025)) ([2eef4a8](https://github.com/homarr-labs/homarr/commit/2eef4a8304f0ab5b99313e6e8904582303dd1883)) +* **deps:** update dependency sass to ^1.92.1 ([#4031](https://github.com/homarr-labs/homarr/issues/4031)) ([8231efa](https://github.com/homarr-labs/homarr/commit/8231efa28195389f4b83a06d137ea6b4b2f49eee)) +* **deps:** update dependency swagger-ui-react to ^5.28.1 ([#4029](https://github.com/homarr-labs/homarr/issues/4029)) ([ecf1bd9](https://github.com/homarr-labs/homarr/commit/ecf1bd98b74c8e8fca03bcd210fb118382ce2d36)) +* **deps:** update dependency typescript-eslint to ^8.42.0 ([#4022](https://github.com/homarr-labs/homarr/issues/4022)) ([99179e4](https://github.com/homarr-labs/homarr/commit/99179e4e7d957f5616a24c63982af957613db427)) +* **deps:** update trpc monorepo to ^11.5.1 ([#4045](https://github.com/homarr-labs/homarr/issues/4045)) ([a7976e9](https://github.com/homarr-labs/homarr/commit/a7976e9d700793d8f48529bc5c1f11f8bca724ce)) +* **iframe:** disable scrolling not working ([#4017](https://github.com/homarr-labs/homarr/issues/4017)) ([7ac2a81](https://github.com/homarr-labs/homarr/commit/7ac2a81f945c44745917fe4eb8318fdfff3deb14)) +* **plex-integration:** unknown badge shown for added tv-shows ([#4032](https://github.com/homarr-labs/homarr/issues/4032)) ([4d57c7c](https://github.com/homarr-labs/homarr/commit/4d57c7ca13bdf78b5ac9d0710cd486ad1f41d4d4)) +* **update-checker:** cached through updates ([#4046](https://github.com/homarr-labs/homarr/issues/4046)) ([26eb2c0](https://github.com/homarr-labs/homarr/commit/26eb2c08c94bd9d440a3c9e914fc9af4ffd48301)) +* **video-widget:** hls videos not working ([#4015](https://github.com/homarr-labs/homarr/issues/4015)) ([de33439](https://github.com/homarr-labs/homarr/commit/de33439b22d3f5f2ff5856054cfa31a4f78ee088)) + +### Reverts + +* **deps:** update actions/setup-node action to v5 ([#4058](https://github.com/homarr-labs/homarr/issues/4058)) ([7862612](https://github.com/homarr-labs/homarr/commit/78626121ddfa5462eaad7a6933733ec03a83c04a)) + +## [1.36.1](https://github.com/homarr-labs/homarr/compare/v1.36.0...v1.36.1) (2025-09-05) + +### Bug Fixes + +* **dns:** disable caching by default ([#4007](https://github.com/homarr-labs/homarr/issues/4007)) ([10668ee](https://github.com/homarr-labs/homarr/commit/10668ee359940c1e24b543a7a20fe400474e12bf)) + +## [1.36.0](https://github.com/homarr-labs/homarr/compare/v1.35.1...v1.36.0) (2025-09-05) + +### Features + +* **kubernetes:** add Talos providers ([#3979](https://github.com/homarr-labs/homarr/issues/3979)) ([3e59c20](https://github.com/homarr-labs/homarr/commit/3e59c20dba543634a6a79359f83c13fa81e7ccf3)) +* **rss-widget:** add hide description option ([#4000](https://github.com/homarr-labs/homarr/issues/4000)) ([b2eb2c3](https://github.com/homarr-labs/homarr/commit/b2eb2c32f6995563feb3c8b4a100be3bfe1d3d80)) +* **widget:** show name in edit modal ([#3970](https://github.com/homarr-labs/homarr/issues/3970)) ([d317cac](https://github.com/homarr-labs/homarr/commit/d317cacbe83394dd3f6de3e74b53f683654e91d1)) + +### Bug Fixes + +* add dns caching ([#3736](https://github.com/homarr-labs/homarr/issues/3736)) ([fb6b5e8](https://github.com/homarr-labs/homarr/commit/fb6b5e88ff3a5e85d06885aed1f2a99788e04f2c)) +* **deps:** tsx breaks imports like dns-caching ([#3998](https://github.com/homarr-labs/homarr/issues/3998)) ([0476543](https://github.com/homarr-labs/homarr/commit/047654351ab50a730551e61ce98065c9bb7ca3fa)) +* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.6.3 ([#3976](https://github.com/homarr-labs/homarr/issues/3976)) ([2b1a3de](https://github.com/homarr-labs/homarr/commit/2b1a3de8dffdd9f089b82e4bcfb304f156f60670)) +* **deps:** update dependency @ianvs/prettier-plugin-sort-imports to ^4.7.0 ([#3977](https://github.com/homarr-labs/homarr/issues/3977)) ([a3dde2e](https://github.com/homarr-labs/homarr/commit/a3dde2e7ee40fcfddced43f4b5c124010f0410db)) +* **deps:** update dependency @testcontainers/postgresql to ^11.5.1 ([#3948](https://github.com/homarr-labs/homarr/issues/3948)) ([9f3e68f](https://github.com/homarr-labs/homarr/commit/9f3e68fdfee5936727c97d0d99e174cd368de260)) +* **deps:** update dependency dayjs to ^1.11.15 ([#3975](https://github.com/homarr-labs/homarr/issues/3975)) ([032f7ff](https://github.com/homarr-labs/homarr/commit/032f7ffd29eddd200d5434ba1c65b8cd5800c8ff)) +* **deps:** update dependency dayjs to ^1.11.18 ([#3982](https://github.com/homarr-labs/homarr/issues/3982)) ([5e92e66](https://github.com/homarr-labs/homarr/commit/5e92e66803ddf9256fce8a92aec06dabe2491edc)) +* **deps:** update dependency drizzle-orm to ^0.44.5 ([#3962](https://github.com/homarr-labs/homarr/issues/3962)) ([ea4960e](https://github.com/homarr-labs/homarr/commit/ea4960e11332af0062df964258d9e24def0984e7)) +* **deps:** update dependency next-intl to v4.3.5 ([#3937](https://github.com/homarr-labs/homarr/issues/3937)) ([81a7f3e](https://github.com/homarr-labs/homarr/commit/81a7f3e93dfd52eea2c87cae8f2d66dd312f7055)) +* **deps:** update dependency sass to ^1.91.0 ([#3965](https://github.com/homarr-labs/homarr/issues/3965)) ([0e5f43c](https://github.com/homarr-labs/homarr/commit/0e5f43c1c38a7e0186d86c29a73477f943eeb416)) +* **deps:** update dependency swagger-ui-react to ^5.28.0 ([#3985](https://github.com/homarr-labs/homarr/issues/3985)) ([d2e9b5e](https://github.com/homarr-labs/homarr/commit/d2e9b5e983e2f277da30e98ad313e1afd35d70d3)) +* **deps:** update dependency tsx to v4.20.5 ([#3938](https://github.com/homarr-labs/homarr/issues/3938)) ([93186c3](https://github.com/homarr-labs/homarr/commit/93186c3be1fdcf6c215efcd8d7236fc44fc74d77)) +* **deps:** update dependency typescript-eslint to ^8.41.0 ([#3963](https://github.com/homarr-labs/homarr/issues/3963)) ([be0e783](https://github.com/homarr-labs/homarr/commit/be0e78371eb98740f313b1abd20413cbafa68a20)) +* **deps:** update dependency undici to v7.15.0 ([#3949](https://github.com/homarr-labs/homarr/issues/3949)) ([f166d15](https://github.com/homarr-labs/homarr/commit/f166d153fee521ef31a5328f082b4f52fbfd7239)) +* **deps:** update dependency zod to ^4.1.1 ([#3950](https://github.com/homarr-labs/homarr/issues/3950)) ([94eb677](https://github.com/homarr-labs/homarr/commit/94eb6772b9216b6377f6306b2a88c2bfe58bfb59)) +* **deps:** update dependency zod to ^4.1.5 ([#3961](https://github.com/homarr-labs/homarr/issues/3961)) ([9165422](https://github.com/homarr-labs/homarr/commit/916542210d9bfbb40abf27123f4989ec15dcd45b)) +* **deps:** update dependency zod-form-data to ^3.0.1 ([#3986](https://github.com/homarr-labs/homarr/issues/3986)) ([75683c2](https://github.com/homarr-labs/homarr/commit/75683c206d06da3b54c5ab0605b2a4b37674bbd6)) +* **deps:** update mantine monorepo to ^8.2.7 ([#3939](https://github.com/homarr-labs/homarr/issues/3939)) ([5d90809](https://github.com/homarr-labs/homarr/commit/5d908093ce3c8b395547681ae0a428afd08a255d)) +* **deps:** update mantine monorepo to ^8.2.8 ([#4004](https://github.com/homarr-labs/homarr/issues/4004)) ([eef6b86](https://github.com/homarr-labs/homarr/commit/eef6b86ad647fe955bdb125f504b4a98a79baf03)) +* **deps:** update nextjs monorepo to v15.5.1 ([#3971](https://github.com/homarr-labs/homarr/issues/3971)) ([a1def95](https://github.com/homarr-labs/homarr/commit/a1def958525816ec41198407d6d84ef9384be58f)) +* **deps:** update nextjs monorepo to v15.5.2 ([#3972](https://github.com/homarr-labs/homarr/issues/3972)) ([b0fe8a9](https://github.com/homarr-labs/homarr/commit/b0fe8a9f653e09cb3f861f39f06bb8d4e8dae006)) +* **deps:** update tanstack-query monorepo to ^5.85.6 ([#3996](https://github.com/homarr-labs/homarr/issues/3996)) ([4e4483c](https://github.com/homarr-labs/homarr/commit/4e4483c42d9edd3187981e57694721ff5337be8e)) +* **deps:** update tanstack-query monorepo to ^5.87.1 ([#3997](https://github.com/homarr-labs/homarr/issues/3997)) ([d7146d8](https://github.com/homarr-labs/homarr/commit/d7146d82d14885cffb24e14e7e5a610fdeec1b03)) +* **deps:** update trpc monorepo to ^11.5.0 ([#3951](https://github.com/homarr-labs/homarr/issues/3951)) ([88eed15](https://github.com/homarr-labs/homarr/commit/88eed15fafbc68c1c669c28ff576aca503acd585)) +* **header:** avatar menu flashes when opening on mobile ([#3999](https://github.com/homarr-labs/homarr/issues/3999)) ([9cb8261](https://github.com/homarr-labs/homarr/commit/9cb8261ddc5701ff5d5786ea1fba823e1e9317b2)) +* **widgets:** improve integration selection ([#3969](https://github.com/homarr-labs/homarr/issues/3969)) ([65b9ddd](https://github.com/homarr-labs/homarr/commit/65b9ddd771a573330b4c40966f10bd1fc36a6e1d)) + +## [1.35.1](https://github.com/homarr-labs/homarr/compare/v1.35.0...v1.35.1) (2025-09-03) + +### Bug Fixes + +* **db:** increase integration kind limit from 16 to 64 characters ([8ff29b8](https://github.com/homarr-labs/homarr/commit/8ff29b82e5133ba0b8eaf2cf88de9bca31128a68)) + ## [1.35.0](https://github.com/homarr-labs/homarr/compare/v1.34.0...v1.35.0) (2025-08-29) ### Features diff --git a/apps/nextjs/next.config.ts b/apps/nextjs/next.config.ts index 5f21d74e4..be0798daa 100644 --- a/apps/nextjs/next.config.ts +++ b/apps/nextjs/next.config.ts @@ -42,9 +42,11 @@ const nextConfig: NextConfig = { headers: [ { key: "Content-Security-Policy", + // worker-src / media-src with blob: is necessary for video.js, see https://github.com/homarr-labs/homarr/issues/3912 and https://stackoverflow.com/questions/65792855/problem-with-video-js-and-content-security-policy-csp value: ` default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; + worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; @@ -53,7 +55,7 @@ const nextConfig: NextConfig = { form-action 'self'; img-src * data:; font-src * data:; - media-src * data:; + media-src * data: blob:; ` .replace(/\s{2,}/g, " ") .trim(), diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index bb5120cda..b1e8024e8 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -50,42 +50,42 @@ "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@homarr/widgets": "workspace:^0.1.0", - "@mantine/colors-generator": "^8.2.7", - "@mantine/core": "^8.2.7", - "@mantine/dropzone": "^8.2.7", - "@mantine/hooks": "^8.2.7", - "@mantine/modals": "^8.2.7", - "@mantine/tiptap": "^8.2.7", + "@mantine/colors-generator": "^8.3.1", + "@mantine/core": "^8.3.1", + "@mantine/dropzone": "^8.3.1", + "@mantine/hooks": "^8.3.1", + "@mantine/modals": "^8.3.1", + "@mantine/tiptap": "^8.3.1", "@million/lint": "1.0.14", "@tabler/icons-react": "^3.34.1", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", - "@tanstack/react-query-next-experimental": "^5.85.5", - "@trpc/client": "^11.5.0", - "@trpc/next": "^11.5.0", - "@trpc/react-query": "^11.5.0", - "@trpc/server": "^11.5.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-next-experimental": "^5.87.1", + "@trpc/client": "^11.5.1", + "@trpc/next": "^11.5.1", + "@trpc/react-query": "^11.5.1", + "@trpc/server": "^11.5.1", "@xterm/addon-canvas": "^0.7.0", "@xterm/addon-fit": "0.10.0", "@xterm/xterm": "^5.5.0", "chroma-js": "^3.1.2", "clsx": "^2.1.1", - "dayjs": "^1.11.13", - "dotenv": "^17.2.1", + "dayjs": "^1.11.18", + "dotenv": "^17.2.2", "flag-icons": "^7.5.0", "glob": "^11.0.3", - "jotai": "^2.13.1", + "jotai": "^2.14.0", "mantine-react-table": "2.0.0-beta.9", - "next": "15.5.0", + "next": "15.5.2", "postcss-preset-mantine": "^1.18.0", "prismjs": "^1.30.0", "react": "19.1.1", "react-dom": "19.1.1", "react-error-boundary": "^6.0.0", "react-simple-code-editor": "^0.14.1", - "sass": "^1.91.0", + "sass": "^1.92.1", "superjson": "2.2.2", - "swagger-ui-react": "^5.27.1", + "swagger-ui-react": "^5.28.1", "use-deep-compare-effect": "^1.8.1", "zod": "^4.1.5" }, @@ -94,13 +94,13 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "3.1.1", - "@types/node": "^22.18.0", + "@types/node": "^22.18.1", "@types/prismjs": "^1.26.5", "@types/react": "19.1.12", "@types/react-dom": "19.1.9", "@types/swagger-ui-react": "^5.18.0", "concurrently": "^9.2.1", - "eslint": "^9.34.0", + "eslint": "^9.35.0", "node-loader": "^2.1.0", "prettier": "^3.6.2", "typescript": "^5.9.2" diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx index 31dfd48c3..a728e8949 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx @@ -61,6 +61,10 @@ const getBoardAndPermissionsAsync = async (params: Awaited) => notFound(); } + if (error instanceof TRPCError && error.code === "BAD_REQUEST") { + notFound(); + } + throw error; } }; diff --git a/apps/nextjs/src/app/[locale]/boards/_layout-creator.tsx b/apps/nextjs/src/app/[locale]/boards/_layout-creator.tsx index c04d6fe56..da1880963 100644 --- a/apps/nextjs/src/app/[locale]/boards/_layout-creator.tsx +++ b/apps/nextjs/src/app/[locale]/boards/_layout-creator.tsx @@ -45,6 +45,10 @@ export const createBoardLayout = ({ notFound(); } + if (error instanceof TRPCError && error.code === "BAD_REQUEST") { + notFound(); + } + throw error; }); const colorScheme = await getCurrentColorSchemeAsync(); diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-icons.ts b/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-icons.ts index 008d8b34f..0faccc11c 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-icons.ts +++ b/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-icons.ts @@ -1,9 +1,11 @@ import { + IconCode, IconGrid3x3, IconKey, IconMessage, IconPassword, IconPasswordUser, + IconPlug, IconServer, IconUser, } from "@tabler/icons-react"; @@ -21,4 +23,7 @@ export const integrationSecretIcons = { topic: IconMessage, opnsenseApiKey: IconKey, opnsenseApiSecret: IconPassword, + githubAppId: IconCode, + githubInstallationId: IconPlug, + privateKey: IconKey, } satisfies Record; diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-inputs.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-inputs.tsx index 45f5b3156..78e2d78c1 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-inputs.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/_components/secrets/integration-secret-inputs.tsx @@ -1,7 +1,7 @@ "use client"; import type { ChangeEventHandler, FocusEventHandler } from "react"; -import { PasswordInput, TextInput } from "@mantine/core"; +import { PasswordInput, Textarea, TextInput } from "@mantine/core"; import { integrationSecretKindObject } from "@homarr/definitions"; import type { IntegrationSecretKind } from "@homarr/definitions"; @@ -14,9 +14,9 @@ interface IntegrationSecretInputProps { label?: string; kind: IntegrationSecretKind; value?: string; - onChange: ChangeEventHandler; - onFocus?: FocusEventHandler; - onBlur?: FocusEventHandler; + onChange: ChangeEventHandler; + onFocus?: FocusEventHandler; + onBlur?: FocusEventHandler; error?: string; } @@ -31,6 +31,19 @@ export const IntegrationSecretInput = (props: IntegrationSecretInputProps) => { const PublicSecretInput = ({ kind, ...props }: IntegrationSecretInputProps) => { const t = useI18n(); const Icon = integrationSecretIcons[kind]; + const { multiline } = integrationSecretKindObject[kind]; + if (multiline) { + return ( +