Commit Graph

298 Commits

Author SHA1 Message Date
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 54dfeb5527
chore: stop retry when current plugin is going to destory (#495) 2024-04-25 20:27:11 +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 842e3d14e5
chore: remove collab state check (#487)
* chore: remove collab ping

* chore: fix tst

* chore: cacel previous actiont
2024-04-22 11:56:22 +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.fooo f3279e9b4e
feat: implement grpc for history server (#470)
* ci: docker compose for ci

* chore: add test

* chore: imple grpc

* chore: fix test

* chore: fix ci
2024-04-16 14:10:56 +08:00
Nathan.fooo 3901356e8a
chore: bump collab version (#471) 2024-04-15 12:35:14 +08:00
Nathan.fooo 28e0e74fd1
feat: Implement history(1) (#466)
* chore: update collab commit

* chore: collab history test

* chore: collab history test

* chore: impl redis stream

* chore: impl redis stream test

* chore: impl migration

* chore: implement history sql

* chore: add test

* chore: add test

* chore: fix test

* chore: update log and test

* chore: add xtask

* chore: clippy

* chore: impl api

* chore: add missing sqlx files

* chore: fix test

* chore: fix test
2024-04-15 09:18:19 +08:00
Nathan.fooo 4d019728ba
refactor: insert encode collab object in redis (#469)
* chore: insert collab redis cache with timestamp

* chore: add test

* chore: update expire time

* chore: update

* chore: fix test
2024-04-13 22:31:36 +08:00
Lucas.Xu 73e4d28500 test: add magic link test 2024-04-10 10:34:44 +08:00
Khor Shu Heng c7ebdbeda7
fix: handle receiver close for connection test (#462) 2024-04-10 09:30:08 +08:00
Nathan.fooo e0122d106e
chore: add sql test (#461)
* chore: add sql test

* chore: clippy
2024-04-09 23:16:13 +08:00
Nathan.fooo e9097107e5
chore: Disable multi thread (#458)
* chore: disable multiple thread

* chore: clippy
2024-04-09 10:07:40 +08:00
Zack Fu Zi Xiang 768d683878
fix: add user to auth user 2024-04-09 03:10:12 +08:00
Zack Fu Zi Xiang 583edfdb72
chore: cargo clippy 2024-04-08 19:11:41 +08:00
Zack Fu Zi Xiang 7fda6119e1
chore: cargo clippy 2024-04-08 18:42:11 +08:00
nathan c4c8911af2 chore: add test 2024-04-08 18:23:25 +08:00
nathan 131c9ed65f chore: use join 2024-04-08 17:23:26 +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 b1a6338527
refactor: actix-ws (#453)
* chore: deduplicate ws message

* chore: remove retry when sending client ws message

* chore: prepare client/server actor test
2024-04-07 12:43:29 +08:00
nathan 4789591eb3 chore: remove unused test 2024-04-05 14:04:26 +08:00
Nathan.fooo 01f1af98f5
chore: wrapper for collab (#448)
* chore: wrapper for collab

* chore: add tests

* chore: fix audit

* chore: init sync

* chore: disable wasm user test

* chore: disable encode state when start

* chore: fix test
2024-04-05 11:30:00 +08:00
Zack Fu Zi Xiang 8e27e94804
chore: replace test using invite and accept workspace 2024-04-04 00:03:36 +08:00
Nathan.fooo feb993e5b9
chore: add tests (#442) 2024-04-03 22:16:03 +08:00
Nathan.fooo c77329ea11
chore: encode collab with validate check (#439)
* chore: bump collab

* chore: fix test

* chore: fix test
2024-04-03 09:07:35 +08:00
Nathan.fooo 12d72fa233
chore: client api init sync (#438)
* chore: implement init sync for sync plugin

* chore: bump collab

* chore: bump collab

* chore: fix test
2024-04-02 23:08:15 +08:00
Nathan.fooo fbadca759a
chore: retry with exponentail back off (#437) 2024-04-02 09:24:23 +08:00
Nathan.fooo a18b3d7886
feat: using pending to determine init sync or not (#435)
* chore: optimize sync

* chore: optimize sync

* chore: add test

* chore: update collab commit id

* chore: update

* chore: fix ci
2024-04-01 21:59:41 +08:00
Nathan.fooo 6c96d05e2f
feat: introduce custom function in casbin model that supports compari… (#433)
* feat: introduce custom function in casbin model that supports comparing role or level

* chore: update

* chore: log

* chore: log

* chore: remove cache
2024-03-31 19:54:41 +08:00
Nathan.fooo a6b1c93a84
chore: enable member to access the workspace member list (#431) 2024-03-30 18:29:00 +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 4fc18d8615
feat: ping collab (#424)
* chore: ping

* chore: update test

* chore: fix test

* chore: ping

* ci: build cache

* chore: sync state

* chore: sync state

* tests: disable read only test
2024-03-28 21:15:14 +08:00
Nathan.fooo cd9fc34465
refactor: crate folder (#423)
* refactor: crate folder

* chore: update docs

* chore: clippy
2024-03-28 11:06:14 +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 6aa05b97d3
chore: metrics for realtime edit (#415)
* refactor: separate group code from rt server

* chore: separate group state

* chore: fix test

* chore: drop group

* chore: update metrics

* chore: metrics for realtime edit

* chore: update project config

* ci: fix test
2024-03-26 13:35:13 +08:00
Nathan.fooo d4e45efd6a
chore: bump collab commit (#417)
* chore: bump collab rev

* chore: bump collab commit

* chore: custome decode ack code
2024-03-25 16:14:49 +08:00
Nathan.fooo d0c0d7832c
chore: add test for connect state (#414)
* chore: add test

* chore: add test

* chore: disable redis test
2024-03-24 10:35:26 +08:00
Nathan.fooo acc13414cf
feat: sync deduplicate (#412)
* chore: update logs

* chore: update logs

* chore: deduplicate messages

* chore: optimize sync interval

* chore: fmt

* ci: test

* chore: clippy

* chore: clippy
2024-03-24 07:30:05 +08:00
Nathan.fooo c015ee7c7e
fix: peer sync (#408) 2024-03-22 21:32:41 +08:00
Nathan.fooo c85383b21d
chore: project folder structture (#392)
* chore: docker build

* chore: update

* chore: update

* chore: test stream pubsub

* chore: fix wanrings

* chore: realtime crate

* chore: realtime crate

* chore: realtime crate

* chore: realtime crate

* chore: reanme crates

* chore: reanme crates

* chore: project structure

* chore: disable docker for collab hisotry
2024-03-22 11:24:28 +08:00
Zack 619f5b3370
Merge pull request #400 from AppFlowy-IO/leave-workspace
Leave workspace
2024-03-20 14:33:47 +08:00
Zack Fu Zi Xiang 06192db599
chore: remove unused imports 2024-03-20 13:27:37 +08:00
Zack Fu Zi Xiang a028f73dd3
test: add test for owner removing itself from workspace 2024-03-20 13:14:30 +08:00
Zack Fu Zi Xiang 117473d104
feat: leave workspace 2024-03-20 13:07:43 +08:00
Zack de92490e26
feat: collab-stream redis poc (#83)
* feat: collab-stream redis poc

* fix: remove unneeded print statements

* feat: implementing listening

* chore: fix conflict

* chore: add test

* chore: add test

---------

Co-authored-by: nathan <nathan@appflowy.io>
2024-03-20 10:00:25 +08:00
Zack Fu Zi Xiang 5f220ab0b0
feat: user leave workspace 2024-03-19 21:58:56 +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 c5112cc761
chore: use collab without gc (#391) 2024-03-17 17:03:05 +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
Nathan.fooo 0bee7cd0df
chore: fast sync (#377)
* chore: fast sync

* chore: remove sync state

* chore: update logs

* refactor: small funcs

* chore: update logs

* chore: update logs

* chore: merge message

* chore: merge message
2024-03-10 08:11:17 +08:00
Nathan.fooo 3b0d7567da
feat: viewing collab users (#375)
* feat: return collab viewing users

* chore: fmt

* chore: add test

* chore: update logs

* chore: fix test
2024-03-09 12:15:17 +08:00
Zack Fu Zi Xiang 9ed4eec4fe
fix: test case sign in invalid url 2024-03-08 17:58:07 +08:00
Nathan.fooo ff80014c2f
feat: Multi connect test (#372)
* chore: test multiple connect attempt

* chore: eable hash

* chore: pair message

* chore: fmt
2024-03-07 09:21:08 +08:00
Zack Fu Zi Xiang c293929b11
feat: added tests for inviting member which has not signed up yet 2024-03-06 14:01:57 +08:00
Zack Fu Zi Xiang 9b28edb5bc
feat: use email for af workspace invitation table 2024-03-06 11:29:07 +08:00
Zack Fu Zi Xiang 36c0181032
Merge branch 'main' into workspace-invite-2 2024-03-05 09:34:35 +08:00
Nathan.fooo 0e4442159e
chore: support client version when connect using webscoket (#368)
* chore: support client version when connect using webscoket

* chore: update tokio version

* chore: fix audit

* chore: fix wasm test

* chore: update

* chore: update

* chore: update

* chore: update
2024-03-05 07:22:56 +08:00
Zack Fu Zi Xiang e9ee0d12fa
Merge branch 'main' into workspace-invite 2024-03-04 15:47:57 +08:00
Nathan.fooo 15c03e4f85
refactor: realtime dir (#363)
* refactor: realtime dir

* chore: fmt

* chore: fix test

* chore: fix test

* chore: fix test
2024-03-04 12:53:44 +08:00
Zack Fu Zi Xiang 439a59ed2d
chore: save current progress 2024-03-03 19:06:24 +08:00
Zack Fu Zi Xiang bc3fccfcea
chore: merge with main 2024-03-03 14:37:50 +08:00
Zack Fu Zi Xiang f1e81d59c4
test: crud flow for workspace invites 2024-03-03 14:26:03 +08:00
Nathan.fooo 0e57de98d8
refactor: Access control (#361)
* refactor: access level

* refactor: access control

* refactor: enforce action

* refactor: collab cache

* chore: fix test

* chore: fix test

* chore: fix test

* chore: fix test

* chore: commit migration file

* chore: commit migration file
2024-03-03 12:55:12 +08:00
Zack Fu Zi Xiang e8328fd0a4
feat: workspace invitations 2024-03-03 02:48:01 +08:00
Nathan.fooo 2cf857bd00
feat: optimize websocket message (#351)
* chore: send multiple message

* refactor: message

* refactor: message

* fix: test

* fix: test

* fix: test

* chore: docs

* fix: test

* chore: support compress

* chore: interval retry

* chore: fix test

* chore: merge main

* chore: clippy

* chore: clippy

* ci: fix test

* chore: clippy

* chore: clippy
2024-03-02 02:53:14 +08:00
Zack 79a0dd43c6
feat: Create workspace (#357)
* feat: initialize collab for user after workspace creation

* fix: add permission before adding new collab for new workspace

* chore: simplify logic
2024-02-29 13:02:27 +08:00
Zack Fu Zi Xiang f8b9f623cf
feat: delete all files when workspace is deleted 2024-02-28 18:24:17 +08:00
Zack Fu Zi Xiang 7abba9d7ef
feat: add workspace icon field 2024-02-27 11:26:31 +08:00
Nathan.fooo 375318774a
chore: optimize websocket connect (#352)
* chore: optimize websocket connect

* chore: fix clippy

* chore: fix clippy

* chore: fix test

* chore: fix test
2024-02-26 15:24:54 +08:00
Nathan.fooo deffd074b9
chore: check collab before insert (#349)
* chore: check collab before insert

* chore: fix audit

* chore: speed test

* chore: add expirate duration for cache encode collab

* chore: fix test
2024-02-25 12:38:07 +08:00
Nathan.fooo 10fc8dd2fe
chore: use Redis cache for enforcer (#348)
* chore: use redis cache

* chore: use redis to cache enforce result

* fix: test

* fix: test

* fix: test

* fix: test
2024-02-24 15:45:53 +08:00
Nathan.fooo b71e443d3f
refactor: write snapshot (#345)
* chore: increase max connection size of pg (#344)

* chore: refactor snapshot

* chore: fix test

* chore: fix test

* chore: fix test

* chore: metric

* chore: clippy

* chore: fix test

* chore: fix test
2024-02-23 14:36:06 +08:00
Nathan.fooo 1590e948c6
feat: Optimize sync (#341)
* chore: optimize sync

* chore: optimize sync

* chore: optimize sync

* chore: update collab rev
2024-02-22 14:18:41 +08:00
Zack Fu Zi Xiang cb715a5e58
chore: merge with main 2024-02-22 13:00:19 +08:00
Zack Fu Zi Xiang 86669dd655
chore: remove unneeded import 2024-02-22 12:57:44 +08:00
Zack Fu Zi Xiang 1c7966a486
chore: remove unneeded test 2024-02-22 12:55:49 +08:00
Zack Fu Zi Xiang c50f872bb7
Revert "Merge pull request #328 from AppFlowy-IO/workspace-add-email"
This reverts commit 5e7794646a, reversing
changes made to d5869742c2.
2024-02-22 10:48:10 +08:00
Zack Fu Zi Xiang ca63d309f7
tests: add test for rename workspace 2024-02-22 10:42:55 +08:00
Zack Fu Zi Xiang d1a17bbccd
Merge branch 'main' into workspace-add-email 2024-02-21 14:43:03 +08:00
Nathan.fooo 399f7ba2b5
chore: abort sync when the update can not apply (#335)
* chore: abort sync when the update can not apply

* chore: fix ci
2024-02-21 09:22:26 +08:00
Zack Fu Zi Xiang 558d188cc4
chore: remove invalid test case 2024-02-20 17:18:38 +08:00
Zack Fu Zi Xiang 7c49359278
chore: merge with main 2024-02-20 15:54:14 +08:00
Nathan.fooo 119d6abe53
chore: enable collab ac (#333) 2024-02-20 11:59:44 +08:00
Nathan.fooo 2992f44e44
docs: casbin (#332) 2024-02-20 10:53:33 +08:00
Zack Fu Zi Xiang 4413f61f26
Merge branch 'main' into workspace-add-email 2024-02-20 10:16:58 +08:00
Nathan.fooo 8e36792dd9
fix: metrics (#331) 2024-02-20 08:34:57 +08:00
Nathan.fooo 1841dc21e2
chore: flush collab base on edit count (#330) 2024-02-20 06:32:19 +08:00
Nathan.fooo 5cd16d7544
chore: load user id and uuid when start (#329)
* chore: load user id and uuid when start

* chore: fix test

* chore: fix test
2024-02-20 05:43:33 +08:00
Zack Fu Zi Xiang deedaae34d
feat: add test cases for inviting user 2024-02-20 01:45:03 +08:00
Zack Fu Zi Xiang f9d9977076
chore: merge with main 2024-02-20 00:40:42 +08:00
Nathan.fooo d4f7aac93a
test: add test (#327)
* test: add test

* test: add test

* test: add test

* test: add test

* test: add test
2024-02-19 17:12:07 +08:00
Zack Fu Zi Xiang 32fe1cc24d
feat: send email and create user if adding member but member not exist 2024-02-19 15:40:36 +08:00
Nathan.fooo 815be08d3b
chore: metrics for access control (#326)
* chore: metrics for access control

* chore: fix test
2024-02-19 12:26:35 +08:00
Nathan.fooo f713ebedaa
chore: cache policy when load (#325) 2024-02-19 10:01:40 +08:00
Nathan.fooo c9a3cd6b1b
chore: rename dir (#324)
* chore: rename dir

* chore: clippy
2024-02-19 08:28:32 +08:00
Nathan.fooo 7f12628547
chore: use dashmap (#319) 2024-02-18 11:55:47 +08:00
Nathan.fooo 2f0f093331
refactor: access control (#318)
* refactor: dir

* chore: update

* fix: test

* chore: fix test

* chore: clippy

* chore: update config

* chore: update
2024-02-17 01:15:06 +08:00
Nathan.fooo a1494f0d09
feat: Realtime metrics (#309)
* chore: add metric

* chore: add metric

* chore: clippy

* chore: clippy

* ci: set rust version

* ci: set rust version

* ci: set rust version
2024-02-09 12:02:54 +08:00
Nathan.fooo b1c14c8ffb
test: add (#300)
* test: add

* test: add

* chore: clippy

* chore: clippy
2024-02-09 07:10:26 +08:00