Fu Zi Xiang
04e00dea95
feat: add more initialization logs
2023-12-20 20:38:11 -08:00
Zack
a7b259ad20
feat: use only env var for appflowy cloud ( #224 )
...
* feat: use only env var for appflowy cloud
* fix: jwt local testing
* fix: security audit
* feat: update docker deploy configs
* fix: test utils dotenvy
* fix: test try sqlx offline
* fix: add gotrue configs for appflowy
* fix: redis uri in docker
2023-12-19 08:45:42 +08:00
JesseBot
36c792915c
feat: add additional info logging to init_state function in application.rs
2023-12-12 12:16:38 +01:00
Jiraffe7
36ef0f13b0
feat: casbin access control ( #178 )
...
* feat: casbin for access control
* fix: method to generate database url instead of ToString
* fix: hold write lock when modifying policies
* chore: fix compile
* fix: remove db constraint for lib integration tests
---------
Co-authored-by: nathan <nathan@appflowy.io>
2023-12-11 11:08:15 +08:00
Nathan.fooo
c0f5c2ce7e
feat: fix flaky test ( #202 )
...
* test: fix
* fix: flaky test
2023-12-09 12:48:46 +08:00
Nathan.fooo
ee31a680b5
chore: unlimited json payload size ( #197 )
...
* chore: return ok when token is empty
* chore: remove json payload size limit
* chore: clippy
2023-12-06 14:21:11 +08:00
Nathan.fooo
0e2ec381df
chore: implement symmetric encrypt ( #192 )
2023-12-04 11:50:56 +08:00
Zack
3890f5d306
feat: User deletion ( #177 )
...
* feat: database trigger for hard delete of user
* feat: clean delete user data
* feat: hard delete when admin deletes
2023-11-27 01:07:45 +08:00
Nathan.fooo
54ef875f5f
feat: notify user profile change ( #163 )
...
* feat: send user profile changes via ws
* test: add tests
2023-11-13 22:58:18 +08:00
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
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
Fu Zi Xiang
91bc8568ae
fix: unwrap
2023-11-07 11:00:37 +08:00
Fu Zi Xiang
d06f8d89b7
chore: remove unneeded print
2023-11-07 10:01:00 +08:00
Fu Zi Xiang
32390676f1
fix: user not allowed
2023-11-07 01:17:08 +08:00
Fu Zi Xiang
17044ad4f0
feat: indempotency restart for email autoconfirm and non autoconfirm
2023-11-07 00:32:28 +08:00
Fu Zi Xiang
c029759573
chore: merge with main
2023-11-06 23:54:36 +08:00
Fu Zi Xiang
a6f7198443
chore: remove unneeded binding
2023-11-06 13:54:45 +08:00
Fu Zi Xiang
b785b1a482
fix: restartable server when autoconfirm is true
2023-11-06 13:50:38 +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
Zack
37a759ead6
feat: Request Id ( #144 )
...
* 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
* feat: request id middleware
* docs: move doc to more relevant place
* chore: clean up logs
* feat: try json fmt
* feat: remove pretty
* feat: logging use json in prod but pretty in local
2023-11-03 16:57:05 +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
cb9cdb9280
feat: collab permission test ( #126 )
...
* chore: check permission for collab storage proxy
* feat: add permission tests
* chore: skip log
2023-10-19 17:12:21 +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
Nathan.fooo
88be0c2433
refactor: access control ( #118 )
...
* refactor: access control
* chore: fix test
2023-10-15 10:56:56 +08:00
Nathan.fooo
5c58f95f9f
feat: workspace access control ( #115 )
...
* feat: workspace access control
* feat: extact workspace id from path
* feat: create member with permission set
* chore: update sqlx files
* chore: fix cargo toml warn
* chore: clippy
2023-10-13 20:02:29 +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
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
c0aea377d0
test: test with dev client ( #91 )
...
* test: test with dev client
* chore: add nginx conf
* chore: fix clippy
* chore: disable docker in lint
2023-10-04 21:43:21 +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
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
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
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
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
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
Zack
3c598f178e
ci: test env docker-compose deployment ( #48 )
...
* ci: test env docker-compose deployment
* ci: test deployment
* fix: replace delimiter with pipe to avoid conflict
* fix: API_EXTERNAL_URL_TEST from secrets
* chore: remove unneeded deploy when pull request
* fix: cloud public host name/address
* chore: trigger: change to push
* chore: add ext_url for exposed gotrue auth server
2023-09-15 21:13:43 +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
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
Nathan.fooo
b32fcff4d4
test: Collab handler test ( #36 )
...
* chore: implement collab requests
* test: add more tests
* chore: update scope path
2023-09-13 12:52:22 +08:00
Nathan.fooo
f0f58f98f3
feat: create collab handlers ( #34 )
...
* feat: logged user after sign up/sign in
* test: fix test
* chore: update sqlx files
* chore: add router
* chore: parser user uuid from token
2023-09-12 21:52:25 +08:00
Nathan.fooo
9ac53dca8e
chore: implement collab storage using postrges ( #31 )
...
* chore: implement collab storage using postrges
* chore: update collab rev
* chore: update .sqlx files
2023-09-12 15:36:33 +08:00
Zack
da03009004
feat: use apply server migration when server starts ( #30 )
...
* feat: use apply server migration when server starts
* fix: add docs and fix local run
* feat: refactor migration
* feat: local build server wait on gotrue
* fix: add back sqlx commands
* fix: add migrations directory
* fix: try SQLX_OFFLINE=true
* test: fix rustlint
* chore: clippy fmt
---------
Co-authored-by: nathan <nathan@appflowy.io>
2023-09-12 15:12:08 +08:00
Zack
853f089ca0
feat: test gotrue when app start, use state for gotrue client, use go… ( #24 )
...
* feat: test gotrue when app start, use state for gotrue client, use gotrue UUID instead of BIGINT for user uid
* feat: backward compatibility with native authetication
* fix: native auth use uuid instead
* fix: sqlx preparation
* fix: sqlx metadata and unused variable
* fix: clippy
* fix: create workspace if not exist after sign in
* chore: update .sqlx with new query
* feat: query workspace
* revert: revert using i64 for user id
* fix: update sqlx queries
* fix: update .sqlx metadata
* feat: only use uuid from sqlx types, select user_profile view
* ci: add version check
* ci: add missing sqlx files
* chore: cargo fmt
2023-09-11 17:16:41 +08:00
Nathan.fooo
3cd3240bfc
chore: move realtime test ( #26 )
...
* chore: fix tests
* chore: add test server
* chore: move tests
2023-09-10 19:35:29 +08:00
Zack
d4577f5e61
Feat: enrich http dto ( #20 )
...
* feat: add scripts for easier dev
* feat: add Json<T> as resp type for http server
* feat: restructure server and client shared entity
* feat: restructure server and client shared entity
* feat: use serde_repr to deserialize enum into json number
* feat: minor adjustment to results and server error
* feat: test: fix unconfirmed email message
* feat: test: add test case for existing user
* feat: test: modified api for sign_out
* feat: test: add test case pass
2023-09-08 20:01:28 +08:00
Nathan.fooo
c1f8d79169
chore: separate crates ( #18 )
2023-09-07 19:40:11 +08:00
Nathan.fooo
f9825d4221
feat: refactor server collab ( #15 )
...
* refactor: collab storage
* chore: fix test
* chore: update sqlx version
* chore: disable realtime test
* chore: sqlx prepare
* chore: remove init.sql
2023-09-06 18:22:40 +08:00
Zack
c8ae099e90
feat: Auth server integration ( #9 )
...
* feat: integrate signup with gotrue auth server
* feat: added email and password sign in via auth server
* feat: added sign in scenarios and client handling
* fix: added missing files
* feat: refine api and store access token in client
* feat: impl token decode and placeholder for signout
* feat: added impl for logout with auth server
* feat: auth server dependency injection, client sign_out impl
* feat: abstract verify token, add placeholder for update endpoint
* feat: make authorization as a param of http handler request
* feat: add update_user to client of auth server
* feat: add client code and test cases for password change
* chore: rename appflowy-server to appflowy-cloud
* ci: upgrade reqwest version to fix audit issue
* ci: fix again
* ci: added gotrue env secrets
---------
Co-authored-by: nathan <nathan@appflowy.io>
2023-09-04 11:23:40 +08:00
Nathan.fooo
8b9e6584d2
feat: ws reconnect ( #5 )
...
* feat: ws reconnect
* chore: update collab rev
2023-05-10 20:54:10 +08:00