Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
442 commits
Select commit Hold shift + click to select a range
9681e0c
fix(chatbi): match SQLBot rule group item response shape
cuipengdba Oct 30, 2026
292b081
feat(chatbi): enforce bounded SQLBot PostgreSQL row rules
cuipengdba Oct 30, 2026
1b35217
fix(chatbi): accept original SQLBot row-rule member selection
cuipengdba Oct 30, 2026
68d2c13
docs: record original SQLBot ordinary-user row-rule acceptance
cuipengdba Oct 30, 2026
f978aaf
docs: verify original-client row rule in local model Q&A
cuipengdba Oct 30, 2026
e3e2d31
docs: record ordinary Q&A history revocation test
cuipengdba Oct 30, 2026
e359a02
fix: reserve query capacity during SQLBot history loading
cuipengdba Oct 30, 2026
883b157
docs: specify safe SQLBot third-party assistant compatibility contract
cuipengdba Oct 30, 2026
d3bac1b
docs: allow explicitly approved private catalog destinations
cuipengdba Oct 30, 2026
f96b1e9
docs: record original SQLBot assistant route failure
cuipengdba Oct 30, 2026
af47f7d
feat: validate SQLBot third-party assistant request shape
cuipengdba Oct 30, 2026
0d0f97d
feat: register scoped SQLBot assistant catalog bridges
cuipengdba Oct 30, 2026
1c1649f
feat: fetch approved SQLBot assistant catalogs safely
cuipengdba Oct 30, 2026
72e33ee
feat: add scoped SQLBot assistant single-source route
cuipengdba Oct 31, 2026
69286f2
security: pin approved assistant catalog TLS certificates
cuipengdba Oct 31, 2026
f9a746e
docs: record real Qwen and PostgreSQL assistant slice
cuipengdba Oct 31, 2026
ebb0918
feat: select mapped SQLBot assistant catalog sources
cuipengdba Oct 31, 2026
ae9286e
fix: accept numeric catalog source model choices
cuipengdba Oct 31, 2026
42e67fe
docs: verify distinct assistant datasource scopes locally
cuipengdba Oct 31, 2026
df80948
fix(chatbi): match SQLBot assistant Markdown stream contract
cuipengdba Oct 31, 2026
8e2bea6
fix(chatbi): match assistant JSON result metadata
cuipengdba Oct 31, 2026
561922e
fix(chatbi): fail closed on unsupported permission targets
cuipengdba Oct 31, 2026
863d124
feat(chatbi): enforce bounded SQLBot column rules
cuipengdba Oct 31, 2026
6a2fde4
docs(chatbi): verify original MySQL column page on real database
cuipengdba Oct 31, 2026
293af2c
docs(chatbi): verify original MySQL Q&A under column rule
cuipengdba Oct 31, 2026
873c764
docs(chatbi): verify MySQL column revocation and old history
cuipengdba Oct 31, 2026
628f162
feat(chatbi): enforce bounded SQLBot MySQL row rules
cuipengdba Oct 31, 2026
748ac33
docs: record MySQL row-rule model and original page acceptance
cuipengdba Oct 31, 2026
5c64ae6
Bound SQLBot MySQL row-rule OR expressions to safe single-table queries
cuipengdba Oct 31, 2026
715800f
Record original SQLBot MySQL OR rule browser and real database accept…
cuipengdba Oct 31, 2026
7738b34
Record real Qwen and old-result acceptance under nested MySQL row rules
cuipengdba Oct 31, 2026
72963bd
Record original SQLBot nested OR browser acceptance on real MySQL
cuipengdba Oct 31, 2026
9df9036
docs: record original SQLBot nested-row Q&A acceptance
cuipengdba Oct 31, 2026
473053e
docs: verify controlled assistant against real MySQL and Qwen
cuipengdba Oct 31, 2026
b383387
docs: pin real assistant gateway audit evidence
cuipengdba Oct 31, 2026
99b4a27
feat(chatbi): resolve custom variables in row permissions
cuipengdba Oct 31, 2026
f2c3031
docs: record variable row-rule Qwen and stale-result acceptance
cuipengdba Oct 31, 2026
16e5d20
feat(chatbi): enforce multi-value SQLBot variable membership
cuipengdba Oct 31, 2026
d801eb6
Merge branch 'feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
df8faf1
feat(v4.5): apply bounded PostgreSQL variable membership rules
cuipengdba Oct 31, 2026
bfc12a9
Merge branch 'feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
7cab4af
docs(v4.5): pin SQLBot v1.10.3 static API inventory
cuipengdba Oct 31, 2026
d54c97a
test: align bounded PostgreSQL OR policy assertions
cuipengdba Oct 31, 2026
40cd82a
feat(offline): require verified PostgreSQL binder preflight before in…
cuipengdba Oct 31, 2026
0b26550
feat(release): verify signed offline transport before extraction
cuipengdba Oct 31, 2026
01b7043
docs(release): require authenticated offline archive acceptance
cuipengdba Oct 31, 2026
b0d59d7
docs(v4.5): define release acceptance contract
cuipengdba Oct 31, 2026
166d625
feat(offline): extract only authenticated archive bytes
cuipengdba Oct 31, 2026
83d52f9
fix(offline): bound private archive copy before verification
cuipengdba Oct 31, 2026
5ce2854
Merge branch 'feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
d288dc4
docs(v4.5): record model workspace mapping parity gate
cuipengdba Oct 31, 2026
812f907
Merge remote-tracking branch 'origin/feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
697a20f
Merge remote-tracking branch 'origin/feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
c239ee5
Merge remote-tracking branch 'origin/feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
111413b
Merge v4.4.0 binder package updates into v4.5.0
cuipengdba Oct 31, 2026
2d95df5
Merge scoped binder signing into v4.5.0
cuipengdba Oct 31, 2026
2f43b10
Merge Windows binder signing selection fix into v4.5.0
cuipengdba Oct 31, 2026
968ae28
fix: recheck model revision before query and result release
cuipengdba Oct 31, 2026
be83e0a
docs: align model mapping design with original global default
cuipengdba Oct 31, 2026
6ede938
feat: preview legacy model catalog migration conflicts
cuipengdba Oct 31, 2026
7570cc0
fix(chatbi): require default choice for secondary-only migration
cuipengdba Oct 31, 2026
4ee34fe
feat(chatbi): stage global model catalog migration atomically
cuipengdba Oct 31, 2026
bbc2108
feat(chatbi): revalidate global model lease across question execution
cuipengdba Oct 31, 2026
7f0da08
Add audited global model workspace mapping transactions
cuipengdba Oct 31, 2026
178028a
Route active catalog mapping requests through audited store
cuipengdba Oct 31, 2026
ac436d2
Read active global model catalog and fence legacy writes
cuipengdba Oct 31, 2026
36ca593
Switch global default model with audit and lease revocation
cuipengdba Oct 31, 2026
2a788f1
Implement audited global model create edit and delete
cuipengdba Oct 31, 2026
fbe07ce
Use explicit catalog mappings in assistant and MCP pickers
cuipengdba Oct 31, 2026
afe00c2
Move native model management APIs to active global catalog
cuipengdba Oct 31, 2026
dd88dd7
Expose active model workspace mappings in native console
cuipengdba Oct 31, 2026
872aecc
Recheck global model lease during MCP assistant selection
cuipengdba Oct 31, 2026
34ef299
Honor mapped model selection across chat MCP and embedded assistants
cuipengdba Oct 31, 2026
61eb993
Activate staged model catalog only from unchanged audited snapshot
cuipengdba Oct 31, 2026
36bcf8e
Expose audited model catalog migration to administrators
cuipengdba Oct 31, 2026
dd202ac
Record isolated browser acceptance of model catalog cutover
cuipengdba Oct 31, 2026
0ef0a6e
Document isolated model cutover and original client acceptance
cuipengdba Oct 31, 2026
da62d52
feat(chatbi): add native data permission editor
cuipengdba Oct 31, 2026
94427f4
docs(chatbi): record unbound member permission denial
cuipengdba Oct 31, 2026
9590fda
feat(release): verify and install offline archive in one command
cuipengdba Oct 31, 2026
f120c7e
feat(chatbi): edit nested data permission rules in native UI
cuipengdba Oct 31, 2026
8b493ac
fix(chatbi): clear stale permission editor state
cuipengdba Oct 31, 2026
2dd07af
Merge v4.4.0 acceptance evidence into v4.5.0 candidate
cuipengdba Oct 31, 2026
2c54a1c
Merge latest v4.4.0 acceptance into v4.5.0 candidate
cuipengdba Oct 31, 2026
10446be
Merge v4.4.0 relation denial evidence into v4.5.0 candidate
cuipengdba Oct 31, 2026
d3cb262
docs: record v1.10.3 MCP PostgreSQL variable acceptance
cuipengdba Oct 31, 2026
52f56fb
fix: keep guest send disabled until assistant context is ready
cuipengdba Oct 31, 2026
5f3ced6
docs: record original v1.10.3 SDK real guest acceptance
cuipengdba Oct 31, 2026
0189e0e
Merge remote-tracking branch 'origin/feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
3dbc066
Merge remote-tracking branch 'origin/feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
36b8f5a
Merge remote-tracking branch 'origin/feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
d70e7b2
Merge remote-tracking branch 'origin/feature/v4.4.0' into feature/v4.5.0
cuipengdba Oct 31, 2026
33a689f
Pass external database backup confirmation through offline upgrade
cuipengdba Oct 31, 2026
0d69fec
Add bounded legacy XLS datasource import compatibility
cuipengdba Nov 1, 2026
9f91f93
Accept bounded legacy XLS user batch import
cuipengdba Nov 1, 2026
9efb80f
Verify original XLS upload against scoped managed gateway
cuipengdba Nov 1, 2026
2d0303a
Reap abandoned managed file imports with audited retry
cuipengdba Nov 1, 2026
7d09c1f
test: register abandoned file receipt SQL callsite
cuipengdba Nov 1, 2026
249b7c4
test: verify abandoned import cleanup resumes after restart
cuipengdba Nov 1, 2026
8dea74e
style: format cleanup restart acceptance test
cuipengdba Nov 1, 2026
22509bf
test: cover revoked MCP workspace in streaming mode
cuipengdba Nov 1, 2026
04aae52
docs: record original MCP revocation status differential
cuipengdba Nov 1, 2026
abf0ba7
test: reject revoked workspace through legacy MCP SSE tool
cuipengdba Nov 1, 2026
9bacf7c
test: deny MCP query after model-time membership revocation
cuipengdba Nov 1, 2026
059129b
docs: record SQLBot MCP language override parity gap
cuipengdba Nov 1, 2026
3045037
feat(chatbi): scope SQLBot MCP question language to model prompt
cuipengdba Nov 1, 2026
2044430
fix(chatbi): localize SQLBot MCP stream record headings
cuipengdba Nov 1, 2026
61f4a80
fix(chatbi): match SQLBot MCP language fallback after original probe
cuipengdba Nov 1, 2026
aefb889
fix(chatbi): match original MCP JSON data and first title shape
cuipengdba Nov 1, 2026
1c2d710
fix(chatbi): match original MCP invalid reference statuses
cuipengdba Nov 1, 2026
e549b53
test(chatbi): keep MCP denial assertions aligned with original status
cuipengdba Nov 1, 2026
d4544a1
docs: record original SQLBot v1.10.3 browser Q&A evidence
cuipengdba Nov 1, 2026
f6e4028
feat: render explicit chart intent in original SQLBot client
cuipengdba Nov 1, 2026
04bb1b3
docs: record original SQLBot chart workbook export acceptance
cuipengdba Nov 1, 2026
9fe35aa
docs: record chart ownership and revoked-token denials
cuipengdba Nov 1, 2026
940ea55
docs: compare original and candidate chart ownership errors
cuipengdba Nov 1, 2026
b8cf727
docs: verify ordinary chart row rule and revocation
cuipengdba Nov 1, 2026
c336edb
fix(chatbi): honor explicit horizontal Chinese chart request
cuipengdba Nov 1, 2026
472ef50
docs: verify original browser chart with row permission
cuipengdba Nov 1, 2026
86e31df
docs: verify original chart export under row rule
cuipengdba Nov 1, 2026
3715e58
docs: record original chart cache after revocation
cuipengdba Nov 1, 2026
9329676
docs: verify old chart after row rule change
cuipengdba Nov 1, 2026
2469616
test(chatbi): close workbook on in-flight row rule change
cuipengdba Nov 1, 2026
d59f3b0
docs: verify original chart image export under row rule
cuipengdba Nov 1, 2026
1689841
test(chatbi): isolate concurrent MCP request languages
cuipengdba Nov 1, 2026
ee50b5e
docs: record original MCP SDK concurrent language check
cuipengdba Nov 1, 2026
47e1c9b
docs: verify all supported MCP languages in original SDK
cuipengdba Nov 2, 2026
6440bcf
feat(chatbi): accept legacy XLS in native user import
cuipengdba Nov 2, 2026
1c1fa97
docs(v4.5): defer real business cutover until after release
cuipengdba Nov 2, 2026
fec30e8
docs(v4.5): record native XLS browser acceptance
cuipengdba Nov 2, 2026
32dbcc8
merge v4.4 scope update into v4.5
cuipengdba Nov 2, 2026
4083e05
docs(v4.5): clarify deferred business cutover gate
cuipengdba Nov 2, 2026
25f3c3e
fix(chatbi): match original MCP validation detail for invalid IDs
cuipengdba Nov 2, 2026
cd2b062
docs(v4.5): record exact-head original MCP runtime comparison
cuipengdba Nov 2, 2026
d893075
fix(chatbi): match SQLBot MCP field validation without token echo
cuipengdba Nov 2, 2026
303fae9
docs: defer actual business cutover beyond v4.5.0
cuipengdba Nov 2, 2026
8939c86
fix(chatbi): validate SQLBot MCP start fields with original error shape
cuipengdba Nov 2, 2026
0fa6f5d
docs(web): defer business cutover claim until after v4.5 release
cuipengdba Nov 2, 2026
d984010
merge(v4.5): integrate v4.4 release baseline
cuipengdba Nov 2, 2026
8210e42
merge(v4.5): inherit clarified release scope
cuipengdba Nov 2, 2026
37dc523
chore(v4.5): align build and deployment version defaults
cuipengdba Nov 2, 2026
f456c5b
fix(v4.5): validate SQLBot MCP login fields without credential echo
cuipengdba Nov 2, 2026
79fee87
fix(v4.5): expose scoped variables in current user info
cuipengdba Nov 2, 2026
9235bef
fix(v4.5): require workspace ID for member candidate pager
cuipengdba Nov 2, 2026
e5bba8c
docs(v4.5): gate knowledge retrieval parity on real behavior
cuipengdba Nov 2, 2026
e794b26
fix(v4.5): validate original member query fields
cuipengdba Nov 2, 2026
6ce28c5
docs(v4.5): refresh translation source hash
cuipengdba Nov 2, 2026
3482f54
chatbi: make knowledge retrieval switch effective
cuipengdba Nov 2, 2026
8085a63
chatbi: apply bounded knowledge recall counts
cuipengdba Nov 2, 2026
4f99b19
docs(v4.5): record native Go embedding model comparison
cuipengdba Nov 2, 2026
c3fd043
chatbi: restore original lexical retrieval semantics
cuipengdba Nov 2, 2026
704d354
chatbi: add local vector retrieval for authorized knowledge
cuipengdba Nov 2, 2026
c0990df
docs: distinguish historical SQLBot parameter gap from current candidate
cuipengdba Nov 2, 2026
ba5e0d9
fix: upgrade x/image and cover concurrent local embeddings
cuipengdba Nov 2, 2026
a225d1e
fix: close chat generation on changed data permissions
cuipengdba Nov 2, 2026
2122d87
docs: record chat permission race acceptance
cuipengdba Nov 2, 2026
e2f0345
fix: revalidate chat history against current visible columns
cuipengdba Nov 2, 2026
8bb5c6d
fix: bind model history to current data policy
cuipengdba Nov 2, 2026
69e6b6a
fix: pin local embedding model assets before inference
cuipengdba Nov 2, 2026
e010239
fix: redact historical answers after policy changes
cuipengdba Nov 2, 2026
0635887
fix: preserve policy binding for narrative history
cuipengdba Nov 2, 2026
96c3b76
build: create pinned reproducible ChatBI model archive
cuipengdba Nov 2, 2026
d789865
test: verify offline model archives without extraction
cuipengdba Nov 2, 2026
8d09798
feat: preselect authorized tables with local vector settings
cuipengdba Nov 2, 2026
a99f474
feat: preselect mapped datasource candidates locally
cuipengdba Nov 2, 2026
145b612
test: verify table and datasource ranking with pinned model
cuipengdba Nov 2, 2026
a1fecb9
fix: preserve explicit table names and comments in preselection
cuipengdba Nov 2, 2026
bd004cc
feat: authenticate versioned ChatBI model release assets
cuipengdba Nov 2, 2026
4fea49f
feat: install pinned ChatBI model from verified offline bundle
cuipengdba Nov 2, 2026
cd0d8c4
test: retain offline installer regression for pinned model release
cuipengdba Nov 2, 2026
9e5d76e
docs: distinguish pinned model delivery from remaining release gates
cuipengdba Nov 2, 2026
e841490
docs: refresh offline delivery translation fingerprint
cuipengdba Nov 2, 2026
84466af
docs: record local pinned model service startup after upgrade
cuipengdba Nov 3, 2026
d15bdfc
docs: record arm64 model service and rollback rehearsal
cuipengdba Nov 3, 2026
77b4640
feat(chatbi): select authorized source for unbound assistant chats
cuipengdba Nov 3, 2026
d837e6b
docs: record v4.5 original SDK real-model acceptance
cuipengdba Nov 3, 2026
3d16147
docs: hash normalized page parity source
cuipengdba Nov 3, 2026
6717b1b
chatbi: rank embedded sources from visible schema content
cuipengdba Nov 3, 2026
a9a28d8
chatbi: recheck source permissions after vector selection
cuipengdba Nov 3, 2026
5ac6694
chatbi: bound source vector input and document parity evidence
cuipengdba Nov 3, 2026
472a434
docs: record same-model orders parity result
cuipengdba Nov 3, 2026
b87aae2
fix(chatbi): omit inaccessible historical sources from chat list
cuipengdba Nov 3, 2026
f6a92ec
Revert "fix(chatbi): omit inaccessible historical sources from chat l…
cuipengdba Nov 3, 2026
c92f63a
docs: record original page same-input acceptance
cuipengdba Nov 3, 2026
84ede14
docs: confirm exact candidate original page and revocation
cuipengdba Nov 3, 2026
b49f822
feat(chatbi): persist authorized datasource vectors
cuipengdba Nov 3, 2026
bd85840
feat(chatbi): persist authorized table vectors
cuipengdba Nov 3, 2026
430f71f
fix(release): restore gateway state if ChatBI install fails
cuipengdba Nov 3, 2026
afd80f7
fix(chatbi): match original table embedding text shape
cuipengdba Nov 3, 2026
51b1edf
Align authorized table keyword scoring with SQLBot v1.10.3
cuipengdba Nov 3, 2026
a0cfef9
Extract and expand authorized table keywords before retrieval
cuipengdba Nov 3, 2026
67b5a51
Exercise keyword retrieval through local models
cuipengdba Nov 3, 2026
6e9e69d
fix(chatbi): isolate revoked datasource history in chat list
cuipengdba Nov 3, 2026
91f1b0a
fix(chatbi): accept empty SQLBot dashboard tabs safely
cuipengdba Nov 3, 2026
fe259cd
docs: record original SQLBot dashboard tab acceptance
cuipengdba Nov 3, 2026
3354859
feat(chatbi): reauthorize SQLBot dashboard tab children
cuipengdba Nov 3, 2026
caafe1a
docs: record original SQLBot nested dashboard tab acceptance
cuipengdba Nov 3, 2026
4acd6ef
fix: render single-column charts in SQLBot dashboards
cuipengdba Nov 3, 2026
b3449b7
docs: record original nested chart rendering acceptance
cuipengdba Nov 3, 2026
a8d174a
test: cover chart tab removal after datasource revocation
cuipengdba Nov 3, 2026
005b711
test: close nested dashboard read on in-flight revocation
cuipengdba Nov 3, 2026
b950e2d
test: scale pinned table index benchmark to 128 tables
cuipengdba Nov 3, 2026
a649d82
perf: share concurrent authorized table index builds
cuipengdba Nov 3, 2026
52d4ed2
test: verify pinned model shares concurrent table builds
cuipengdba Nov 3, 2026
f136ae0
fix: retry shared table index after owner cancellation
cuipengdba Nov 3, 2026
4667f67
docs: record original dashboard mixed tabs UI acceptance
cuipengdba Nov 3, 2026
4e25887
docs: verify signed outer offline install rollback on both arches
cuipengdba Nov 3, 2026
b3b2768
docs: verify signed outer upgrade rollback on both arches
cuipengdba Nov 3, 2026
a9dc9f7
fix: match original chat name parameter creation state
cuipengdba Nov 3, 2026
bb46382
docs: record original dashboard and parameter page slices
cuipengdba Nov 3, 2026
67cb07e
docs: record v4.5 candidate real systemd offline acceptance
cuipengdba Nov 3, 2026
482d8db
docs: record arm64 systemd offline candidate acceptance
cuipengdba Nov 3, 2026
fc6acc1
fix(chatbi): revalidate authorized schema before table index writes
cuipengdba Nov 4, 2026
298c526
feat(chatbi): prewarm per-user authorized table vectors
cuipengdba Nov 4, 2026
b4cb520
Bound cold ChatBI table selection while preserving authorization
cuipengdba Nov 4, 2026
b4dbb7b
Verify cold ChatBI Ask fallback with pinned embedding model
cuipengdba Nov 4, 2026
b19426f
feat(chatbi): prewarm authorized embedded assistant tables
cuipengdba Nov 4, 2026
522fdd1
perf(chatbi): bound explicit table prompts on cold index timeout
cuipengdba Nov 4, 2026
14e5a9a
docs(v4.5): record real 128-table Qwen acceptance
cuipengdba Nov 4, 2026
f3569f6
feat(chatbi): accept bounded Alibaba and Spark model settings
cuipengdba Nov 4, 2026
b983f42
test(chatbi): keep unsupported supplier rejection on hidden provider
cuipengdba Nov 4, 2026
f4bb520
build: tolerate transient release builder DNS failures
cuipengdba Nov 4, 2026
d3960ad
build: allow verified Rocky mirror for release preparation
cuipengdba Nov 4, 2026
cd7a7aa
build: allow pinned local Go archives for release containers
cuipengdba Nov 4, 2026
4b73cbf
fix(chatbi): return created model record to legacy clients
cuipengdba Nov 4, 2026
d195af8
chatbi: round-trip disabled SQLBot whitelist drafts safely
cuipengdba Nov 4, 2026
fca07fc
docs: record original SQLBot permission preview divergences
cuipengdba Nov 4, 2026
8bec202
test: close field enumeration permission bypass
cuipengdba Nov 4, 2026
3448119
test: require filtered field enumeration to remain usable
cuipengdba Nov 4, 2026
9ac3c3a
test: suppress field enum results after permission changes
cuipengdba Nov 4, 2026
2c01c8b
test: verify local model recovery after cancellation
cuipengdba Nov 4, 2026
7dca1c2
test: verify concurrent local-model asks remain user scoped
cuipengdba Nov 5, 2026
7b7497f
test: verify full ask recovers after local model cancellation
cuipengdba Nov 5, 2026
4a4276f
fix: align MCP question invalid token rejection
cuipengdba Nov 5, 2026
7a1cb15
test: expect original MCP question forbidden status
cuipengdba Nov 5, 2026
5ecccf8
fix: recheck row policy after answer persistence
cuipengdba Nov 5, 2026
c5c0397
fix: recheck policy after narrative persistence
cuipengdba Nov 5, 2026
abc11d3
fix(chatbi): match SQLBot system variable delete response
cuipengdba Nov 5, 2026
78ad323
chatbi: expose pinned built-in system variables safely
cuipengdba Nov 5, 2026
6c1739c
chatbi: resolve built-in identity variables in row rules
cuipengdba Nov 5, 2026
b3b458d
docs: record original built-in variable preview baseline
cuipengdba Nov 5, 2026
17121ad
fix(chatbi): match SQLBot terminology import duplicate reports
cuipengdba Nov 5, 2026
afb40eb
fix(chatbi): scope SQL example import duplicates by datasource
cuipengdba Nov 5, 2026
0c0856d
feat(chatbi): accept bounded legacy XLS semantic imports
cuipengdba Nov 5, 2026
6b15aad
fix(chatbi): accept original model editor numeric strings
cuipengdba Nov 5, 2026
8adeb29
fix(chatbi): allow safe removal of final workspace member
cuipengdba Nov 5, 2026
e7849b1
chatbi: support bounded single-user explicit permission targets
cuipengdba Nov 5, 2026
f553124
fix(chatbi): replay authorized page embed history data
cuipengdba Nov 5, 2026
c6d5e7c
docs(chatbi): split community parity across v4.5 to v4.8
cuipengdba Nov 6, 2026
ef4012f
fix: update reachable compression dependencies for security
cuipengdba Nov 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 16 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,18 @@ jobs:
python-version: '3.11'
- name: Check full English documentation parity
run: python scripts/check-docs-i18n.py
- name: Check current public license copy
run: python scripts/check-public-license-copy.py
- name: Check shared brand assets
run: python scripts/sync-brand.py --check
- name: Test SQLBot adapter failure boundaries
run: python -m unittest discover -s integrations/sqlbot -p 'test_*.py' -v
- name: Reject binder bundles without an independent trust anchor
run: sh dbext/packaging/signing/test-trust-boundary.sh
- name: Verify offline transport archive signatures
run: python -m unittest scripts/test_verify_offline_archive.py -v
- name: Reject unsafe or incomplete ChatBI model archives
run: python -m unittest scripts/test_package_chatbi_model.py -v
- name: Sign only explicitly selected fresh binder artifacts
run: sh dbext/packaging/signing/test-sign-selection.sh

Expand Down Expand Up @@ -106,14 +112,21 @@ jobs:
env:
GOMAXPROCS: '2'
run: go test -short -p 1 -timeout 20m ./... -count=1
- name: Verify native Q&A offline installation and rollback
- name: Verify native Q&A legacy installation and rollback
run: |
go build -o "$RUNNER_TEMP/agentsql-chatbi-installer" ./cmd/agentsql
# The full v4.5 installer requires the pinned 407 MB model asset.
# Keep the native installer regression gate offline and exercise its
# supported v4.4 upgrade path here; the signed-model release gate
# validates the v4.5 path with the actual model separately.
go build -o "$RUNNER_TEMP/agentsql-chatbi-current" ./cmd/agentsql
go build -ldflags '-X github.com/cuipengdba/agentsql/internal/version.Version=v4.4.0' \
-o "$RUNNER_TEMP/agentsql-chatbi-installer" ./cmd/agentsql
docker run --rm --network none \
--mount "type=bind,src=$GITHUB_WORKSPACE,dst=/src,readonly" \
--mount "type=bind,src=$RUNNER_TEMP/agentsql-chatbi-installer,dst=/candidate,readonly" \
--mount "type=bind,src=$RUNNER_TEMP/agentsql-chatbi-current,dst=/current,readonly" \
--entrypoint sh golang:1.26.10-bookworm \
/src/scripts/test-chatbi-installer.sh /candidate /src
/src/scripts/test-chatbi-installer.sh /candidate /src /current

web:
runs-on: ubuntu-latest
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ RUN case "${TARGETARCH}" in \

# The repository includes internal/webui/dist; frontend tooling is not run here.
COPY . .
ARG VERSION=v4.4.0
ARG VERSION=v4.5.0
RUN --mount=type=cache,target=/root/.cache/go-build mkdir -p /out \
&& GOFLAGS= CGO_ENABLED=1 go build -tags yashan -trimpath \
-ldflags "-s -w -X github.com/cuipengdba/agentsql/internal/version.Version=${VERSION}" \
Expand All @@ -51,7 +51,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build mkdir -p /out \

FROM debian:bookworm-slim AS runtime

ARG VERSION=v4.4.0
ARG VERSION=v4.5.0
ARG REVISION
LABEL org.opencontainers.image.title="AgentSQL" \
org.opencontainers.image.source="https://github.com/cuipengdba/agentsql" \
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
BINARY_DIR := bin
VERSION ?= v4.4.0
VERSION ?= v4.5.0
GO_VERSION ?= 1.26.10
GOPROXY ?= https://goproxy.cn,direct
SOURCE_DATE_EPOCH ?= 1704067200
Expand Down
34 changes: 16 additions & 18 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<img src="brand/agentsql-wordmark-light.svg" width="360" height="80" alt="AgentSQL">
</picture>

![Version v4.4.0](https://img.shields.io/badge/Version-v4.4.0-blue)
![Version v4.3.0](https://img.shields.io/badge/Version-v4.3.0-blue)
[![Go](https://img.shields.io/badge/Go-1.26-00ADD8?logo=go)](go.mod)
[![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue)](LICENSE)

Expand All @@ -17,7 +17,7 @@ It has been included in the MCP official Registry and can be directly searched f

AgentSQL (Chinese brand name: Zhidun, the console is displayed as "AgentSQL Zhidun Console") is a database security gateway and production-level MCP Server for AI Agents: each PostgreSQL/MySQL request issued by the model undergoes identity authentication, SQL parsing, authorization and rule evaluation, controlled execution, result masking and auditing before reaching the database.

AgentSQL also provides its own Q&A, chart, dashboard and embedded-application pages for independent use. An existing SQLBot deployment can optionally use AgentSQL as its database security gateway. This release's scope is in the [v4.4.0 release notes](docs/en/release-notes-v4.4.0.md). Complete SQLBot Community features and pages still require item-by-item acceptance; cutover of the user's actual business system follows v4.5.0.
AgentSQL has two deployment modes: it can secure database access for an existing SQLBot interface with identity, permissions, controlled execution, masking and persistent audit; or it can run independently with AgentSQL's own Q&A, datasource, chart and administration pages. v4.5.0 is planned as a limited-support release for controlled Q&A and verified integration paths in the independent mode, while retaining the existing integration mode. Remaining advanced-assistant, permission-rule, and broad page/API parity work is divided among v4.6.0–v4.8.0. Its Go service and Web interface are independently implemented. The supported and unverified scope is defined in the [version design](docs/en/v4.5.0-design.md) and [page and integration record](docs/en/v4.5.0-page-parity.md); route counts and demo pages do not establish full compatibility. Cutover of the user's actual business system follows the release, so this release does not claim that system has been replaced without changes.

v0.6.0 adds governance console, approval single execution and restricted read-only adaptation of Vastbase G100; v0.7.0 adds independent MCP `2026-07-28` entrance and task-level temporary read-only authorization; v0.8.0 adds alien approval; v0.9.0 adds 1–10 for new applications Results budget, management audit delivery status and policy offline pre-checking. v1.0.0 Tighten the failure shutdown of the column policy, and add optional agent and personnel dual-identity HTTP MCP authentication. v1.1.0 extends dual identity to approval and B5 sessions, and adds separate revocation of delegation tokens. v1.2.0 Add optional MCP OAuth protected resource entry. v1.3.0 Adds the MySQL 8.0/8.4 single-table InnoDB SELECT column authorization subset that is turned off by default. v1.4.0 Share console passwords and LDAP login attempt budgets in PostgreSQL metadata deployments and verify dual gateway audit failure recovery. The code uses Apache-2.0 as of v0.5.0, and historical v0.4.0 releases are still used under their original license.

Expand Down Expand Up @@ -55,11 +55,9 @@ v4.0.0 adds local verification of all signed release assets, offline transport a

v4.1.0 adds native Go data Q&A with ordinary-account login compatibility, PostgreSQL/MySQL single-turn queries, encrypted conversations, a bilingual interface and offline native-service installation. It is the first of five SQLBot Community replacement milestones; full feature and integration compatibility remains pending. See the [Q&A guide](docs/en/CHATBI.md) and [release notes](docs/en/release-notes-v4.1.0.md).

v4.2.0 added up to three authorized Q&A turns, terms and recommended questions, controlled CSV/XLSX file datasources, and narrow PostgreSQL row rules; see its [release notes](docs/en/release-notes-v4.2.0.md). v4.3.0 added AgentSQL's own charts, dashboards and embedded application management, with selected original SQLBot v1.10.2 page and embedded Q&A flows compared in a synthetic local environment; see the [v4.3.0 release notes](docs/en/release-notes-v4.3.0.md) and [acceptance record](docs/en/v4.3.0-acceptance.md).
v4.2.0 added up to three authorized Q&A turns, terms and recommended questions, controlled CSV/XLSX file datasources, and narrow PostgreSQL row rules; see its [release notes](docs/en/release-notes-v4.2.0.md). v4.3.0 adds AgentSQL's own charts, dashboards and embedded application management, with selected original SQLBot v1.10.2 page and embedded Q&A flows compared in a synthetic local environment. Full feature and page parity and zero-change replacement of the user's application remain unverified; see the [current release notes](docs/en/release-notes-v4.3.0.md) and [acceptance record](docs/en/v4.3.0-acceptance.md).

v4.4.0 adds AgentSQL account, user and workspace administration and deeper remark, table selection and relationship flows for server-bound datasources. Selected unchanged SQLBot v1.10.3 pages were compared locally. Complete Community features and integration methods still need individual acceptance; cutover of the user's actual business system follows v4.5.0. See the [v4.4.0 release notes](docs/en/release-notes-v4.4.0.md).

**verification scope:**v1.0.0–v2.8.0. For the database and security capabilities, see the acceptance records of each version respectively; for v2.9.0 strategy review and audit, see [ acceptance records ](docs/en/v2.9.0-acceptance.md); v3.0.0 For the capability catalog, diagnostics and client see [ acceptance record ](docs/en/v3.0.0-acceptance.md). Vendor conclusions only cover specified instances, patterns, and synthetic data. The following commands are subject to [GitHub Release](https://github.com/cuipengdba/agentsql/releases/tag/v4.4.0), signature and image anonymous pull acceptance.
**verification scope:**v1.0.0–v2.8.0. For the database and security capabilities, see the acceptance records of each version respectively; for v2.9.0 strategy review and audit, see [ acceptance records ](docs/en/v2.9.0-acceptance.md); v3.0.0 For the capability catalog, diagnostics and client see [ acceptance record ](docs/en/v3.0.0-acceptance.md). Vendor conclusions only cover specified instances, patterns, and synthetic data. The following commands are subject to [GitHub Release](https://github.com/cuipengdba/agentsql/releases/tag/v4.3.0), signature and image anonymous pull acceptance.

```text
AI Agent → LLM / MCP Client → AgentSQL Gateway → PostgreSQL / MySQL
Expand Down Expand Up @@ -134,17 +132,17 @@ The following three paths all listen only on the host's loopback address by defa
v0.4.0 provides two native glibc packages: `linux/amd64` and `linux/arm64`: `uname -m` uses the amd64 package when it is `x86_64` / `amd64`, and uses the arm64 package when it is `aarch64` / `arm64`. Both require glibc 2.28+ and systemd as PID 1; the installer will automatically select the native architecture, verify the outer and inner package hashes of the release package, and install it as a systemd service. musl/Alpine and CentOS 7 are still not supported:

```bash
curl -fsSL https://github.com/cuipengdba/agentsql/releases/download/v4.4.0/install.sh | sudo sh -s -- install --version v4.4.0
curl -fsSL https://github.com/cuipengdba/agentsql/releases/download/v4.3.0/install.sh | sudo sh -s -- install --version v4.3.0
```

Non-TTY output from pipelines and CIs does not show the automatically generated administrator password; root can view it at `/etc/agentsql/agentsql.env`. The interactive terminal is displayed once when credentials are first created, or `--show-password` can be added explicitly. After obtaining the tarball and the `.sha256` with the same name at the same time in the offline environment, verify, decompress and install from the package root:

The following is an example of the amd64 asset name of v4.4.0; arm64 hosts starting from v0.4.0 use the `-linux-arm64` asset name of the same version.
The following is an example of the amd64 asset name of v4.3.0; arm64 hosts starting from v0.4.0 use the `-linux-arm64` asset name of the same version.

```bash
sha256sum -c agentsql-v4.4.0-linux-amd64.tar.gz.sha256
tar -xzf agentsql-v4.4.0-linux-amd64.tar.gz
cd agentsql-v4.4.0-linux-amd64
sha256sum -c agentsql-v4.3.0-linux-amd64.tar.gz.sha256
tar -xzf agentsql-v4.3.0-linux-amd64.tar.gz
cd agentsql-v4.3.0-linux-amd64
sudo ./install.sh install
```

Expand All @@ -153,20 +151,20 @@ sudo ./install.sh install
By default, the script pulls the exact GHCR tag corresponding to the latest stable Release from GitHub; the tag is `linux/amd64` + `linux/arm64` multi-architecture image, and Docker will automatically match the running architecture. The script generates `.env` with permission `0600`, uses `agentsql-data` to name the volume, and fixes the bound loopback address:

```bash
curl -fsSL https://raw.githubusercontent.com/cuipengdba/agentsql/v4.4.0/scripts/quickstart.sh -o quickstart.sh && sh quickstart.sh --version v4.4.0
curl -fsSL https://raw.githubusercontent.com/cuipengdba/agentsql/v4.3.0/scripts/quickstart.sh -o quickstart.sh && sh quickstart.sh --version v4.3.0
```

The GHCR package must be set to public by the publisher so that the above command can be pulled anonymously in a non-logged-in environment. First check the public status of the precise tag `v4.4.0` and the dual-architecture manifest; Docker will automatically select `linux/amd64` or `linux/arm64` from the manifest list:
The GHCR package must be set to public by the publisher so that the above command can be pulled anonymously in a non-logged-in environment. First check the public status of the precise tag `v4.3.0` and the dual-architecture manifest; Docker will automatically select `linux/amd64` or `linux/arm64` from the manifest list:

```bash
docker pull ghcr.io/cuipengdba/agentsql:v4.4.0
docker pull ghcr.io/cuipengdba/agentsql:v4.3.0
```

The equivalent single `docker run` is as follows; the random value is only passed in through the current shell environment and is not written into the command line parameters:

```bash
export AGENTSQL_SECRET="$(openssl rand -base64 24)" AGENTSQL_ADMIN_USER=admin AGENTSQL_ADMIN_PASSWORD="$(openssl rand -base64 18)"
docker run -d --name agentsql --restart unless-stopped --security-opt no-new-privileges:true -p 127.0.0.1:7780:7780 -e AGENTSQL_SECRET -e AGENTSQL_ADMIN_USER -e AGENTSQL_ADMIN_PASSWORD -v agentsql-data:/var/lib/agentsql ghcr.io/cuipengdba/agentsql:v4.4.0
docker run -d --name agentsql --restart unless-stopped --security-opt no-new-privileges:true -p 127.0.0.1:7780:7780 -e AGENTSQL_SECRET -e AGENTSQL_ADMIN_USER -e AGENTSQL_ADMIN_PASSWORD -v agentsql-data:/var/lib/agentsql ghcr.io/cuipengdba/agentsql:v4.3.0
```

### 3. Local Live Demo (one command, no source code required)
Expand All @@ -175,7 +173,7 @@ This self-contained environment only connects to synthetic PostgreSQL/MySQL demo

```bash
mkdir agentsql-demo && cd agentsql-demo
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/cuipengdba/agentsql/v4.4.0/deploy/quickstart/docker-compose.yml
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/cuipengdba/agentsql/v4.3.0/deploy/quickstart/docker-compose.yml
docker compose up -d
```

Expand Down Expand Up @@ -218,7 +216,7 @@ The source binary build according to `go.mod` requires Go 1.26, cgo, C compiler
The following source build example only produces native executables. Self-built files have not been signed and distributed for formal release of assets:

```bash
make build VERSION=v4.4.0
make build VERSION=v4.3.0
./bin/agentsqlctl init-config -o config.yaml
export AGENTSQL_SECRET="$(openssl rand -base64 24)"
export AGENTSQL_ADMIN_USER='admin'
Expand Down Expand Up @@ -409,7 +407,7 @@ Please do not submit real keys, passwords, connection strings or details of unfi
```bash
go vet ./...
go test -race -count=1 ./...
make build VERSION=v4.4.0
make build VERSION=v4.3.0
```

`pg_query_go` requires cgo; do not build with `CGO_ENABLED=0` or Alpine/musl. Please read [SPEC](docs/en/SPEC.md) before submitting changes to test for behavioral changes and keep the `tests/corpus` decision-making corpus from being unintentionally rewritten.
Expand Down
Loading
Loading