Commit Graph

895 Commits

Author SHA1 Message Date
nocobase[bot] efaec1f981 Merge branch 'main' into next 2026-07-12 16:00:58 +00:00
chenos e792e9cc70 docs(multi-app): add multi-portal translations 2026-07-12 23:59:04 +08:00
nocobase[bot] a6f94ee383 Merge branch 'main' into next 2026-07-12 12:24:29 +00:00
chenos 6c8fdce651 chore: update favicon fallback and multi-app docs 2026-07-12 20:21:21 +08:00
nocobase[bot] ad60eb9071 Merge branch 'main' into next 2026-07-07 23:52:35 +00:00
Junyi ad8cf0ccc5 fix(plugin-file-manager): active content upload (#10021)
* fix(plugin-file-manager): reject disallowed active content filenames

* fix(plugin-file-manager): add trim before check
2026-07-08 07:51:59 +08:00
nocobase[bot] 30da2faf8c Merge branch 'main' into next 2026-07-05 14:00:47 +00:00
Junyi 08a87a2dcb Revert "fix(plugin-file-manager): reject disallowed active content filenames …" (#10000)
This reverts commit e9bbb270ec.
2026-07-05 22:00:05 +08:00
nocobase[bot] e073a706a4 Merge branch 'main' into next 2026-07-05 12:45:52 +00:00
Junyi e9bbb270ec fix(plugin-file-manager): reject disallowed active content filenames (#9994) 2026-07-05 20:45:13 +08:00
nocobase[bot] 11e0f0c541 Merge branch 'main' into next 2026-07-04 03:35:42 +00:00
chenos b0accce926 docs: clarify docker proxy deployment 2026-07-04 11:34:46 +08:00
nocobase[bot] 4aed1b8c68 Merge branch 'main' into next 2026-07-04 01:50:32 +00:00
chenos 31c554b29f feat(cli): support configurable NocoBase Docker images and proxy setup docs (#9972)
* docs: add docker nginx and caddy installation guides

* fix(proxy): support external proxy upstream port

* fix(cli): keep manual proxy bundle appPort compatibility

* feat(cli): support NocoBase image config

* fix(cli): map no-nginx docker apps to the correct container port
2026-07-04 09:49:57 +08:00
katherinehhh 0f32cff238 Merge branch 'main' into next 2026-07-03 15:48:32 +08:00
chenos 0926ea5a38 docs: remove Russian CLI migration guide 2026-07-03 15:41:40 +08:00
Andrey Sembaev b66925820d docs: update Russian documentation translation 2026-07-03 15:39:38 +08:00
nocobase[bot] 23c027d730 Merge branch 'main' into next 2026-07-03 00:33:55 +00:00
mytharcher 40b8210841 docs(plugin-file-manager): fix docs in navigation 2026-07-03 08:33:15 +08:00
nocobase[bot] 3b46c96951 Merge branch 'main' into next 2026-07-02 08:49:12 +00:00
mytharcher 3f4ec12fc6 docs(file-manager): remove useless front matter key 2026-07-02 16:48:30 +08:00
nocobase[bot] 1934f07dcc Merge branch 'main' into next 2026-07-02 07:50:49 +00:00
Junyi e4a63278de docs: clarify file storage access options (#9969) 2026-07-02 15:50:02 +08:00
Zeke Zhang dbf3eb1d3c Merge branch 'main' into next 2026-07-02 11:01:55 +08:00
Junyi 5706fb48d9 fix(utils): warn on SSRF-risk server requests (#9966) 2026-07-02 00:50:19 +08:00
Junyi a37ecd1eab docs: clarify PDF preview security guidance (#9901) 2026-07-01 22:22:52 +08:00
nocobase[bot] 1bc6fd3f6b Merge branch 'main' into next 2026-06-30 12:44:01 +00:00
Drol 5ee8f77a03 docs: add version control plugin metadata (#9944) 2026-06-30 14:40:47 +08:00
chenos a712defb79 Merge branch 'main' into next 2026-06-27 11:06:42 +08:00
chenos 8d79c849b5 feat(idp-oauth): support OAuth device authorization flow (#9922)
* feat(idp-oauth): support OAuth device authorization flow

* fix(idp-oauth): rewrite device verification URLs

* fix(plugin-idp-oauth): use frontend device verification route

* feat(plugin-idp-oauth): add frontend device verification flow

* fix(plugin-idp-oauth): stop device page reload loop

* fix(cli): open OAuth device sign-in URL automatically

* fix(plugin-idp-oauth): preserve device code separator

* fix(plugin-idp-oauth): strip app basename from device redirect

* fix(plugin-idp-oauth): use router location for device redirect

* fix(plugin-idp-oauth): add home action to device complete page

* fix(plugin-idp-oauth): include app public path in frontend URLs

* fix(cli): align OAuth device URL with env API base

* docs: document nb env auth options

* fix(plugin-idp-oauth): align device flow typings

* fix(plugin-idp-oauth): handle missing interaction sessions

* fix(idp-oauth): harden OAuth device flow handling
2026-06-27 10:57:33 +08:00
nocobase[bot] 62dd6a9a34 Merge branch 'main' into next 2026-06-26 02:11:34 +00:00
chenos 48bbc1f8b8 fix(cli): support pnpm and yarn global self update (#9912)
* fix(cli): support pnpm and yarn global self update

* fix(cli): detect pnpm global installs in self check

* fix(cli): detect hashed pnpm global installs

* test(cli): cover custom pnpm global roots
2026-06-26 10:11:00 +08:00
nocobase[bot] 6a039b59bc Merge branch 'main' into next 2026-06-24 00:55:56 +00:00
Drol 520211f9de docs: update AI knowledge base vectorization notes (#9876)
* docs: clarify AI knowledge base text vectorization

* docs: sync knowledge base vectorization notes
2026-06-24 08:55:20 +08:00
nocobase[bot] 153e3d7015 Merge branch 'main' into next 2026-06-23 13:46:14 +00:00
Junyi ee0f2a74ea docs(shared-components): add shared components docs (#9842)
* docs(shared-components): add shared components docs

* docs: promote shared components docs entry
2026-06-23 21:45:28 +08:00
nocobase[bot] b73d000f8f Merge branch 'main' into next 2026-06-22 00:21:20 +00:00
chenos a34480da95 feat(cli): support install hook scripts (#9824)
* feat(cli): support install hook scripts

* fix(cli): align hook script validation

* fix(cli): guard resume app preset hook script

* feat(cli): support app lifecycle hooks

* fix(cli): stabilize source publish snapshot flow

* fix(cli): stabilize hook script loading in tests

* fix(cli): run hook scripts in a subprocess

* fix(cli): preserve saved hook script path style
2026-06-22 08:20:51 +08:00
nocobase[bot] b470cd62c6 Merge branch 'main' into next 2026-06-21 12:20:17 +00:00
Katherine c5cb8d507f fix(client-v2): show inherited field validation rules (#9819)
* fix(client-v2): show inherited field validation rules

* fix(client): clarify field validation rule groups

* docs: sync validation rule translations
2026-06-21 20:19:45 +08:00
Zeke Zhang ae80783c30 feat(plugin-ui-layout): add ui layout plugin (#9641)
* fix(plugin-ui-layout): compact mobile page tabs

* fix(plugin-ui-layout): label mobile tab add menu

* fix(plugin-ui-layout): align mobile page tabs

* fix(plugin-ui-layout): offset mobile page tabs

* fix(client): fit mobile table settings column

* fix(plugin-ui-layout): show mobile child titles

* fix(plugin-ui-layout): host mobile settings panel

* fix(plugin-ui-layout): persist mobile menu linkage

* fix(plugin-ui-layout): remove hidden tab space

* fix(plugin-ui-layout): sync mobile menu linkage

* feat(plugin-ui-layout): relate routes to layouts

* fix(plugin-ui-layout): refresh menu linkage

* fix(plugin-ui-layout): default route layout

* fix(plugin-ui-layout): refresh mobile menu linkage

* fix(plugin-ui-layout): clean layout route roots

* test(plugin-ui-layout): cover layout route acl

* fix(plugin-ui-layout): sync mobile editor linkage

* feat(plugin-ui-layout): add layout titles

* fix(plugin-ui-layout): reject disabled layouts

* fix(plugin-ui-layout): scope mobile routes

* fix(plugin-ui-layout): backfill layout titles

* fix(plugin-ui-layout): filter get route by layout

* fix(plugin-ui-layout): build mobile compat

* fix(plugin-ui-layout): show layout route states

* fix(plugin-ui-layout): label route permissions

* fix(plugin-ui-layout): localize permission labels

* fix(plugin-ui-layout): scope mobile route creation

* test(plugin-ui-layout): cover stale permissions

* test(plugin-ui-layout): cover permission request counts

* fix(plugin-ui-layout): scope mobile page tabs

* fix(plugin-ui-layout): scope mobile page tabs

* fix(plugin-ui-layout): load mobile routes once

* fix(plugin-ui-layout): raise mobile icon picker layer

* fix(plugin-ui-layout): sync mobile tabs setting

* fix(client): scope routes by layout

* fix(plugin-ui-layout): use layout param for mobile routes

* fix(plugin-ui-layout): rename permission labels

* fix(client): scope admin menu paths by layout

* style(plugin-ui-layout): refine mobile back button

* test(client): update route layout expectations

* fix(plugin-ui-layout): fix declaration build

* feat(plugin-ui-layout): add runtime layout API

* test(plugin-ui-layout): strengthen ACL coverage

* fix(plugin-ui-layout): rename layout tab

* fix(plugin-ui-layout): protect menu hidden snapshot

* fix(plugin-ui-layout): make layout seed atomic

* fix(plugin-ui-layout): include route ancestors

* fix(plugin-ui-layout): require runtime layout

* fix(plugin-ui-layout): handle empty mobile menu

* fix(client): handle basename for new-window links

* fix(client): block inaccessible flow routes

* fix(plugin-ui-layout): keep mobile pages alive

* fix(plugin-ui-layout): keep mobile context ready

* feat(plugin-ui-layout): scope runtime permissions

* feat(plugin-ui-layout): add layout default access

* feat(plugin-ui-layout): show layout permission table

* feat(plugin-ui-layout): grant new layout access

* feat(plugin-ui-layout): grant route menu access

* feat(plugin-ui-layout): sync legacy route access

* fix(plugin-ui-layout): guard role layout access

* fix(plugin-ui-layout): sync legacy route access

* fix(plugin-ui-layout): require scoped route access

* fix(plugin-ui-layout): add role access migration

* revert(plugin-ui-layout): remove role migration

* fix(plugin-ui-layout): keep mobile context stable

* fix(plugin-ui-layout): refresh menu stats

* fix(plugin-ui-layout): scope route permissions

* fix(plugin-ui-layout): disable inactive menu access

* fix(plugin-ui-layout): improve settings a11y

* fix(plugin-ui-layout): scope default menu access

* fix(client): show table row action text

* fix(plugin-ui-layout): mark inactive menu stats

* fix(client-v2): keep mobile grid keys stable

* fix(plugin-ui-layout): improve route permission drawer

* fix(plugin-ui-layout): keep mobile child routes

* fix(client-v2): keep popover above parent popup

* feat(preset): add ui layout plugin

* fix(plugin-ui-layout): fix route filter typing

* fix(plugin-ui-layout): preserve role filter

* fix(plugin-ui-layout): scope mobile tabs

* fix(plugin-ui-layout): remove menu stats

* fix(plugin-ui-layout): add mobile menu locale

* fix(plugin-ui-layout): fallback admin routes

* fix(plugin-ui-layout): sync legacy layout access

* fix(plugin-ui-layout): handle hidden route permissions

* fix(plugin-ui-layout): prevent layout uid edits

* fix(plugin-ui-layout): protect default admin layout

* fix(plugin-ui-layout): ignore stale mobile routes

* fix(plugin-ui-layout): navigate mobile child menus

* fix(plugin-ui-layout): add role permission readers

* fix(client-v2): scope route cache by layout

* fix(plugin-ui-layout): hide mobile child routes

* fix(plugin-ui-layout): make qr action accessible

* fix(plugin-ui-layout): grant default admin menus

* fix(plugin-ui-layout): declare runtime peers

* fix(plugin-ui-layout): reject invalid access paths

* fix(plugin-ui-layout): handle layout pagination

* fix(plugin-ui-layout): make create menu clickable

* fix(plugin-ui-layout): make icon choices accessible

* fix(client-v2): scope route layout activation

* fix(client-v2): refresh owning layout menu

* fix(plugin-ui-layout): declare external deps

* fix(plugin-ui-layout): keep mobile link basename

* fix(client-v2): honor route layout auth

* fix(client-v2): keep custom layout pages alive

* fix(client-v2): activate guarded layout routes

* fix(client-v2): scope route cache by layout

* fix(plugin-ui-layout): validate layout paths

* fix(plugin-ui-layout): batch layout route grants

* fix(plugin-ui-layout): hide route path column

* chore(plugin-ui-layout): update version to 2.1.0-beta.47

* fix(plugin-ui-layout): hide auth check control

* fix(plugin-ui-layout): rename layout permission labels

* fix(plugin-ui-layout): avoid duplicate mobile basename

* fix(plugin-ui-layout): fix declaration build

* fix(plugin-ui-layout): default layout access

* fix(plugin-ui-layout): use small layout switches

* feat(plugin-ui-layout): add public manifest

* fix(plugin-ui-layout): use uid for layouts

* fix(client-v2): stabilize flow route layout deps

* fix(plugin-ui-layout): enforce explicit route grants

* fix(plugin-ui-layout): keep failed menu saves stable

* refactor(plugin-ui-layout): split settings tabs

* refactor(plugin-ui-layout): split route perms

* feat(plugin-multi-portal): add scaffold

* fix(plugin-ui-layout): seed mobile layout

* feat(plugin-multi-portal): add portal layout schema

* feat(plugin-multi-portal): register portal layouts

* feat(plugin-multi-portal): add settings page

* feat(plugin-ui-layout): add route management

* feat(plugin-ui-layout): align route actions

* chore(plugin-ui-layout): align package version

* feat(plugin-multi-portal): add portal permissions

* feat(plugin-multi-portal): scope route permissions

* test(plugin-multi-portal): cover route chain access

* test(plugin-multi-portal): cover permission isolation

* docs(plugin-ui-layout): document layout boundaries

* feat(plugin-multi-portal): add menu permissions

* fix(plugin-multi-portal): guard settings actions

* fix(client-v2): gate datasource bootstrap

* fix(plugin-ui-layout): update imports for NocoBaseDesktopRoute

* fix(plugin-multi-portal): align portal table

* fix(plugin-multi-portal): hide route name column

* fix(plugin-multi-portal): validate portal form

* fix(plugin-multi-portal): populate layout field

* fix(plugin-multi-portal): align action buttons

* fix(plugin-multi-portal): tighten action spacing

* fix(plugin-multi-portal): remove action padding

* fix(plugin-multi-portal): derive route name

* fix(plugin-multi-portal): update display name

* fix(plugin-multi-portal): update uid prefix

* fix(plugin-multi-portal): show menu permissions in drawer

* fix(plugin-multi-portal): add default access switch

* fix(plugin-ui-layout): load mobile route permissions

* fix(plugin-multi-portal): use default delete button

* feat(plugin-multi-portal): relate routes to portals

* fix(plugin-multi-portal): support portal route scope

* fix(plugin-multi-portal): scope route ownership

* fix(plugin-multi-portal): scope route requests

* fix(plugin-multi-portal): scope menu permissions

* test(plugin-multi-portal): cover empty menu drawer

* fix(plugin-ui-layout): decouple layout access

* feat(plugin-multi-portal): add route policy model

* feat(plugin-multi-portal): initialize route policy

* feat(plugin-multi-portal): add route policy switch

* feat(plugin-multi-portal): grant portal route access

* fix(plugin-multi-portal): isolate route grants

* test(plugin-multi-portal): cover portal route bounds

* fix(plugin-ui-layout): move routes settings

* fix(plugin-ui-layout): move mobile settings

* fix(plugin-ui-layout): open mobile settings

* fix(plugin-ui-layout): open mobile in new tab

* test(preset): align multi-portal naming

* fix(preset): enable portal plugins

* fix(plugin-ui-layout): use tab route links

* fix(plugin-ui-layout): add route locale keys

* fix(plugin-multi-portal): declare package deps

* fix(plugin-ui-layout): create initial page tabs

* fix(plugin-ui-layout): refresh mobile routes by layout

* fix(plugin-multi-portal): guard portal refresh

* fix(plugin-multi-portal): filter disabled layouts

* fix(plugin-multi-portal): isolate portal routes

* fix(plugin-multi-portal): grant hidden routes

* fix(plugin-multi-portal): preserve route ownership

* fix(plugin-multi-portal): reject route collisions

* fix(plugin-multi-portal): use ui-layout entry

* fix(plugin-multi-portal): scope registered portals

* fix(plugin-ui-layout): reject invalid route layout

* fix(plugin-multi-portal): use enabled layouts

* fix(plugin-ui-layout): align routes manager

* fix(plugin-ui-layout): render routes drawer globally

* fix(plugin-ui-layout): hide disabled page tabs in routes

* fix(plugin-ui-layout): hide empty route expanders

* fix(plugin-ui-layout): move route tabs to page header

* style(plugin-ui-layout): tighten route actions

* chore(plugins): bump layout plugin versions

* fix(plugin-multi-portal): create portal-scoped routes

* fix(client-v2): stabilize layout routing

* fix(plugin-ui-layout): load managed route list

* fix(plugin-multi-portal): require explicit portal scope

* fix(plugin-ui-layout): require explicit admin routes

* fix(plugin-ui-layout): split settings permissions

* refactor(plugin-multi-portal): move to pro plugins

* fix(client-v2): type admin layout guard

* fix(plugin-ui-layout): resolve route type errors

* test(plugin-ui-layout): align route ownership tests

* fix(plugin-ui-layout): require mobile route icons

* fix(client-v2): allow settings sidebar scroll

* fix(plugin-ui-layout): refresh menu after route changes

* fix(plugin-ui-layout): avoid mobile empty flash

* fix(plugin-ui-layout): delay mobile root fallback

* fix(plugin-client): scope v1 routes list

* fix(plugin-ui-layout): hide v1 pages in routes

* fix(plugin-ui-layout): align mobile tab add button

* fix(plugin-ui-layout): compact mobile tab bar

* fix(plugin-ui-layout): refine mobile tab bar

* fix(plugin-ui-layout): show untitled tab routes

* fix(plugin-ui-layout): isolate mobile compact theme

* fix(plugin-ui-layout): isolate mobile page density

* fix(plugin-ui-layout): apply mobile page theme

* fix(plugin-ui-layout): tighten mobile page tabs

* fix(plugin-ui-layout): adjust mobile page tabs

* fix(plugin-ui-layout): use route delete modal

* fix(client-v2): prevent mobile grid columns

* fix(client-v2): preserve mobile grid sorting

* fix(plugin-ui-layout): preserve layout auth check

* fix(client-v2): open settings outside admin in new tab

* fix(client-v2): export icon picker

* fix(plugin-ui-layout): update version to 2.2.0-beta.5

* fix(client-v2): satisfy app type constraint

* chore(plugin-ui-layout): update plugin description

* fix(plugin-acl): filter route permissions

* fix(plugin-ui-layout): filter legacy routes

* chore(plugin-ui-layout): remove title migrations

* chore(plugin-ui-layout): drop legacy perms

* fix(plugin-ui-layout): import mobile theme token

* docs: update docs

* chore(plugin-ui-layout): add license
2026-06-18 16:09:20 +08:00
nocobase[bot] 9a31a2c637 Merge branch 'main' into next 2026-06-17 06:27:18 +00:00
Drol c006390abd Improve AI knowledge base retrieval and docs (#9765)
* refactor(ai): move knowledge base search from plugin-ai to plugin-ai-knowledge-base

* fix(ai): export document segment types from types

* refactor(plugin-ai): reuse knowledge base feature search

* fix(plugin-ai): include matched questions in knowledge base retrieval

* docs: add AI knowledge workflow node guides

* docs: update knowledge base guide

* docs: add knowledge workflow overview

* docs: add knowledge base i18n pages

* docs: sync rag i18n links

* docs: refine knowledge base docs

* docs: sync knowledge base docs translations

* docs: refine AI knowledge workflow guides

* docs: sync AI knowledge workflow guide translations

* docs: clarify knowledge base hit test parameters

* docs: add knowledge base plugin development guide

* docs: add localized knowledge base plugin guides

* docs: link external knowledge base development guide

* docs: link localized external knowledge base guides

* docs: fix knowledge base storage links

* docs: move external knowledge base guide

* docs: update workflow ai node navigation

* docs: sync external knowledge base guide translations

* docs: clarify knowledge base segment history data

* docs: sync segment history note translations

* docs: update knowledge base screenshots

* docs: update localized knowledge base screenshots
2026-06-17 14:26:42 +08:00
nocobase[bot] 1287a49b1c Merge branch 'main' into next 2026-06-16 08:11:34 +00:00
YANG QIA 55867d5571 docs: release management (#9789)
* docs: update release management guide

* docs: sync release management translations

* docs: correct checkpoint table migration strategy

* docs: update backup manager client installation notes
2026-06-16 16:10:55 +08:00
nocobase[bot] 41cba85a2a Merge branch 'main' into next 2026-06-16 05:17:31 +00:00
chenos 6a8deedbe9 fix: update documentation links 2026-06-16 13:15:26 +08:00
nocobase[bot] e02fc2aa33 Merge branch 'main' into next 2026-06-16 05:09:41 +00:00
chenos e584c12ba7 fix: update docs 2026-06-16 13:04:03 +08:00
nocobase[bot] 8f6d2e226e Merge branch 'main' into next 2026-06-15 10:53:56 +00:00