Commit graph

389 commits

Author SHA1 Message Date
Nathan.fooo
487bc25767
fix: subscriber drop (#158)
* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test

* chore: test
2023-11-10 13:41:12 +08:00
Nathan.fooo
d37fbbf486
ci: vendor protoc (#152)
* ci: vendor protoc

* ci: remove protoc compiler install
2023-11-08 21:12:00 +08:00
Nathan.fooo
f1dad07caa
feat: http init sync (#151)
* fix: bugs

* chore: support message type

* refactor: ws message

* feat: post realtime message

* feat: use proto to reduce message size

* ci: update

* ci: install protoc

* ci: update docker

* chore: update ci

* ci: update docker

* ci: fix

* ci: fix

* ci: fix
2023-11-08 15:41:39 +08:00
Nathan.fooo
41e01b91fc
feat: update collab rev and fix some bugs (#148)
* chore: remove todo

* chore: update collab rev

* chore: fmt

* chore: fmt

* chore: cache collab user

* fix: internal error

* ci: fix test

* chore: update collab rev

* ci: fix
2023-11-05 22:43:20 +08:00
Nathan.fooo
5559e8cbd7
chore: update logs (#147)
* chore: update logs

* chore: update logs

* chore: update logs

* chore: update logs
2023-11-05 13:25:47 +08:00
Nathan.fooo
d088fd2ec8
feat: ws frame size (#146)
* chore: update ws frame size

* chore: update

* chore: update frame size to 64 kb

* chore: fix merge

* chore: update

* chore: update collab rev

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update ws state

* chore: update pg max connect

* chore: fix crash
2023-11-04 21:42:06 +08:00
Nathan.fooo
937e3bd9b2
fix: fix some bugs (#145)
* chore: update

* chore: pub error code

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update max frame size

* chore: update max frame size

* chore: ws buffer size

* chore: update
2023-11-03 14:15:08 +08:00
Nathan.fooo
9c911a3a94
refactor: Error (#143)
* chore: remove api

* chore: update log

* refactor: error

* chore: fmt

* ci: fix test

* ci: fix

* chore: remove unstable
2023-11-02 17:17:34 +08:00
Zack
1cc1158d36
feat: Metrics (#141)
* feat: added basic monitoring stack

* docs(grafana): import steps and recommended imports

* feat(metric): api metrics

* feat(prometheus): add appflowy cloud metric scraping job

* fix: put back tracing logger

* feat: middleware for path counter

* feat: added gotrue to prometheus metrics

* feat: added nginx to prometheus metrics

* feat: added latency and result to metrics

* feat(nginx): set request id to header

* feat: added request id in nginx

* feat: simplify metric collection

* feat: added simple grafana dashboard for appflowy cloud

* feat(logging): added logging stack

* docs: improve monitoring docs

* docs: added known common issues

* feat: give persistence

* feat: add exemplars

* fix: docker compose volumes

* feat(grafana): add trace id to prometheus datasource

* feat(grafana): improve dashboard to include exemplars
2023-11-02 15:34:00 +08:00
Nathan.fooo
d0d2e916a7
refactor: hiding sqlx row entitis from client api (#132) 2023-10-22 22:10:03 +08:00
Nathan.fooo
1aba1f0cf4
feat: workspace usage test (#129)
* feat: workspace usage test

* test: add tests
2023-10-22 17:52:10 +08:00
Zack
a30745f1c4
feat: Admin frontend/refactor (#130)
* feat: refactor frontend components

* chore: remove unused files

* chore(build): add static asset
2023-10-22 12:02:16 +08:00
Nathan.fooo
9dc7bbeee0
feat: Collab access control (#120)
* chore: check collab message with access permission

* chore: imple collab permission service

* refactor: migrations

* chore: collab member ops

* chore: collab permission

* chore: update can edit workspace collab

* chore: fix test

* feat: fetch collab members

* chore: fix test

* chore: fix client api

* chore: check permission for collab storage proxy
2023-10-17 14:00:04 +08:00
Fu Zi Xiang
591b66b73e
feat: auto refresh session 2023-10-13 12:08:53 +08:00
Nathan.fooo
3611c2076e
feat: update ws connect setting (#111)
* chore: update ws connect setting

* chore: remove token when token is invalid

* chore: close the ws connect when overflow happened

* fix: reset timing

* fix: reset timing

* chore: sleep if timeout not reach

* chore: sleep if timeout not reach
2023-10-12 16:51:44 +08:00
Zack
8023efae97
feat: add admin frontend project (#102)
* feat: add admin frontend project

* feat: session token WIP

* feat: session token WIP - 2

* feat: session token and dev ease

* feat: added logout

* extractor for access token

* feat: added funtionality to show all users

* feat: show user list on frontend

* feat: user details

* fix: remove unneeded print statements

* chore: enable back to docker-compose.yml

* fix: integration tests

* feat: added redis session

* feat: change to session management using redis

* feat: add email to display at home page

* feat: added logging, logout

* feat: use redirect temporary

* feat: added add user by email

* feat: added add user set password web ui

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-10-11 22:17:41 +08:00
Nathan.fooo
ef726092be
refactor: file storage (#110)
* refactor: return file id after save to disk

* test: add tests

* chore: mine type

* test: disbale two client sync test

* chore: get file with url

* refactor: client api
2023-10-11 21:36:57 +08:00
Nathan.fooo
00a086bc40
feat: collab message definition (#109)
* feat: collab message definition

* chore: update collab rev

* chore: maximum payload size
2023-10-10 17:45:44 +08:00
Nathan.fooo
ad5b5b631d
feat: Set token from external (#107)
* chore: set token

* chore: set token

* chore: update

* chore: rm log
2023-10-09 23:07:34 +08:00
Nathan.fooo
089b3046ab
chore: implement batch get (#106)
* chore: implement batch get

* chore: add request id and update the local_server.sh

* chore: update collab commit id
2023-10-08 23:53:16 +08:00
Nathan.fooo
a02da07627
Test deploy docker log (#105)
* chore: try to fix logs in docker

* ci: test deploy

* ci: log level
2023-10-08 21:42:25 +08:00
Nathan.fooo
d3186cc07a
feat: websocket config (#99)
* chore: enable tls feature

* chore: update ws client

* chore: update ws client

* chore: expost database entities

* chore: update ws nginx config

* chore: rename error file

* chore: fix clippy
2023-10-05 17:43:50 +08:00
Nathan.fooo
4a279bc108
chore: config nginx (#93)
* chore: config nginx

* chore: update nginx
2023-10-04 22:11:46 +08:00
Zack
583f82b7fb
refactor: collab http (#89)
* refactor: collab http

* fix: sqlx uuid in types client_api
2023-10-04 16:59:03 +08:00
Nathan.fooo
cf84557ebe
feat: oauth provider (#86)
* chore: remove opener

* chore: rename method

* chore: add docs

* chore: modify env
2023-10-03 22:06:07 +08:00
Nathan.fooo
b0c213b5c0
fix: message queue (#85)
* fix: message queue

* chore: retry sink collab message

* chore: update
2023-10-02 15:28:35 +08:00
Nathan.fooo
3133e5ec32
chore: try fix test (#84) 2023-09-30 12:36:42 +08:00
Nathan.fooo
19ee96db4a
chore: rename crate (#82) 2023-09-28 22:20:48 +08:00
Zack
a6eb8607c9
feat: async read for file upload (#80)
* feat: async read for file upload

* feat: async read for file download

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-28 14:53:41 +08:00
Nathan.fooo
b8bd53ff5c
feat: create collab sync crate (#79)
* feat: create collab sync crate

* test: add tst

* test: add test

* test: update tests

* chore: clippy

* chore: clippy

* chore: clippy

* chore: add retry when subscribe group

* chore: disable realtime test
2023-09-28 09:28:46 +08:00
Zack
ff6a8e1eaf
feat: File api (#70)
* feat: s3 minio wip

* feat: s3 minio bucket create idempotent

* feat: put storage setting into configurations

* chore: clippy lint

* feat: add setting to base config

* feat: add configuration for prod

* fix: allow use different minio host

* feat: add server file storage

* fix: add missing file

* feat: add code template

* feat: add http api

* feat: added file upload to client api

* feat: database metadata impl

* fix: added missing files

* feat: added test cases and improve impl

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-27 10:21:37 +08:00
Nathan.fooo
b729e3529d
chore: bump collab version (#78)
* chore: bump collab version

* chore: bump collab version

* chore: update

* chore: update

* chore: update

* chore: update tests

* chore: clippy

* chore: clippy

* chore: clippy
2023-09-26 22:52:41 +08:00
dependabot[bot]
93792276cf
chore: bump aes-gcm from 0.10.2 to 0.10.3 (#77)
Bumps [aes-gcm](https://github.com/RustCrypto/AEADs) from 0.10.2 to 0.10.3.
- [Commits](https://github.com/RustCrypto/AEADs/compare/aes-gcm-v0.10.2...aes-gcm-v0.10.3)

---
updated-dependencies:
- dependency-name: aes-gcm
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-26 09:27:19 +08:00
Nathan.fooo
b08a4a9016
chore: expost sign in url (#76)
* chore: expost sign in url fc

* refactor: realtime test

* chore: add logs

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update
2023-09-26 09:26:35 +08:00
Nathan.fooo
0883ae94b8
test: sign in url test (#75)
* test: sign in url test

* fix: Tungstenite allows remote attackers to cause a denial of service

* chore: enable feature

* chore: update
2023-09-24 13:03:24 +08:00
Zack
e3ff765137
feat: Gotrue admin api (#74)
* feat: set up admin account and auto confirm during appflowy start

* feat: client auth against gotrue whenever possible

* feat: admin add user

* feat: implement admin add user

* feat: generate registered user

* fix: enable cloud feature for client_api

* fix: test same user fix

* feat: added admin magic link generation
2023-09-23 20:06:37 +08:00
Zack
f1a16058ce
feat: Gotrue admin api (#73)
* feat: set up admin account and auto confirm during appflowy start

* feat: client auth against gotrue whenever possible

* feat: admin add user

* feat: implement admin add user

* feat: generate registered user

* fix: enable cloud feature for client_api

* fix: test same user fix
2023-09-23 17:07:02 +08:00
Nathan.fooo
cbae9493b7
chore: update collab commit id (#71) 2023-09-22 23:00:36 +08:00
Zack
67706f9e8e
feat: File api (#68)
* feat: s3 minio wip

* feat: s3 minio bucket create idempotent

* feat: put storage setting into configurations

* chore: clippy lint

* feat: add setting to base config

* feat: add configuration for prod

* fix: allow use different minio host
2023-09-22 15:10:41 +08:00
Nathan.fooo
ca0813e265
refactor: ws ping (#66)
* chore: ws client

* chore: update ws ping

* chore: fix test

* chore: public funcs

* chore: fix test

* chore: check clent-api compile
2023-09-20 20:53:39 +08:00
Zack
0676db7ed6
feat: Workspace members (#63)
* fix: create user if they sign up with oauth

* feat: add workspaces_members add and remove operations

* feat: add insert workspace members

* feat: attach db ops to api ops

* refactor: separate user and workspace scope

* chore: add sqx query metadata

* chore: add 2nd registered user for testing

* ci: use valid email

* ci: fix registered password invalid

* fix: use email instead of uid

* fix: use email instead of uid sqlx query metadata

* feat: add test for workspace member

* test: added workspace add and delete with checking

* ci: fix email
2023-09-19 20:59:16 +08:00
Nathan.fooo
7ae645a7c1
test: add ws reconnect test (#58)
* test: add test

* test: add reconnect
2023-09-18 11:42:32 +08:00
Nathan.fooo
8f8f6af0f9
feat: Integrate to client (#52)
* refactor: ws client

* chore: update

* chore: update

* chore: add ext_url

* chore: rename structs

* chore: add token notify
2023-09-17 12:52:44 +08:00
Nathan.fooo
e9fc2af43c
feat: implement websocket client (#47)
* feat: implement websocket client

* chore: clippy

* chore: update

* chore: update env
2023-09-15 12:11:04 +08:00
Nathan.fooo
939ea29c3b
feat: Realtime multiple conn test(#45)
* chore: multiple connection with same user

* chore: connect with device id

* fix: multiple connection

* test: add more test

* chore: fmt
2023-09-15 09:59:37 +08:00
Nathan.fooo
e03a6ce587
test: fix collab edit test (#42)
* test: fix

* chore: cargo sqlx check workspce

* chore: remove rocksdb deps
2023-09-14 14:05:15 +08:00
Nathan.fooo
b1adcc7919
test: websocket connect and then edit collab test (#40)
* refactor: realtime dir

* test: add test

* test: fix
2023-09-14 09:34:24 +08:00
Zack
8d11d7b6cf
feat: support external oauth (#35)
* feat: support external oauth

* chore: cargo fmt

* doc: add docs for google oauth2

* fix: use btree map and get for oauth

* feat: client to open url for oauth login

* feat: add test case for oauth not available

* feat: add placeholder for sign_in_url

* fix: use

* feat: client sign up with url

* feat: add sign_in_with_url simple test

* fix: use url fragments and string split

* fix: test case and gotrue error handling

* fix: return error and remove unwrap

* chore: remove unused file not in module tree

* fix: test cases

* chore: add cfg feature cloud to isolate dependencies
2023-09-13 21:08:13 +08:00
Nathan.fooo
c42158b7cb
test: add ws connect test (#39)
* test: add ws connect test

* chore: format log
2023-09-13 17:04:42 +08:00
Nathan.fooo
3aa4d20ad3
chore: reduce deps of client_api crate (#37) 2023-09-13 13:12:07 +08:00