Commit Graph

636 Commits

Author SHA1 Message Date
sua yoo
ec1a758e42
Upgrade TailwindCSS to v3 (#93) 2022-01-19 22:00:06 -08:00
sua yoo
cb5cf55c69
Add helper for dispatching notify events (#92) 2022-01-19 21:01:47 -08:00
sua yoo
22942527e9
Refactor crawl config into multiple components (#91) 2022-01-19 18:43:19 -08:00
sua yoo
3645e3b096
Create crawl config UX enhancements (#90)
closes #87
2022-01-19 11:01:17 -08:00
sua yoo
c3edb4bba4
Allow user to configure crawls with JSON (#86) 2022-01-18 19:58:55 -08:00
sua yoo
ff77a92108
Schedule time of day when creating config (#85) 2022-01-18 13:58:28 -08:00
sua yoo
f58bc801fc
remove unused package dependency 2022-01-16 14:49:21 -08:00
sua yoo
b2088f5634
Add initial crawl template form (#80) 2022-01-16 14:43:33 -08:00
Ilya Kreymer
b3ca501a19 helm chart: support cloud-based persistent volumes if values 'volume_storage_class' is specified.
use PersistentVolumeClaim to create a persistent volume for each local service (mongo, minio, redis) when running in a cloud setup
if cloud-specified volume storage class not specified, create default hostPath volume (eg. for minikube)
lint: add default icon for chart
2022-01-15 19:34:31 -08:00
Ilya Kreymer
88f1689e0e crawlconfig: add 'name' property to crawl config
superuser init: don't check invite token for verified superuser (automatic init)
fix formatting
2022-01-15 19:06:48 -08:00
Ilya Kreymer
c561fe3af4
Support Invite Info APIs (#82)
* backend: support exposing info about a particular invite, fixes part of #35
new apis are:
- GET /users/invite/{token}?email={email} - no auth needed, get invite to new user
- GET /users/me/invite/{token} - with auth, to get invite to join an archive for an existing user

* get archive.name as well if invite is adding to an archive

* first camelCase typo
2022-01-14 22:53:02 -08:00
sua yoo
b9622df9e6
Update app layout (#78)
closes #75
2022-01-13 17:52:59 -08:00
sua yoo
5492eca117
Fix login page update side effect (#77)
closes #76
2022-01-12 16:43:34 -08:00
sua yoo
5258149a34
Fix password autocomplete and suggestions (#73)
closes #72
2022-01-08 14:28:54 -08:00
sua yoo
82ee1ed1e4
Remove unused files (#69) 2021-12-26 18:01:10 -08:00
Ilya Kreymer
684f112c85 dockerfile hotfix: remove unused 'scripts' directory 2021-12-07 11:22:30 -08:00
sua yoo
83be07bdcf
remove extra word in readme 2021-12-07 09:42:52 -08:00
sua yoo
2c3debfec6
Show invite info to user (#68) 2021-12-07 09:36:03 -08:00
sua yoo
3324bd960f
Refactor to remove sign up and JWT env variables (#65)
closes #63
closes #66
2021-12-06 19:39:04 -08:00
sua yoo
e787e751d9
update alert import (#64) 2021-12-06 18:49:42 -08:00
sua yoo
ddf1b63313
fix invite token logic 2021-12-05 19:01:21 -08:00
Ilya Kreymer
efaaece842
Optimizing Frontend Dockerfile (#60)
* optimizing frontend dockerfile:
- run install first to cache node_modules
- don't pass node_modules to image
- add only needed files before build

* remove language file generation from build step

Co-authored-by: sua yoo <sua@suayoo.com>
2021-12-05 18:39:45 -08:00
sua yoo
d5c665be8e
Fix archive invite flow (#61)
closes #49
2021-12-05 18:23:24 -08:00
sua yoo
ba69ac02bc
Update superadmin invite URL (#62) 2021-12-05 18:22:59 -08:00
sua yoo
5531c3c33c
hotfix: fix auth persist
Switch lifecycle event to update
2021-12-05 16:52:58 -08:00
sua yoo
9c4bec1411
Add admin page for inviting users (#56)
closes #37
2021-12-05 15:23:28 -08:00
Ilya Kreymer
53beb84c01
Config superuser (#59)
* backend: automatically create super user, fixes #57
- if SUPERUSER_EMAIL is set, superuser is created with `is_superuser` and `is_verified` settings, if user doesn't already exist.
- if SUPERUSER_PASSWORD if set, the password for superuser is set, otherwise a random password is generated
update sample SUPERUSER_EMAIL and SUPERUSER_PASSWORD in config file and chart.
- ensure verification email is not sent if user already verified
2021-12-05 14:12:42 -08:00
Ilya Kreymer
eaf8055063
Support unified docker + k8s deployment (#58)
- adapt nginx config to work both in docker and k8s, using env vars to set urls

backend: additional fixes:
- use env vars with nginx config
- fix settings api route
- when sending e-mail, use the Host header for verification urls when available
- prepare Dockerfile with full build from scratch in image, (disabled 'yarn install' for faster builds for now)
- fix accept invite api for existing user to /archives/accept-invite/{token}
2021-12-05 13:02:26 -08:00
Ilya Kreymer
87c5505c43
Backend Invite System Refactor (#53)
* backend:
- refactor invite system, move to separate InviteOps object, used by archives and user
- supporting three invite use cases:
1) superuser invites any user not registered, not added to any archive
2) archive admin invites any user not registered, add to one of their archives
3) archive admin invites existing registered user, add to one of their archives

- support superadmin invite via /users/invite (fixes #37)
- superadmin invite has no archive set and does not add user to archive

- don't send verification email when accepting from invite, fixes #50
- use different email template / accept url for existing user invite, eg, `/invite/accept/`

- fix default token value in chart
2021-12-04 12:14:28 -08:00
sua yoo
9673794711
Frontend prod build optimizations (#54)
- Leverage webpack chunk splitting to creating more, smaller JS files rather than one large main file (import(file) syntax)
- Enable long-term caching by adding content hash to output file names
- Copy entire /dist folder contents in Dockerfile
- Changed yarn start-dev -> yarn start since there is no prod server
- Reenable locale picker
2021-12-03 18:00:14 -08:00
sua yoo
1d114c682e
hotfix: prevent session from expiring 2021-12-03 17:40:03 -08:00
Ilya Kreymer
11b797d535
Add global settings endpoint (#52)
* backend:
- add /api/settings endpoint for misc system-wide settings
- setting 'registrationEnabled' if open registration should be enabled, set via REGISTRATION_ENABLED=1 env var
- setting 'jwtTokenLifetimeMinutes' returns the jwt token expiry in seconds, configured in minutes via JWT_TOKEN_LIFETIME_MINUTES env var (default: 60)
2021-12-03 10:56:57 -08:00
Ilya Kreymer
05c1129fb8
Frontend + Backend Integrated Deployment (K8s only) (#45)
* support running backend + frontend together on k8s
* split nginx container into separate frontend service, which uses nignx-base image and the static frontend files
* add nginx-based frontend image to docker-compose build (for building only, docker-based combined deployment not yet supported)

* backend:
- fix paths for email templates
- chart: support '--set backend_only=1' and '--set frontend_only=1' to only force deploy one or the other
- run backend from root /api in uvicorn
2021-12-03 10:17:22 -08:00
sua yoo
87bef6d967
Use settings to determine if sign up route is enabled (#51) 2021-12-03 10:05:55 -08:00
sua yoo
30e40adddd
Refresh access token in background (#48)
closes #22
2021-12-03 10:00:13 -08:00
sua yoo
c48e870ffe
Refactor frontend auth service (#47) 2021-12-02 16:31:12 -08:00
sua yoo
2396ab9851
Invite user to an archive (#36)
known issue: invalid invitation error shows even when invite is successfully accepted

closes #31
2021-12-02 11:31:03 -08:00
sua yoo
9d7596589b
Show sign up confirmation message (#42)
closes #41
2021-12-02 10:28:22 -08:00
Ilya Kreymer
081d6f8519
User Display Name Support + Token Refresh Support (#44)
* backend api/data model improvements:
- add 'name' property to user, can be set on registration, fixes #43
- in archive user list, include 'name' and 'role' for each user
- don't include is_* property in user create/register and update
- add /auth/jwt/refresh endpoint for refreshing token, fixes #34, support for #22

* allow jwt token lifetime to be settable via JWT_LIFETIME env var (default 3600)
2021-12-01 18:55:10 -08:00
sua yoo
8bcdc8877f
Frontend verification UX fixes (#40)
- Show toast alert when user is verified
- Redirect to correct page on verified
- Update already-logged in user info on verify
- Adds new toast component

closes #39
2021-12-01 11:56:09 -08:00
sua yoo
6e193b1157
redirect to log in on reset password 2021-12-01 11:04:38 -08:00
Ilya Kreymer
d0b54dd752 Enable sending emails in K8S, trigger verification e-mail on registration. (#38)
* k8s: support email configuration
support sending reset password email
fix for #32

* fastapi users: update to latest (8.1.2)
send verification email upon registration

* update to latest fastapi-users(8.1.2), refactor to use UserManager class
ensure verification e-mail sent upon registration, w/o requiring separate apicall
fixes #32

* add email options to default chart/values.yaml

* separate usermanager init from fastapi users init, fix for sending invite emails
2021-11-30 23:50:38 -08:00
sua yoo
3fa85c83f2
Allow users to sign up through UI (#30)
closes #28
2021-11-30 08:57:53 -08:00
sua yoo
50e93724fc
Allow users to reset password from UI (#27)
closes #21
2021-11-30 08:53:39 -08:00
sua yoo
911dc64025
Enable query param routing (#29)
* enable params in url

* rename view state
2021-11-25 12:00:24 -08:00
Ilya Kreymer
3d4d7049a2
Misc backend fixes for cloud deployment (#26)
* misc backend fixes:
- fix running w/o local minio
- ensure crawler image pull policy is configurable, loaded via chart value
- use digitalocean repo for main backend image (for now)
- add bucket_name to config only if using default bucket

* enable all behaviors, support 'access_endpoint_url' for default storages

* debugging: add 'no_delete_jobs' setting for k8s and docker to disable deletion of completed jobs
2021-11-25 11:58:26 -08:00
sua yoo
58eba70c68
Allow users to change password (#25)
wip #21
2021-11-23 17:01:08 -08:00
sua yoo
04fbe6fc4d
Adjust frontend auth behavior (#24) 2021-11-23 16:57:28 -08:00
sua yoo
5b8440f295
Fix frontend test mocks (#23) 2021-11-22 16:31:35 -08:00
sua yoo
5722909157
Frontend responsive UI tweaks (#20) 2021-11-22 10:25:34 -08:00