Commit Graph

96 Commits

Author SHA1 Message Date
Bartosz Sypytkowski d5252f4273 Merge branch 'main' into stateless 2024-12-17 18:24:17 +01:00
Nathan.fooo abf827f2a6
chore: query multiple collab embedding state (#1081)
* chore: query multiple collab embedding state

* chore: clippy
2024-12-17 23:23:43 +08:00
Bartosz Sypytkowski e85e60c0f2 chore: revert from editing collab 2024-12-17 05:43:04 +01:00
Bartosz Sypytkowski 1b35326f0a Merge branch 'main' into stateless 2024-12-16 04:47:26 +01:00
Nathan.fooo 2ab1e94b99
chore: create embed in background (#1071)
* refactor: create indexer scheduler

* refactor: replace current calls

* chore: use rayon thread pool

* chore: index unindexed collab using thread pool

* chore: index collab when write to disk

* chore: add test

* chore: add test

* chore: add test

* chore: fix client api deps

* chore: chat with document test

* chore: fix test

* chore: clippy

* chore: update test
2024-12-15 12:29:51 +08:00
Bartosz Sypytkowski ed07104aeb chore: remove from editing collab param in get encode collab method 2024-12-14 09:42:15 +01:00
khorshuheng c1c5bf7420 chore: stop writing to af_collab_member 2024-12-13 10:17:22 +08:00
Bartosz Sypytkowski 41e9302ff9 Merge branch 'main' into stateless 2024-12-12 16:00:45 +01:00
Nathan.fooo af38efe6d9
feat: sync document through http request (#1064)
* chore: query embedding

* chore: create embeddings

* chore: apply update to editing collab

* refactor: web-update

* chore: calculate missing update the sv is not none

* chore: add test

* chore: fix audit

* chore: commit sqlx

* chore: fix client api

* test: add

* chore: clippy

* chore: fix collab drop when save
2024-12-12 14:53:07 +08:00
Zack 254bc23a6e
feat: insert database row into selected database (#1029)
* feat: insert database row into selected database

* feat: inserting database row

* feat: add impl for cell

* feat: insert row selection and mulitselection

* feat: support datetime field type

* fix: other fields like rich text

* feat: add database field server impl

* feat: add client api and tests

* feat: use to json value impl from collab

* feat: use add database cell impl from collab

* feat: update to latest collab

* chore: upgrade collab and fix tests

* chore: review issues

* fix: code review feedback

* feat: filter only allow supported field types

* feat: support more field types

* feat: support created at and last modified

* feat: add timestamp cell for created at and modified at fields

* chore: linting and formatting

* fix: add created at and last modified

* fix: ci add service dependency of appflowy cloud on admin frontend

* chore: trigger ci

* feat: add logging for admin frontend client signin

* fix: server logs if error

* fix: create admin confirmation without email

* fix: ci add service dependency of appflowy cloud on admin frontend

* fix: server logs if error

* chore: update collab
2024-12-11 15:47:29 +08:00
Bartosz Sypytkowski 66deaf3fa3
chore: move collab cache for appflowy collaborate service and add metrics (#1045)
* chore: move collab cache for appflowy collaborate service and add metrics

* chore: add histogram for measuring time spent in postgres transactions

* chore: delete blobs in chunks

* chore: bring back redis cache filling by import worker

* chore: cargo fmt

* chore: make import workspace update existing collabs

* chore: bulk insert collab deduplicate records
2024-12-06 19:55:51 +08:00
khorshuheng aa64b7cd6b fix: web update should update both disk and mem cache 2024-12-05 16:51:56 +08:00
Bartosz Sypytkowski 5e7b5f87fa chore: merge branch main into stateless 2024-12-03 09:10:01 +01:00
Bartosz Sypytkowski 51bf9a85c7
chore: make collab storage switch between s3 and postgres configurable (#1035) 2024-12-03 14:09:09 +08:00
Bartosz Sypytkowski 9ff6f1c744
S3 collab cache (#1028)
* chore: collab cache for S3

* chore: adjust disk cache api to accomodate s3

* chore: move postgres dependent ops to disk cache

* chore: replace blob inserts from pg to s3

* chore: delete blob and collab exist now use s3

* chore: fix clippy erorrs

* chore: post rebase fixes

* chore: fix clippy warnings

* chore: fix imports

* chore: make snapshots work over S3

* chore: remove dead code

* chore: use compressed snapshots

* chore: add zstd compression

* chore: introduce collab size threshold to keep smaller collabs in postgres

* chore: remove collabs from S3 if they were put to postgres

* chore: update tests
2024-12-03 13:08:55 +08:00
Bartosz Sypytkowski 4fb6df5c14
chore: reduce number of SQL statements executed when inserting/updating collab (#1022)
* chore: reduce number of SQL statements executed when inserting new collab

* chore: add workspace id check

* chore: fix previous query

* chore: upsert collabs and embddings as stored procedures

* chore: fix clippy errors

* chore: fix stored procedure to compare workspaces correctly
2024-11-27 13:00:00 +08:00
khorshuheng 484cd595e0 feat: add support for create database pages via API 2024-11-26 15:58:16 +08:00
Zack Fu Zi Xiang c4d52859fb
feat: add a polling api for getting database row id updates 2024-11-24 23:24:29 +08:00
Bartosz Sypytkowski 3e612e2db6 chore: create method for receiving the most recent snapshot 2024-11-05 07:47:17 +01:00
Bartosz Sypytkowski f9397eaaf2 chore: remove realtime shared state 2024-11-04 07:58:16 +01:00
Khor Shu Heng 9eb1c36c92
chore: access control interface to return error instead of boolean (#914) 2024-10-21 20:20:14 +08:00
Nathan.fooo 33e63fae5c
chore: try to fix pg lock timeout (#864)
* chore: try to fix pg lock timeout

* chore: add logs for insert collab

* chore: add timeout for duplicate

* chore: timeout for pending write
2024-10-07 16:49:50 +08:00
Nathan.fooo 38ff1874e4
chore: using copy to improve write speed of batch collab api endpoint (#862)
* chore: using copy to improve write speed of batch collab api endpoint

* chore: insert to redis

* chore: fix compile
2024-10-07 08:58:19 +08:00
Nathan.fooo 9c0dffacef
feat: implement import notion zip file api endpoint (#840)
* chore: implement api endpoint

* chore: worker

* chore: async zip

* chore: test bulk insert

* chore: insert collab

* chore: custom task

* chore: consume un acked message

* chore: fix compile

* chore: add test

* test: update

* chore: save import record

* chore: save import record

* chore: fix ci

* chore: remove unused deps

* chore: update docker file

* chore: build worker images

* chore: use small int

* chore: use small int

* chore: rm protoc deps in runtime

* chore: move collab cache to database crate

* chore: update test

* chore: rm health api endpoint

* chore: clippy

* chore: update ci

* chore: add test

* chore: upgrade collab

* chore: clippy

* chore: update test

* chore: use custom host

* chore: config nginx

* chore: install cert
2024-10-03 22:22:29 +08:00
Khor Shu Heng 11732324b5
feat: support fetching encoded collab in batch from memory (#837) 2024-10-02 10:22:40 +08:00
Nathan.fooo 5d356718fa
fix: using spawn_blocking in order to not block the runtime (#793)
* fix: using blocking in order to not block the runtime

* chore: increase deps count
2024-09-05 09:19:34 +08:00
Zack 826546c5cb
feat: duplicate published doc (#700)
* chore: test collab sync

* feat: folder view for user workspace

* feat: add private indicator

* chore: use collab cache instead

* chore: initial impl

* chore: cargo sqlx

* fix: write back to collab cache

* fix: assign page id

* fix: text map

* chore: connect api and refactor

* chore: switch to using mem storage

* fix: collab type

* feat: use group manager to manage sync

* feat: try add send command instead

* chore: add client api code

* feat: try use sink and stream from group collab

* chore: disable sync first

* fix: insert page before stopping group

* feat: add extra for view

* feat: add metadata to doc

* fix: icon

* fix: page circular dep

* fix: page circular dep

* fix: live update

* feat: database initial impl

* feat: workspace database

* chore: link database

* fix: database validation

* fix: workspace database oid

* fix: workspace database oid

* fix: specify view layout

* feat: add txn when inserting collab and rework database views

* fix: parent view id for new database

* fix: database view for folder

* fix: database ids

* fix: database row id

* fix: main database layout and write database before folder

* fix: metadata for non database main view

* chore: database in doc wip

* chore: filter visible views

* chore: use structure value instead of json

* chore: database in doc wip

* fix: remove child item push

* fix: main database view meta

* chore: rework inline database in doc

* fix: make duplicate more error forgiving

* chore: use get instead of get key value

* chore: merge with main

* feat: set max depth for folder view

* chore: update dependency counter

* chore: remove unneeded arg

* chore: simplify collab new from source

* chore: remove unneeded param

* chore: rename and doc

* feat: rework inline database and use duplicated ref

* chore: simplify params

* chore: fmt

* feat: deduplicate database wip

* fix: compatible with newer appflowy version

* fix: database views

* feat: database in doc

* chore: cargo clippy

* chore: update dockerfile rust toolchain

* fix: doc inline db parent id

* fix: database id

* fix: document data modification

* chore: minor refactor and todo

* chore: remove unneeded nesting

* fix: enforce ordering for views to add

* chore: add doc and test case for folder view

* fix: remove the need for cloning published collab

* fix: some review

* chore: move folder conversion logic

* fix: remove collab folder deps on shared entity

* chore: cargo fmt

* fix: compile

* chore: remove group manager dependency

* fix: dep count

* fix: add messages sent by server

* fix: dep count

* chore: add test for doc ref and inline doc database

* chore: cargo clippy

* chore: add more test scenarios

* chore: fix tests

* chore: get database id

* chore: update collab

* chore: add more assert and database row id checks

* fix: suggestions from review

* chore: sqlx

* fix: accumulate collab before insert

* chore: add tokio spawn blocking for encoding

* fix: reduce limit for publish collabs

---------

Co-authored-by: Bartosz Sypytkowski <b.sypytkowski@gmail.com>
Co-authored-by: nathan <nathan@appflowy.io>
2024-09-03 09:12:29 +08:00
Nathan.fooo 365c64c5c2
chore: use colla storage instead of select from db directly (#782) 2024-09-02 21:25:21 +08:00
Bartosz Sypytkowski 2f37f621b2 fix: collab update violating primary key 2024-06-28 07:11:33 +02:00
Bartosz Sypytkowski b79fe41af3 chore: moving embeddings into collabparams 2024-06-28 05:39:56 +02:00
Bartosz Sypytkowski b1ebbecc5f chore: moving appflowy indexer into appflowy cloud 2024-06-28 05:39:53 +02:00
Nathan.fooo 388d38428b
chore: revamp post realtime endpoint (#536)
* chore: revamp  post realtime endpoint

* chore: fix clippy

* chore: fix fmt
2024-05-08 22:06:37 +08:00
Nathan.fooo 70262a1ac4
chore: try to not block actor mailbox (#534)
* chore: add test

* chore: spawn task to handle message

* chore: update error message
2024-05-08 16:54:05 +08:00
Nathan.fooo 7b4b9d0c10
chore: folder data check (#496)
* chore: folder data check

* chore: stop observe remote change when specific type of collaboration object override with incorrect data

* chore: commit sqlx file
2024-04-26 13:20:06 +08:00
Nathan.fooo a0593b5502
chore: refactor return response with object id (#494)
* chore: refactor return response with object id

* chore: fix ci

* chore: fix ci
2024-04-24 12:07:54 +08:00
Nathan.fooo 9e1c06a5af
chore: update log (#480) 2024-04-20 10:53:35 +08:00
Nathan.fooo 970fbaed57
feat: using transaction to write multiple records (#477)
* chore: impl batch write

* chore: update test

* chore: using save point to optimize write

* chore: update docs

* chore: fix test

* chore: increase write speed

* chore: use redis sorted set

* chore: fallback to write to disk directly when fail to queue

* chore: fix test

* chore: fix test

* chore: update log

* chore: add metrics
2024-04-19 15:22:57 +08:00
Nathan.fooo 4168d72390
chore: using redis conn for each action (#476)
* chore: batch insert

* chore: opti redis conn

* chore: fix test
2024-04-17 11:41:50 +08:00
nathan 585bd83f1c chore: update log 2024-04-16 21:10:16 +08:00
Nathan.fooo 8ab7815740
chore: reduce pool lock (#475)
* chore: reduce pool lock

* chore: clippy
2024-04-16 20:26:26 +08:00
Nathan.fooo 3901356e8a
chore: bump collab version (#471) 2024-04-15 12:35:14 +08:00
Nathan.fooo baeeb2c5ce
chore: do not wait insert to redis finish when calling get collab (#468) 2024-04-13 10:26:05 +08:00
Nathan.fooo b1c3d779ba
chore: reduce save collab db operations (#455)
* chore: reduce save collab db operations

* chore: clippy

* chore: add test

* chore: add test

* chore: add test
2024-04-08 14:50:51 +08:00
Nathan.fooo d77fb77a3a
feat: validate collab data before writing to disk (#425)
* chore: validate collab

* chore: update test

* chore: partition key

* chore: save collab

* chore: save collab
2024-03-29 14:55:51 +08:00
Nathan.fooo d30cf93a1f
feat: sync protocol (#421)
* chore: send full update when it's first time to sync

* chore: update last sync at
2024-03-27 21:39:47 +08:00
Nathan.fooo 3e36dae50d
chore: remove collab ac cache (#420)
* chore: remove collab ac cache

* chore: update member write workspace role

* chore: fix test

* chore: clippy
2024-03-26 21:36:24 +08:00
Nathan.fooo c015ee7c7e
fix: peer sync (#408) 2024-03-22 21:32:41 +08:00
Nathan.fooo a31c246b67
feat: Access control group (#395)
* chore: access control for group

* chore: access control for workspace

* chore: add test

* chore: enforce group

* chore: update docs
2024-03-19 12:57:08 +08:00
Nathan.fooo 40fc18a499
feat: only enforce when permission change (#382)
* feat: only enforce when permission change

* chore: fix client api ci

* chore: fix test

* chore: fix test
2024-03-13 17:14:43 +08:00
Zack Fu Zi Xiang 1af1b877ef
Merge branch 'main' into workspace-invite 2024-03-04 12:40:48 +08:00