Commit Graph

372 Commits

Author SHA1 Message Date
Ilya Kreymer
2daa742585
Copy tags from crawlconfig to crawl (#467), fixes #466
- add tags to crawl object
- ensure tags are copied from crawlconfig to crawl when crawl is created (both manually and scheduled)
- tests: add test to ensure tags added to crawl, remove redundant wait replaced with fixtures
2023-01-12 17:46:19 -08:00
Tessa Walsh
49460bb070
Add default organization + invite to default org (#465), #455
- Add default switch to Archive (org) model
- Set default org name via values.yaml
- Add check to ensure only one org with default org name exists
- Stop creating new orgs for new users
- Add new API endpoints for creating and renaming orgs (part of #457)
- Make Archive.name unique via index
- Wait for db connection on init, log if waiting
- Make archive-less invites invite user to default org with Owner role
- Rename default org from chart value if changed
- Don't create new org for invited users
2023-01-12 16:44:18 -08:00
sua yoo
a6c248f9dd
Run frontend formatter on pre-commit hook (#461)
Resolves #450
2023-01-12 14:04:15 -08:00
sua yoo
e3d34ff08f
Crawl config tag editor UI (#422)
Allow users to set tags on a crawl config. Resolves #362
2023-01-12 13:59:42 -08:00
sua yoo
52d9ae9661
fix skipping to confirm settings when duplicating config (#454) 2023-01-12 13:57:59 -08:00
Ilya Kreymer
875364c05a docs: tweak ansible deployment docs 2023-01-11 22:33:28 -08:00
Francis Kayiwa
b0f1379e42
add digital ocean documentation (#421)
* add digital ocean documentation

* remove microk8s role

* use a single playbook to install microk8s

* use inventory hostname

* use a host_ip for endpoint so not to clash with domain

* add RedHat control loops

* add microk8s documentation

* enable permissive mode for redhat
2023-01-11 21:57:17 -08:00
sua yoo
a7457ca334
Filter crawls, configs, browser profiles by user ID (#463)
* filter crawls by user id

* filter crawl configs by user id

* text change: Filter My Crawls -> Show Only Mine

Co-authored-by: Ilya Kreymer <ikreymer@users.noreply.github.com>
2023-01-11 20:32:14 -08:00
Ilya Kreymer
5efeaa58b1
API filters by user + crawl collection ids (#462)
backend: object filtering:
- add filtering crawls, crawlconfigs and profiles by userid= query arg, fixes #460
- add filtering crawls by crawlconfig via cid= query arg, fixes #400 
- tests: add test_filter_results test suite to test filtering crawls and crawlconfigs by user, also create user with 'crawler' permissions, run second crawl with that user.
2023-01-11 16:50:38 -08:00
Ilya Kreymer
7b5d82936d
backend: initial tags api support (addresses #365): (#434)
* backend: initial tags api support (addresses #365):
- add 'tags' field to crawlconfig (array of strings)
- allow querying crawlconfigs to specify multiple 'tag' query args, eg. tag=A&tag=B
- add /archives/<aid>/crawlconfigs/tags api to query by distinct tag, include index on aid + tag
tests: add tests for adding configs, querying by tags
tests: fix fixtures to retry login if initial attempts fails, use test seed of https://webrecorder.net instead of https://example.com/
2023-01-11 13:29:35 -08:00
Ilya Kreymer
edfb1bd513
quickfix: pydantic / lint fix (#452)
* backend: use latest pydantic again, fix pylint with custom .pylintrc (as suggested in pydantic/pydantic#1961)
2023-01-10 18:54:11 -08:00
Ilya Kreymer
56a6d7a5d8
Backend lint check (#451)
- apply lint + format fixes to backend
- add ci for lint + format fixes for backend
- use fixed version of pydantic
2023-01-10 16:17:06 -08:00
Ilya Kreymer
30bda8c75d
VNC-Based Profile Browser (#433)
* profile browser vnc support + fixes:
- switch profile browser rendering to use VNC
- frontend: add @novnc/novnc as dependency, create separate bundle novnc.js to load into vnc browser (to avoid loading from each container)
- frontend: update proxy paths to proxy websocket, index page to crawler
- frontend: allow browser profiles in all browsers, remove browser compatibility check
- frontend: update webpack dev config, apply prettier
- frontend: node version fix
- backend: get vncpassword, build new URL for proxying to crawler iframe
- backend: fix profile / crawl job pull policy from 'Always' -> 'Never', should use existing image for job
- backend: fix kill signal to use bash -c to work with latest backend image
- backend/chart: add 'profile_browser_timeout_seconds' to chart values to control how long profile browser to remain when idle (default to 60)
- backend: remove utils.py, now using secret.token_hex() for random suffix
Co-authored-by: sua yoo <sua@suayoo.com>
2023-01-10 14:42:42 -08:00
sua yoo
303df2869c
Sticky the crawl config progress indicator position (#445)
* fix tabs on scroll

* adjust for smaller creen size

* scroll to top of section on change

* only scroll if needed
2023-01-09 19:58:33 -08:00
sua yoo
2dcf5cb36b
Always sub-navigation bar for selected team (#444)
* move nav

* highlight correct tab
2023-01-09 19:58:19 -08:00
Tessa Walsh
d1b59c9bd0
Use archive_viewer_dep permissions to GET crawls (#443)
* Use archive_viewer_dep permissions to GET crawls

* Add is_viewer check to archive_dep

* Add API endpoint to add new user to archive directly (/archive/<id>/add-user)

* Add tests

* Refactor tests to use fixtures

* And remove login test that duplicates fixtures
2023-01-09 19:11:53 -08:00
D. Lee
61ed51fa84
Merge pull request #446 from webrecorder/bugfix-helm
Have ingress for signer only when it is enabled
2023-01-09 16:34:57 -08:00
DongWoo Lee
b03b848ec2 have ingress for signer only when it is enabled 2023-01-06 14:06:33 -08:00
DongWoo Lee
7dbad5c606 add ingress test 2023-01-05 18:44:50 -08:00
DongWoo Lee
65da349caa add more time for pods 2023-01-04 23:54:58 -08:00
DongWoo Lee
947bf6e65d add ingress test 2023-01-04 23:32:32 -08:00
DongWoo Lee
539a4556aa add logging service CI with k3d 2023-01-04 22:52:41 -08:00
sua yoo
c4fc3146b7
Fix app not loading on older Safari <15.4 (#436) 2023-01-04 15:09:57 -08:00
sua yoo
adc7ea6fe0
Persist currently selected team/archive (#441) 2023-01-04 15:09:23 -08:00
DongWoo Lee
6a228bb370 update doc 2023-01-04 00:31:59 -08:00
DongWoo Lee
75ce09a163 allow for non-local setup 2023-01-04 00:23:44 -08:00
DongWoo Lee
5b7d214c8a add logging 2023-01-04 00:15:23 -08:00
sua yoo
5daf550cb8
Frontend archives -> teams migration (#429) 2023-01-03 15:37:32 -08:00
sua yoo
d33d5f7700
Compute crawl config name from seed URLs (#435) 2023-01-03 15:07:21 -08:00
sua yoo
4a23dd12cb
Crawl config detail view & edit workflow UI updates (#415) 2022-12-22 09:37:43 -08:00
sua yoo
3b1db019c4
disable cache on replay web page (#419) 2022-12-21 10:48:37 -08:00
Ilya Kreymer
dfca09fc9c
Add single crawl info api at /crawls/{crawl_id} (#418)
* backend: crawl info apis:
- add /crawls/{crawl_id} api endpoint which just lists the crawl info, without resolving the individual files
- move /crawls/{crawl_id}.json -> /crawls/{crawl_id}/replay.json for clarity that it's used for replay

* frontend: update api for new replay.json endpoint
2022-12-19 14:54:48 -08:00
Ilya Kreymer
ad07b6ab43
docs: CHANGES: fix typo, begin changelist for 1.2.0 (#410)
scripts: fix scripts to use plain docker build
docs: update local deployment info to include k3s
2022-12-12 20:32:35 -08:00
Henry Wilkinson
57ec6d1be2
Minor docs style updates (#409)
* Minor style updates

- Uses the Material `teal` colour which seems to be a close match... This will be changed later once I do more branding things with a proper theme override
- Adds a monochrome version of the current Browsertrix Cloud logo.
- Fixes typo :P
2022-12-12 18:15:12 -08:00
sua yoo
28346e0a54
New create crawl config user workflow (#391) 2022-12-12 13:50:33 -08:00
Ilya Kreymer
61c63d0be9
Remove Code and Configs for Swarm/podman support (#407)
- remove swarm / podman support
- remove docker-compose.yml, btrixcloud.swarm package, and podman/swarm scripts from scripts/ dir-
- remove python-on-whales
- add error if not running in k8s
- remove python-on-whales
2022-12-08 18:19:58 -08:00
Ilya Kreymer
e2025dac4b docs:
- local deploy update: add collapsible details blocks for vendor-specific instructions, move installing section before running
- add missing docs on how to run docs
- fix doc typos
2022-12-08 17:59:24 -08:00
Ilya Kreymer
2d93cef966
CI: Add K3D CI test (#405)
- add testing with K3D cluster
- bump backend image to python 3.10-slim for newer python, smaller image.
- bump to 1.2.0-beta.0
2022-12-07 23:26:16 -08:00
Ed Summers
a656ab512b
fix link (#404) 2022-12-07 10:00:00 -08:00
Ilya Kreymer
6e81b44ff8 docs: fix typos in production, missing TODO in user-guide section 2022-12-06 15:24:10 -08:00
Ilya Kreymer
0aa09be8c3
README + CHANGES + doc tweaks for 1.1.0 release (#402)
- update README + docs with deprecation of non-k8s deployment
- add CHANGES.md
- bump version to 1.1.0
2022-12-06 12:27:27 -08:00
Ilya Kreymer
ba3e7d048f
build: increase network timeout for yarn for frontend build for arm64 build (#401)
- build: increase network timeout for frontend build for arm64 build (see nodejs/docker-node#1335)
- also bump microk8s action version to fix warning
2022-12-06 10:19:27 -08:00
Ilya Kreymer
9624cb6007 docs: add CNAME to keep correct domain 2022-12-06 00:45:57 -08:00
Ilya Kreymer
e6f99bf2be ci: ensure qemu is setup for multiarch build 2022-12-05 18:38:26 -08:00
Ilya Kreymer
829548af0f doc tweaks:
- fix typos in docs
- update prod deployment info
- update minikube info
- add info on how to run with local images
- bump version to 1.1.0-beta.3 for testing multiarch build
2022-12-05 18:14:19 -08:00
Henry Wilkinson
a74d88dcda
mkdocs setup (deploy, dev, user-guide) (#375)
* Initial docs move
* Setup mkdocs
* Adds instructions for building docs
* add new deployment docs, local and prod
* set up three sections: deployment, dev and user guide
* remove old deployment docs
* ci: mkdocs gh-pages publish

Co-authored-by: sua yoo <sua@suayoo.com>
Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2022-12-05 16:41:37 -08:00
Ilya Kreymer
82ffc0dfbc
Local Deployment Work: Support running locally + test cluster on CI (#396)
* k8s local deployment work:
- make it easier to deploy w/o ingress by setting 'local_service_port' (suggested port 30870)
- if using local minio, ensure file endpoints set to /data/ and /data/ proxies correctly to local bucket
- if not using minio, ensure file endpoints point to correct access / endpoint url.
- setup should work with docker desktop, minikube, microk8s and k3s!
- nginx chart: bump nginx memory limit to 20Mi
- nginx image: 00-default-override-resolver-config -> 00-browsertrix-nginx-init for clarity
- nginx image: use default nginx.conf, pin to nginx 1.23.2
- mongo: readd readiness probe, bump connect wait timeout (needed for ci)
- config: set superadmin username to 'admin'
- config schema: set 'name' as required 
- add sample chart values overrides:
- chart values: local-config.yaml for running locally with 'local_service_port'
- chart values: add microk8s-hosted.yaml for configuring a hosted microk8s setup
- chart values: add microk8s-ci.yaml for ci tests
- ci: remove docker swarm tests
- ci: add microk8s integration tests: launching cluster, logging in, running a crawl of example.com, downloading/checking WACZ
- bump to 1.1.0-beta.2
2022-12-02 19:58:34 -08:00
sua yoo
5d18ffa938
Fix language configuration UI (#388) 2022-12-01 10:02:13 -08:00
Ilya Kreymer
aabb0b2a92
chart / deployment fixes to run on microk8s: (fixes #385) (#387)
- ingress: fix proxying /data to minio, use another ingress which proxies correct host to ensure presigned urls work
- presigning: determine if signing endpoint url (minio) or access endpoint (cloud bucket) based on if access endpoint is provided, set bool on storage object
- chart: fix indent on incorrect storageClassName configs
- ingress: make 'ingress_class' configurable (set to 'public' for microk8s, default to 'nginx')
- minio: use older minio image which supports legacy fs based setup (for now)
- nginx service: add 'nginx_service_use_node_port' config setting: if true, will use NodePort for frontend,
other will use default (ClusterIP) and only for the frontend / nginx
- chart: remove changing service type for other services
2022-11-30 09:21:58 -08:00
Ilya Kreymer
afe536e568 version: bump to 1.1.0-beta.1 2022-11-23 23:37:33 -08:00