81 Commits

Author SHA1 Message Date
Bieber
0d82b7bd9c
[sync] fix(link-field): add bottom padding to filter records container (#2432)
Synced from teableio/teable-ee@5e99422

Co-authored-by: teable-bot <bot@teable.io>
2026-01-14 18:16:25 +08:00
nichenqin
a0e5157a38
Merge pull request #2181 from teableio/feat/audit-user-json
feat: store audit user fields as json
2025-12-01 20:59:46 +08:00
Boris
b7924aa0c2
refactor: oauth app foreign keys (#2085)
* refactor: add oauth app foreign keys

* fix: personal oauth revoke token

* feat: add trash-related scopes to oAuth actions

* feat: add delete oauth apps

* chore: add oauth trash scope e2e

* chore: revoke token api docs return code
2025-11-06 16:41:34 +08:00
nichenqin
b3fa8ed632
fix: fix rollup expression regression (#2023)
* fix: fix rollup expression regression

* fix: fix date filter with field reference component
2025-10-22 16:50:19 +08:00
nichenqin
60d033655b feat: add default filter conditions for conditional rollup fields 2025-10-17 18:10:15 +08:00
nichenqin
39c5391966 feat: add realtime op listener 2025-10-17 18:10:12 +08:00
Boris
9a2a0a848f
feat: ai (#1783)
* feat: agent mode and group tools

* feat: optimize code previee and display

* perf: aichat ui

perf: chat agent

* chore: update ai slogan

* chore: add i18n for agent waiting state

* chore: resolve the dev redis connection

* feat: implement mul hybrid coding model (#1685)

* feat: add more agent for ai chat (#1686)

* chore: update i18n

* chore: delete useless component

* perf: first frame for ai panel

* perf: add build base agent for complex apps builder task

* chore: add more buildbase operator

* chore: update teable ai icon

* perf: smooth build base (#1692)

* feat: ai automation (#1710)

* chore: update type and i18n automation ai relative

* chore: update lock file

* perf: build base UI (#1731)

* perf: use queue to show the process of build base

* perf: limit `table`、`field`、`view` display when create base by ai

* feat: create operator by ai need to confirm

* feat: app

* perf: limit model level setting (#1741)

* feat: limit the model for ai chat

* test: update space e2e

* fix: user should not get full ai model info (#1744)

* fix: user should not get full ai model info

* perf: optimise ai integration display

* perf: ai relative ui (#1757)

* fix: delete temperature for supporting `gpt-5` (#1761)

* feat: user friendly interface

* feat: chat attachment (#1762)

* refactor: model setting (#1764)

* perf: agent task UI (#1763)

* perf: update ai config do not trigger ai enable in setting

* perf: build base task list

* chore: update i18n

* style: better dark mode

* chore: permission tips

* chore: better api token create experience

* feat: better shared bases

* feat: better collaborators display

* chore: update agent type

* feat: attachment ui (#1771)

* perf: ai chat abort i18n (#1773)

* feat: update uploadFromUrl params

* perf: add analyze attachment i18 (#1777)

* feat: permission for app

* feat: ai chat add suggestions (#1779)

* perf: ai generate animation border (#1780)

* feat: add app config

* fix: ai preview e2e (#1781)

* fix: ai preview e2e (#1782)

* feat: add app usage limit

* perf: ai ui adjust

* feat: ai ui

* revert: billable

* feat: show all collaborators for space

* fix: free user conflict ai ui (#1785)

* fix: badge show timing

* feat: app usage limit

* feat: add web search (#1789)

* perf: csv excel ai analze (#1790)

* fix: lint error

* perf: add a function to resolve excel and csv

* fix: lint error (#1791)

* perf: ai ui optimise (#1792)

---------

Co-authored-by: caoxing <caoxing9@gmail.com>
Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
Co-authored-by: Bieber <artist@teable.io>
2025-08-21 19:27:21 +08:00
Boris
6b9ac1da9c
feat: undo redo event (#1690)
* feat: add undo redo event

* fix: merge conflict

* fix: use inish instead of end to ensure that the stream operation is closed

* chore: read stream use end

* fix: ensure stream operation closed

* fix: local unit test
2025-07-29 12:24:46 +08:00
Boris
56d59282d1
refactor: replace Knex with Prisma for readonly database connection (#1648)
* refactor: replace Knex with Prisma for readonly database connection

* fix: e2e Injectable module

* fix: base sql executor readonly init

* fix: retry-on-dead-lock.spec timeout

* fix: remove readonly password

* chore: more base-sql-excutor e2e it
2025-07-08 11:53:14 +08:00
Uno
eccac07054
refactor: restructure settings management and introduce OpenAPI endpo… (#1637)
* refactor: restructure settings management and introduce OpenAPI endpoints

* refactor: clean up setting module and introduce admin OpenAPI endpoints

* refactor: update app module to include new admin OpenAPI endpoints and clean up imports

* refactor: initialize instanceId in setting service and update schema validation

* fix: enhance e2e tests with CLS context and user management utilities

* chore: remove debug log from e2e test for auth controller

* fix: handle null values in setting service updates and creation

* fix: add check for non-array settings in setting service

* chore: update migration scripts to drop old setting tables and ensure unique index on new settings

* fix: update migration script to convert setting values to JSON format for consistency
2025-07-08 11:32:08 +08:00
Boris
9b72c88e3e
feat: support cell-level permission control (#1457)
* feat: support cell-level permission control

* fix: typecheck error

* refactor: duplicate record response interface

* fix: paste endpoints to return the correct effect ranges

* chore: remove log code

* fix: e2e

* fix: selection unit tests

* feat: handle can't read one field records status

* fix: aggregation search e2e

* fix: ai field and inplace import field permission

* fix: projection is empty array

* fix: search index projection

* fix: e2e

* fix: e2e strict
2025-04-28 10:25:46 +08:00
Aries X
a6abb75a32
feat: support template (#1413)
* feat: support base export and import

* feat: support space template feture

* feat: add link junction table relative import and export

* fix: duplicate table lookup losing link field

* fix: duplicate lookup field error

* chore: add template db-migration

* fix: package error

* feat: use html tag for export notification

* fix: template relative

* fix: lint error

* fix: template e2e

* feat: base export auth

* fix: delete previous snapshot base when create new snapshot

* feat: optimise template category creating process

* fix: import base zip field error

* fix: import base error

* fix: date field type record insert

* fix: view options duplicate

* fix: view share enable duplicate

* fix: view duplicate

* refactor: simplify duplicate logic

* fix: some duplicate base bugs and e2e

* fix: duplicate view with share relative

* feat: update template relative api auth setting

* fix: attachment job judgement when import base

* fix: base import task

* fix: import attachment losing mimetype when import base

* feat: add shareid unique constraint

* fix: get mimetype from file suffix when import base
2025-04-07 03:21:19 +08:00
SkyHuang
e30fd47bb0
fix: data misalignment from column order changes or hidden columns in personal view (#1297) 2025-02-07 10:51:49 +08:00
Bieber
f075a0792e
feat: trgm index for search (#1245)
* feat: add tsvector for search

* feat: add tsvector trigger

* feat: search hits with full text search

* perf: optimize search query logic for speed

* fix: search ts vector with blank

* fix: search e2e test

* fix: index error when enable hidden match field for search

* perf: optimize search sql

* feat: trgm index for search

* perf: brand new search design

* fix: global filter date field type

* feat: add table index repair for search

* test: add search e2e with index

* feat: add create or repair search index tip

* fix: person view take the view condition

* chore: update sqlite search index logic

* test: shield useless e2e

* test: fix sqlite search e2e error

* fix: index length is to long

* chore: delete todo annotation

* fix: delete duplicate field search field

* fix: search cursor out-date when cooperate

* chore: update search relative description

* feat: add enable index tip when rowcount over 10000

* feat: update search index enable tips

* feat: filter boolean and date field when all field search mode

* fix: person view should search abnormal

* fix: lint error

* fix: search e2e test

* feat: add max with for search tooltips

* feat: update search index relative tooltips

* fix: codefactor recomand

---------

Co-authored-by: caoxing <caoxing9@gmail.com>
2025-01-21 20:45:15 +08:00
Boris
4b338bacde
feat: support email verify, update email and optimise signin and signup page (#1252)
* feat: account email verify

* feat: support change email

* fix: e2e

* feat: additions e2e
2025-01-17 15:09:40 +08:00
SkyHuang
80e1ddb11e
fix: group header rendering error related to date field (#1066)
* fix: duplicate record cannot be undo

* fix: group header rendering error related to date field
2024-11-07 19:25:25 +08:00
SkyHuang
e93dc65625
feat: record menu supports duplicate record (#1060)
* feat: record menu supports duplicate record

* fix: the display of card covers

* fix: linting types

* fix: the click penetration of dialog
2024-11-06 18:40:11 +08:00
AliceLanniste
fe5151f12f
feat: implement duplicate row functionality (#930)
* feat: implement duplicate row functionality

* fix: merge error
2024-11-05 13:53:12 +08:00
Bieber
d63ef08e05
fix: e2e sqlite test fail (#900) 2024-09-09 18:18:08 +08:00
SkyHuang
f96b6529db
feat: trash (#890)
* feat: trash

* fix: clean up resources for the spaces and bases when permanently deleting

* refactor: rename permanent delete table api

* feat: clean related resources when permanently deleting a space, base or table

* chore: update e2e testing utils

* chore: e2e testing for trash

* chore: trash migration

* fix: the trash id is not correctly obtained

* chore: update unit test
2024-09-09 11:19:10 +08:00
Bieber
14b06ec116
feat: undo redo (#839)
* feat(wip): undo redo

* chore: register module

* feat: undo-redo create records

* fix: last modified

* fix: duplicate last modified

* feat: undo redo record retain order

* feat: update record undo redo

* refactor: await with event

* feat: undo reodo clear records

* feat: undo redo ui

* fix: lint

* fix: user name modifiy test

* fix: shortcut key for grid view undo redo

* feat: tooltip

* feat: undo redo delete records

* refactor: union operation logic

* chore: clean code

* feat: undo redo record order

* feat: create / delete fields undo redo

* feat: support batch delete fields

* fix: delete field with outgoing references

* fix: transaction issue

* fix: sqlite test

* feat: paste undo redo

* feat: convert field undo redo

* fix: constraint error

* fix: unit test

* feat: add delete view undo redo

* feat: update view undo redo

* fix: delete field error

* fix: page blank when undo delete view
2024-08-29 19:22:18 +08:00
Boris
5ce5a92b93
refactor: attachment remove bucket (#715)
* refactor: remove bucket from attachment table

* fix: share form view full url

* fix: e2e set storagePrefix

* chore: lint

* fix: view e2e

* fix: local test

* fix: socket view convert attachment full url
2024-07-13 11:32:00 +08:00
Boris
e1d1b8d955
feat: oauth server (#678)
* feat: support to get user information by access token

* feat: oauth server

* feat: oauth server & supplementary e2e

* chore: fix code factor

* chore(db-main-prisma): oauth migration

* fix: oauth-server unit test

* feat: oauth server page

* fix: unit test

* fix: some issues in the oauth process

* fix: oauth e2e

* fix: oauth server unit test
2024-07-08 11:08:21 +08:00
SkyHuang
88a3a8255a
chore: setup nestjs app for E2E testing (#688)
* chore: setup nestjs app for E2E testing

* chore: remove redundant logs
2024-07-03 11:06:13 +08:00
Boris
a2f48f4597
refactor: remove get table full (#673)
* refactor: remove the functionality of fetching table content (view, field, record) from the API

* chore: public convertProjection method in record.service

* fix: multiple socket connections and resolve readonly user role confusion after snapshot changes
2024-06-25 18:14:17 +08:00
Boris
992810a33b
fix: share Unauthorized should be 401 (#659) 2024-06-11 15:10:42 +08:00
Boris
128a6dfdbc
chore: backend e2e supports defining apps in the config of the global setup (#623) 2024-05-27 15:13:40 +08:00
Boris
7543a1f090
refactor: sharedb work flow (#606)
* refactor: sharedb work flow

* chore: remove non-existent var

* chore: remove useless e2e test

* fix: uniform registration of global guard positions to ensure execution order

* fix: e2e set port

* fix: socket error

* chore: remove test code
2024-05-17 12:05:32 +08:00
Bieber
3e293edecb
refactor: move zod schema to openapi (#487) 2024-03-22 18:56:26 +08:00
Bieber
fd0caa3dac
refactor: row order (#473)
* refactor: row order

* fix: sqlite test
2024-03-20 16:52:46 +08:00
Mike
ae92e65b00
feat: support csv import (#379)
* feat: support `csv` import

* chore: update pnpm-lock.yaml

* perf: optimise import memory expend

* fix: `openapi` upload type error

* test: compatible ci attachment download

* feat: add csv file icon

perf: delelte import promise list

* feat: add import file size

* feat: add leave tip when importing

* feat: reserve excel import data structure
2024-03-04 18:00:27 +08:00
tea artist
0a5e32a038
chore: rename (#356)
* chore: change github url to teableio

* chore: rename teable-group to teable

* chore: rename url path to teableio
2024-01-30 22:20:05 +08:00
Pengap
98143c0c4b
fix: event memory (#353)
* refactor: event manager

* chore(deps): upgrading several dependencies

* fix: unit test

* fix: import path

* revert: shareDbService `onSubmit`

---------

Co-authored-by: pengap <penganpingprivte@gmail.com>
2024-01-30 17:19:20 +08:00
Boris Bo Wang
420cb991c7
feat: access token (#345)
* refactor: permission static hook

* feat: add access token interface

* chore: fix lint and error change

* refactor: api url spinal-case
2024-01-26 14:16:03 +08:00
tea artist
313fc00361
fix: modify db field name fail (#346) 2024-01-25 21:28:49 +08:00
tea artist
8d601c6b17
feat: add design table page (#341)
* feat: add isPending status for field calculation

* feat: optmize static field convert

* refactor: change nodeId to tableId

* feat: add design table page

* feat: better ui for table design

* refactor: view api

* refactor: table api

* fix: test fail
2024-01-24 22:10:13 +08:00
Pengap
2797cade03
refactor: sort query (#340)
* refactor: sort query

* style: lint fix

* fix: user field aggregation `unique` func

* fix: field value to db value `null`

* style: lint

* chore: update `pnpm-lock.yaml`

---------

Co-authored-by: pengap <penganpingprivte@gmail.com>
2024-01-24 18:08:09 +08:00
Boris Bo Wang
a49d127951
refactor: session instead of jwt (#333)
* feat: change password ui

* refactor: session instead of jwt

* feat: user session management

* chore: session expires is 7d

* refactor: remove useless code

* fix: test dependencies

* fix: test dependencies

* fix: signout clear cookie

* feat: change password

* feat: setting add i18n json

* fix: socket auth in e2e

* fix: sign up
2024-01-18 18:15:10 +08:00
Pengap
2a52e8eb46
refactor: record filter query e2e (#324)
* refactor: record filter query e2e

* chore(deps): upgrade more deps

* refactor(e2e): add seed script

---------

Co-authored-by: pengap <penganpingprivte@gmail.com>
2024-01-10 21:34:08 +08:00
tea artist
46cec9d93d
feat: fast and accurate plan (#321)
* feat: fast and accurate plan

* fix: use dynamic year

* refactor: unified basic query parameters

* fix: sqlite need give count name

* chore: remove qs

* fix: new e2e params
2024-01-10 20:16:52 +08:00
Boris Bo Wang
b4e406c487
fix: attachment (#320)
* fix: preview file error

* fix: attachment editor style

* fix: selection service expand col transfer

* fix: extractTableHeader add isComputed

* perf: optimize Selector component search performance

* test: pasting will result in expanding a column converted from a formula

* feat: support lookup multiple value tansform

* refactor: serialized copy and paste

* fix: unit test mock

* test: e2e transaction isolation

* test: handling sqlite setup transaction conflicts

* fix: e2e setup

* fix: e2e setup
2024-01-10 17:46:09 +08:00
Boris Bo Wang
966dd2a1f5
refactor: attachment and new minio adapter (#315)
* refactor: attachment and new minio adapter

* fix: unit test

* fix: type error

* fix: repair attachment presignUrl

* fix: e2e run

* refactor: gen presignedUrl

* refactor: remove useless code
2024-01-04 11:40:18 +08:00
caoxing
a4553c8d86
feat: supplement share view function (#313)
* feat: `filter sort` use api

fix: share view function missing

* chore: update sort、filter e2e

* perf: optimise share relative schema tranform

* chore: delete console
2023-12-28 17:06:02 +08:00
Pengap
ff95b24d81
refactor(test): remove supertest (#314)
* refactor(test): remove supertest

---------

Co-authored-by: pengap <penganpingprivte@gmail.com>
2023-12-28 16:02:10 +08:00
tea artist
43fab8d4ac
teat: backend vitest (#311)
* test: change nextjs-app from jest to vitest

* test: change packages from jest to vitest

* fix: remove error jest types

* test: run backend e2e with vitest

* test: remove all jest

* fix: duplicate provider

* test: optimize test setting
2023-12-25 21:43:23 +08:00
caoxing
d8e94004b6
feat: move column meta to view from field (#288)
* feat: toolbar operator support api collaborate

* feat: move column meta to view from field

feat: supplement view open api

* test: add set view option test

* chore: set env from sqlite to pg

* fix: update column meta getter

* chore: delete legacy annotation

* chore: add migration sql script

* test: move e2e field order test to view

* fix: insert column order should update view column meta

* chore: fix lint warning

* test: fix e2e error because of random fields order
2023-12-13 21:00:37 +08:00
tea artist
f0851c0229
test: fix sqlite test concurrency error (#290)
* test: fix sqlite test concurrency error

* feat: optimize dashboard ui
2023-12-12 16:35:54 +08:00
tea artist
436f461f28
fix: link convert did not correctly mark lookup error (#287)
* fix: link convert did not mark lookup error currect

* test: fixing memory leaks
2023-12-11 11:00:58 +08:00
tea artist
8d6491a940
refactor: replace superequest with openapi (#284)
* refactor: replace superequest with openapi

* fix: crash with modify primary field cell with other cell in a table with link field
2023-12-07 14:53:23 +08:00
tea artist
c063b51b25
refactor: change field/record update method to patch (#281)
* refactor: change field/record update method to patch

* test: improve stability
2023-12-06 21:29:45 +08:00