Commit Graph

395 Commits

Author SHA1 Message Date
sua yoo
80bc4a3eb9
Fix additional URLs (#752) 2023-04-05 20:11:09 -07:00
sua yoo
91c2c1ad62
Allow users to set additional page time limits (#744) 2023-04-05 20:06:46 -07:00
sua yoo
c60dc5d086
Crawls list backend pagination (#735) 2023-04-05 10:55:42 -07:00
Ilya Kreymer
88497d2a64
text: rename workflowuration -> workflow (#741) 2023-04-04 08:48:06 -07:00
sua yoo
370b8cbd4d
Set max pages to API default (#739) 2023-04-04 08:47:37 -07:00
Ilya Kreymer
2b0d5ff8b3
misc frontend build fixes: playwright version + chunking (#740)
* misc frontend build fixes:
- fix playwright version to be consistent to fix playwright test
- chunking: set max number of chunks generated

* lock playwright version

* remove intl polyfill

---------

Co-authored-by: sua yoo <sua@suayoo.com>
2023-04-03 21:27:44 -07:00
Tessa Walsh
4724754efc
Filter and sort crawl and workflow list API endpoints in backend (#724)
* Re-implement pagination and paginate crawlconfig revs

First step toward simplifying pagination to set us up for sorting
and filtering of list endpoints. This commit removes fastapi-pagination
as a dependency.

* Migrate all HttpUrl seeds to Seeds

This commit also updates the frontend to always use Seeds and to
fix display issues resulting from the change.

* Filter and sort crawls and workflows

Crawls:
- Filter by createdBy (via userid param)
- Filter by state (comma-separated string for multiple values)
- Filter by first_seed, name, description
- Sort by started, finished, fileSize, firstSeed
- Sort descending by default to match frontend

Workflows:
- Filter by createdBy (formerly userid) and modifiedBy
- Filter by first_seed, name, description
- Sort by created, modified, firstSeed, lastCrawlTime

* Add crawlconfigs search-values API endpoint and test
2023-03-28 17:55:40 -04:00
sua yoo
25e4da2522
fix: enable semibold variable 2023-03-28 12:17:34 -07:00
sua yoo
8033061540
Leave trailing slash in seed URLs (#731) 2023-03-27 14:46:59 -07:00
sua yoo
bca67c74e2
chore: format frontend files with prettier 2023-03-27 11:05:19 -07:00
sua yoo
5f5bb5ea6e
Allow users to set workflow description (#708) 2023-03-21 13:40:23 -07:00
sua yoo
b9a24fa5e2
Combine watch crawl with crawl queue (#710)
- crawl queue and watch page are now part of single view
- exclusions can be edited via 'Edit Exclusions' popup
2023-03-17 21:04:08 -07:00
sua yoo
03e9b2aba5
Disable copy tags menu item if no tags (#709) 2023-03-16 19:45:04 -07:00
sua yoo
0009ce8bf6
fix limit fields (#704) 2023-03-14 18:28:13 -07:00
Ilya Kreymer
de9212eec7
exclusions editor fix: (#692)
- backend: fix updating model after exclusions change
- frontend: don't check for new_cid, just success
- fixes #691
2023-03-10 22:36:10 -08:00
sua yoo
8ca4276c57
Migrate crawl config frontend -> workflow (#686) 2023-03-10 11:39:42 -08:00
sua yoo
fecdc6229d
Improve crawl queue pagination UX (#680)
* switches to infinite scroll for crawl queue
2023-03-09 12:18:26 -08:00
sua yoo
666c28f420
Limit organization name length (#671) 2023-03-08 09:21:48 -08:00
Ilya Kreymer
544346d1d4
backend: make crawlconfigs mutable! (#656) (#662)
* backend: make crawlconfigs mutable! (#656)
- crawlconfig PATCH /{id} can now receive a new JSON config to replace the old one (in addition to scale, schedule, tags)
- exclusions: add / remove APIs mutate the current crawlconfig, do not result in a new crawlconfig created
- exclusions: ensure crawl job 'config' is updated when exclusions are added/removed, unify add/remove exclusions on crawl
- k8s: crawlconfig json is updated along with scale
- k8s: stateful set is restarted by updating annotation, instead of changing template
- crawl object: now has 'config', as well as 'profileid', 'schedule', 'crawlTimeout', 'jobType' properties to ensure anything that is changeable is stored on the crawl
- crawlconfigcore: store share properties between crawl and crawlconfig in new crawlconfigcore (includes 'schedule', 'jobType', 'config', 'profileid', 'schedule', 'crawlTimeout', 'tags', 'oid')
- crawlconfig object: remove 'oldId', 'newId', disallow deactivating/deleting while crawl is running
- rename 'userid' -> 'createdBy'
- remove unused 'completions' field
- add missing return to fix /run response
- crawlout: ensure 'profileName' is resolved on CrawlOut from profileid
- crawlout: return 'name' instead of 'configName' for consistent response
- update: 'modified', 'modifiedBy' fields to set modification date and user modifying config
- update: ensure PROFILE_FILENAME is updated in configmap is profileid provided, clear if profileid==""
- update: return 'settings_changed' and 'metadata_changed' if either crawl settings or metadata changed
- tests: update tests to check settings_changed/metadata_changed return values

add revision tracking to crawlconfig:
- store each revision separate mongo db collection
- revisions accessible via /crawlconfigs/{cid}/revs
- store 'rev' int in crawlconfig and in crawljob
- only add revision history if crawl config changed

migration:
- update to db v3
- copy fields from crawlconfig -> crawl
- rename userid -> createdBy
- copy userid -> modifiedBy, created -> modified
- skip invalid crawls (missing config), make createdBy optional (just in case)

frontend: Update crawl config keys with new API (#681), update frontend to use new PATCH endpoint, load config from crawl object in details view

---------

Co-authored-by: Tessa Walsh <tessa@bitarchivist.net>
Co-authored-by: sua yoo <sua@webrecorder.org>
Co-authored-by: sua yoo <sua@suayoo.com>
2023-03-07 20:36:50 -08:00
sua yoo
d3bb524971
Fix missing crawl config name (#683) 2023-03-07 19:13:56 -08:00
sua yoo
ebce2ec384
fix: show crawl start date in local time 2023-03-07 16:05:00 -08:00
sua yoo
91e415fac2
Hide file size when crawl is running (#648) 2023-03-07 16:02:19 -08:00
sua yoo
85416e2ca2
Fix crawl config name in "run now" alert (#673) 2023-03-06 15:11:04 -08:00
Tessa Walsh
e98c7172a9
Paginate API list endpoints (#659)
* Paginate API list endpoints

fastapi-pagination is pinned to 0.9.3, the latest release that plays
nicely with pinned versions of fastapi and fastapi-users.

* Increase page size via overriden Params and Page classes

* update api resource list keys

---------

Co-authored-by: sua yoo <sua@suayoo.com>
2023-03-06 14:41:25 -05:00
sua yoo
a112f467b3
Update frontend/src/pages/org/crawl-detail.ts 2023-03-06 08:37:18 -08:00
Henry Wilkinson
7e1276fd0d
Remove duplicate gap value 2023-03-03 16:27:16 -05:00
Henry Wilkinson
e4a178ff74 Updates crawl details navigation
- Adds icons to details nav items
- Adds replay glyph icon
- Hides "Replay" & "Files" pages if the crawl is running
- Updates border radius 3px → 4px
- Updates colour values, aligns with mockups
- Replaces `margin` from menu items with `gap` values
- Removes animation

Prettier made some spacing adjustments, I also moved some lines around so they're all in the same spot now. 😬
2023-03-02 16:23:37 -05:00
Henry Wilkinson
70d7d2f304 Adds icon to invite new member button 2023-03-02 15:09:58 -05:00
sua yoo
dc62d4b874
Persist "show only mine" across page refresh (#661)
* turn off filter by default

* store in session storage

* update keys
2023-02-28 18:37:20 -08:00
sua yoo
f2b7946960
Improve crawl list rendering (#645)
* add load more button

* adjust height

* refactor to improve performance

* remove unused observable component

* contain status

* update dropdown animation
2023-02-28 18:36:23 -08:00
sua yoo
a1f939ad29
Improve tag input keyboard navigation (#650) 2023-02-28 15:52:31 -08:00
sua yoo
d0182a3e13
Hide file size when crawl is running (#648) 2023-02-28 15:52:06 -08:00
sua yoo
23795ec5fd
Compute name from seed URLs in UI (#644) 2023-02-28 15:51:43 -08:00
sua yoo
de8a5f1c00
fix: tag input target in chrome 2023-02-25 19:54:58 -08:00
Ilya Kreymer
0d2a2de66e
rename Information -> Metadata, rebuild localization strings list (#642) 2023-02-24 18:01:33 -08:00
sua yoo
1dea7ecdf9
Update crawls list styles (#630)
- Improves crawls list UI for UX and visual consistency
- Enables editing crawl metadata from the crawls list
- Upgraded Tailwind CSS
2023-02-24 17:36:34 -08:00
Henry Wilkinson
d36d22fea3 Run prettier on crawl-configs-list.ts 2023-02-24 16:20:32 -05:00
Henry Wilkinson
133d8b10ab Removes H1 from nav bar
Accessibility improvement, better for screen readers to have h1 be the content of the page as opposed to the application / brand name.  Rest of the nav bar to be dealt with at a later date.
2023-02-24 00:25:16 -05:00
Henry Wilkinson
d0abf2b324 Fix crawl config grid on sm
- Improves grid breakpoints on md
2023-02-24 00:10:16 -05:00
Henry Wilkinson
7f3cdad5b9 Adds page titles, edits heading hierarchy
### Main Pages + General
- Adds H1 page titles for all main pages
- Moves the New Crawl Config action into the title row from the search controls box
- Gives the Crawl Config search controls box the same style as the Crawls search controls box
- Adds +8px of padding to the search controls box to match mockups
- Search box: medium → small
- Title row control buttons: medium → small

### Details Pages
- h2 → h1 for crawl config and crawl detail pages
- h3 → h2 for crawl config and crawl detail pages
- Removes crawl title margin bottom at medium breakpoint on crawl details page
- Aligns crawl config details title row controls with end of flexbox on mobile to match crawl details controls in the same spot
2023-02-24 00:02:49 -05:00
sua yoo
e8b835df34
Disable editing crawl config of running crawls (#620) 2023-02-22 21:46:45 -08:00
sua yoo
974aeb5e93
Update crawls list control bar UI (#611) 2023-02-22 11:14:44 -06:00
sua yoo
c309b809da
Edit crawl notes from crawl detail view (#595) 2023-02-21 12:26:38 -06:00
sua yoo
dae98e1865
Allow user to delete individual crawls (#609) 2023-02-21 10:52:29 -06:00
sua yoo
9532f48515
Fix app not rendering with bad auth storage states (#597)
* render even if session store throws

* handle after timeout

* remove localstorage key

* update tests
2023-02-14 18:35:21 -08:00
Tessa Walsh
14b349443f
Make pending invites expire via TTL index (#568)
* Make invites expire after configurable window

The value can be set in EXPIRE_AFTER_SECONDS env var and via
helm chart values, and defaults to 7 days.

* Create nightly test CI and add invite expiration test to it

* Update 404 error message for missing or expired invite

---------

Co-authored-by: sua yoo <sua@suayoo.com>
2023-02-14 16:07:14 -05:00
sua yoo
baa2214c9f
Make all config form help text localizable (#593) 2023-02-13 16:53:33 -08:00
Henry Wilkinson
fea30d23ee
Merge pull request #589 from webrecorder/crawl-scale-to-instances 2023-02-13 15:08:14 -05:00
Henry Wilkinson
7da732331b
Update frontend/src/pages/org/crawl-detail.ts
Co-authored-by: sua yoo <sua@webrecorder.org>
2023-02-12 13:26:27 -05:00
sua yoo
a180b92f4a
Improve superadmin invite UI (#581) 2023-02-12 10:12:53 -08:00
Henry Wilkinson
b84a70b394 Adds help text
Matches crawl config help text
2023-02-09 01:00:14 -05:00
Henry Wilkinson
b7a9d811a0 "Crawl Scale" → "Crawler Instances"
- Changes name to match crawl config label
- Makes the buttons small
2023-02-09 00:41:34 -05:00
sua yoo
7463becdff
Manage org member roles and invites (#558)
- View and delete pending invites
- Update user roles for members
- Remove members
2023-02-08 18:32:40 -08:00
sua yoo
ac947421c0
Allow URL list to have URLs containing commas (#572) 2023-02-07 10:52:34 -08:00
Henry Wilkinson
56d331ab78
Fix text overflow problem on crawl details page (#570)
* Fixes text overflow problem on crawl details page

- Crawl title length is now unlimited
- Flex items in that row are aligned to the bottom of the box (details bar) instead of the top
- Mirrors changes on config detail page

* Shrinks action button size on config detail page: Matches crawl detail page
* Margin fix: Added 0.5rem, aligned with mockups
2023-02-06 19:43:22 -08:00
sua yoo
d128525e4e
Run unit tests in frontend PR check (#569) 2023-02-06 17:47:15 -08:00
sua yoo
17e1628d2d
Allow superadmins to create org from UI (#563) 2023-02-06 14:58:28 -08:00
sua yoo
4875d7727d
Fix invite accept in UI (#560) 2023-02-06 12:18:24 -08:00
Henry Wilkinson
58971d6b32 switch font-mediumfont-semibold for titles
This should resolve to `font-weight: 600` but currently does not. :(
2023-02-03 03:35:07 -05:00
Henry Wilkinson
a2a8d283ff Fixes url word breaking
Would probably ideally be break-word for all the non URL related things in the form but I don't think it will have any effect on anything that's not URLs in practice?
2023-02-03 03:10:28 -05:00
Henry Wilkinson
8e65edc6f8 Fix org settings label font weight 2023-02-03 03:01:41 -05:00
Henry Wilkinson
a7cd15c4f8 Removes "crawl of" beside crawl name 2023-02-03 02:41:22 -05:00
Henry Wilkinson
629b3dea6a Align details nav with window instead of window title 2023-02-03 02:37:46 -05:00
sua yoo
10c96ed2ae
Update tab access by user role (#549)
* update types

* update user org type

* update tabs
2023-02-02 22:26:22 -08:00
sua yoo
16ca8ecefd
Support additional seed URLs and custom scope type (#543) 2023-02-02 21:39:29 -08:00
sua yoo
c1a612d73f
Update crawl tags from detail view (#539) 2023-02-02 20:42:18 -08:00
sua yoo
f94be79364
Fix browser profile origins sidebar overlap (#530) 2023-01-31 13:44:17 -08:00
sua yoo
05ce32d898
Update org settings & org invite UI (#528) 2023-01-29 11:38:22 -08:00
Henry Wilkinson
3c199419a2
Merge pull request #526 from webrecorder/config-copy-updates 2023-01-27 13:17:29 -05:00
Sara Tavares
bc69d6f0d4
chore(typos): fix typos (#524)
Co-authored-by: stavares843 <stavares843@users.noreply.github.com>
2023-01-26 16:34:47 -08:00
sua yoo
8957eda966
Improve org routing & performance (#520) 2023-01-26 15:02:27 -08:00
Henry Wilkinson
796565c0ad Minor Updates to Seeded Crawl control descriptions & names
- Renames the first step as `Crawl Scope` from `Crawl Setup`.  Technically this whole process is setting up crawls, `Crawl Scope` should be more descriptive.
- Changes the help text regarding crawler instances to mention rate limiting instead of the amount of resources it takes up on our end which isn't terribly relevant to users.
2023-01-26 18:01:01 -05:00
Henry Wilkinson
e021184c27 Updates crawl type descriptions
Improvements based on Nicholas' feedback.
2023-01-26 17:41:18 -05:00
sua yoo
7dc85cc33c
Allow admin users to change org name (#506) 2023-01-25 10:55:45 -08:00
Tessa Walsh
0486d50fe9
Add new /users/me-with-orgs API endpoint (#510) 2023-01-24 10:23:30 -05:00
sua yoo
f780cb534b
Improve new config navigation UX (#508)
* add job type to url

* add back to choose crawl type

* update for duplicate

* enable jumping into section
2023-01-19 09:39:45 -08:00
sua yoo
5b6c53b48e
Rename remaining crawl templates -> crawl configs (#509) 2023-01-18 20:18:08 -08:00
sua yoo
c0fdf738e4
Autocomplete tag options (#505) 2023-01-18 20:15:42 -08:00
sua yoo
be10ea5239
Improve Page Time Limit UX (#503) 2023-01-18 20:13:27 -08:00
Tessa Walsh
0fa60ebc45
Rename archives/teams -> orgs in codebase + add db migration (#486)
* Rename archives to orgs and aid to oid on backend

* Rename archive to org and aid to oid in frontend

* Remove translation artifact

* Rename team -> organization

* Add database migrations and run once on startup

* This commit also applies the new by_one_worker decorator to other
asyncio tasks to prevent heavy tasks from being run in each worker.

* Run black, pylint, and husky via pre-commit

* Set db version and use in migrations

* Update and prepare database in single task

* Migrate k8s configmaps
2023-01-18 14:51:04 -08:00
sua yoo
241f485780
Add all localization files to source control (#502)
fixes build issues
2023-01-18 14:49:38 -08:00
sua yoo
7030e784e9
Add locale codes to version control (#501)
fixes frontend build issue
2023-01-18 14:28:21 -08:00
sua yoo
7a476e31ed
hotfix: localize msg string throwing error
Created https://github.com/webrecorder/browsertrix-cloud/issues/495 to catch issues before merge
2023-01-17 16:54:45 -08:00
sua yoo
b0745a63f7
Improve "Show Only Mine" switch visibility (#494) 2023-01-17 16:28:06 -08:00
sua yoo
ebb634a20d
Crawl config form panel UX enhancement & fix (#489) 2023-01-17 16:20:35 -08:00
sua yoo
c67af660ab
Fix localization build (#488)
* fix localization issues
* don't track translation files
2023-01-17 17:51:03 -05:00
sua yoo
d32428134a
Crawl config frontend fixes (#482)
* fix current time limit (#480)
* fix browser profile name not shown (#474)
* fix finish setup button label (#473)
* fix paginated exclusion, border and page size (#475)
2023-01-16 19:19:42 -08:00
sua yoo
6a30660728
Apply suggestions from code review 2023-01-16 10:08:45 -08:00
Henry Wilkinson
7e93ec57e0 Updates name (again) to actually reflect what this is
Because they _aren't_ additional seed URLs!
2023-01-13 17:13:42 -05:00
Henry Wilkinson
77a46aa2d9 Allowed URL Prefixes → Extra Start URLs
Changes name, hopefully people have an easier time understanding this now!

Will close #476
2023-01-13 16:50:00 -05: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
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
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
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
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
sua yoo
28346e0a54
New create crawl config user workflow (#391) 2022-12-12 13:50:33 -08:00
sua yoo
5d18ffa938
Fix language configuration UI (#388) 2022-12-01 10:02:13 -08:00
sua yoo
e7f1a00411
Fix authentication getting out of sync between tabs (#380)
Fixes regression to #361 found after increasing the token timeout by preventing app load until the authentication service is initialized (and finishing check if another tab is logged in.)
2022-11-23 23:36:36 -08:00
sua yoo
da8260a028
Make exclusion table cells editable (#379) 2022-11-23 09:43:52 -08:00
sua yoo
003b3c7a78
Allow users to set crawl config language (#377) 2022-11-22 15:15:35 -08:00
sua yoo
52e6b6199a
fix: prevent login event on storage event 2022-11-21 15:51:47 -08:00
sua yoo
321f78b861
Upgrade Shoelace 2.0.0-beta.61 -> 2.0.0-beta.83 (#358) 2022-11-21 08:16:51 -08:00
sua yoo
13d5ab7d2b
Fix exclusion dropdown & removal in crawl config edit (#372)
* fix dialog closing on regex

* fix unable to delete regex with same text
2022-11-18 14:47:40 -08:00
sua yoo
4d4ce40443
Refactor & sync user session across tab/windows (#370) 2022-11-15 19:49:18 -08:00
sua yoo
40054d1501
Update global footer (#354) 2022-11-15 14:15:04 -08:00
sua yoo
1ef9f7df6d
Fix auth not persisting on reload (#360) 2022-11-15 13:17:29 -08:00
sua yoo
8c4348b9f8
Show exclusion editor when creating & editing crawl templates (#353) 2022-11-14 19:34:15 -08:00
sua yoo
d41b582ef6
Remove exclusion from running crawl (#352) 2022-11-14 10:58:33 -08:00
sua yoo
95ec1599ef
Add exclusion to running crawl (#347) 2022-11-08 18:09:11 -06:00
sua yoo
baacbbdc52
Highlight regular expression syntax in Exclusions Table (#341) 2022-11-01 15:31:01 -07:00
sua yoo
97eb17784d
Display exclusions & list of URLs in crawl queue (#337)
- including pagination of queue results (30 results per page currently)
- show numbering on paginated results
- allow user navigation to each result page
2022-10-12 20:19:13 -07:00
sua yoo
8708c24a74
Improve crawl elapsed time UX (#323)
Smoother elapsed crawl timer:
- Crawls list: show seconds increment up to 2 minutes, then show minutes only
- Crawls detail: show seconds increment up to one day
2022-10-05 21:12:31 -04:00
sua yoo
0bbb7905bd
Add crawl queue editor UI components (#331)
WIP #304
2022-10-04 13:13:40 -07:00
sua yoo
e696104ffa
Update crawl template copy (#325) 2022-09-27 19:49:24 -07:00
sua yoo
709936dfa7
hotfix: decrease size of running crawl action button 2022-09-27 19:09:49 -07:00
sua yoo
63ada3e5b3
Update base fonts and text sizes (#327) 2022-09-27 14:32:57 -07:00
sua yoo
94e3dff27f
update sentry CDN script 2022-09-27 12:29:02 -07:00
sua yoo
20bd8ceecb
Fix browser profile table alignment (#322) 2022-09-26 17:14:08 -07:00
sua yoo
2ebd1eb2f6
Continue to watch crawl while stopping (#316)
* show when running

* redirect after done

* show banner that crawl is stopping
2022-09-21 12:39:00 -07:00
sua yoo
319a8a3c07
make clearer that profile selection is optional and that a default profile is used by default (#290)
- Rename 'Select Profile' -> 'Default Profile'
- Rename 'No Profiles' -> 'No Additional Profiles'
2022-08-10 15:54:39 -07:00
sua yoo
ee6161ad43
Frontend browser profile editor enhancements (#288)
- add button to duplicate profile from main view
- add save / cancel button when editing
- change location of 'full screen' button
2022-08-10 15:51:34 -07:00
sua yoo
9606d59c3d
Improve format of crawl template config error from server (#281)
* better display of api errors, such as fields missing or invalid urls, addresses #280
2022-06-29 17:57:03 -07:00
sua yoo
301b05ff4e
Refactor screencast websocket connection and retry (#276)
* replace ip with index and retry connection, fixes #252
2022-06-29 17:55:32 -07:00
Ilya Kreymer
2717a60763
improvements / bug fixes for stop/cancel handling: (#279)
- only send signal if stopping, no need for canceling as pods/containers will be removed
- refactor stop/cancel handling to be unified in manager, separate in job
- when stopping / graceful shutdown, return false if sending signal fails
- return success=true in json response if and only if stop/cancel actually succeeds, return 'error' message in error, should fix #270
- allow canceling after stopping / if stopping fails
- ensure finished time is set in case of cancelation before crawl starts, should fix #273
2022-06-29 17:47:25 -07:00
sua yoo
1c52902ea0
Update crawl scale label for UI consistency (#275)
closes #254
2022-06-29 16:14:03 -07:00
sua yoo
92292591ad
Re-run crawl from detail view + handle inactive crawl template (#268)
closes #253
2022-06-29 14:17:09 -07:00
sua yoo
d144591dbf
Display & edit crawl schedule in user local time (#271)
closes #255
2022-06-27 13:01:20 -07:00
sua yoo
c2aa4e6319
Fix AM/PM toggle (#272) 2022-06-23 16:35:47 -07:00
sua yoo
c2be1a27ce
Handle stopping state in UI (#269)
closes #262
2022-06-23 16:35:03 -07:00
sua yoo
b40765134c
Re-run crawl from crawls list view (#264)
* run crawl from crawls list, and show link to newly started crawl
* if crawl is already running, show link to previously running crawl
2022-06-15 18:54:57 -07:00
sua yoo
a8757e2e50
Screencast UX enhancements (#251)
* animate starting state
* consistent fixed-size slots for each browser (url + screencast)
* add tooltip for expected number of browsers (workers x scale)
2022-06-15 18:50:14 -07:00
Ilya Kreymer
9fce8cfc1d frontend: fix missed renames 2022-06-11 12:37:24 -07:00
sua yoo
710639365b
adjust no files message (#250)
Change 'no files yet' -> 'no files to replay' when there are no files available for replay.
2022-06-07 22:59:34 -07:00
sua yoo
fa4b71288c
Fix watch crawl running state (#249) 2022-06-07 12:04:35 -07:00
sua yoo
502d687620
Enable duplicating and editing browser profile (#237)
* ensure editing other config options does not lose profile
* support adding/editing/removing profile of existing config
* when duplicating config, ensure profile setting is also copied in the duplicate
2022-06-04 08:26:19 -07:00
sua yoo
0c1dc2a1d1
Show crawl replay for running crawls (#235)
* show replay and watch at same time

* add separate section for watch

* only show replay if crawl has files, otherwise show 'no files' message
2022-06-04 08:19:09 -07:00
sua yoo
6a78bcd4aa
Delete browser profile (#243)
- delete browser profile, if not in use
- if in use, show error message, listing crawl configs that use the profile
- backend: fix check for confirming profile deletion
2022-06-01 19:18:41 -07:00
sua yoo
9cf1ed7d4d
copy yaml (#239) 2022-06-01 19:06:52 -07:00
sua yoo
2355de3067
docs: remove extra comment 2022-05-31 14:13:17 -07:00
sua yoo
6e19e854be
Fix "Run now" button (#234) 2022-05-30 16:15:10 -07:00
Ilya Kreymer
955197579e frontend: support multi wacz replay using the crawl json as input 2022-05-20 09:11:23 -07:00
sua yoo
bda817dadd
View and edit browser profile (#218) 2022-04-23 20:12:16 -07:00
sua yoo
f157e2031f
Filter and sort crawl templates (#217) 2022-04-23 20:11:53 -07:00
sua yoo
cb80c6767e
hotfix: update profile ID in crawl template 2022-04-20 19:40:30 -07:00
Ilya Kreymer
38869cdd24
crawl templates: check that lastCrawlState is not null (#220) 2022-04-20 19:17:24 -07:00
sua yoo
db27b6aaaf
View and edit browser profile (#214) 2022-04-19 10:44:21 -07:00
sua yoo
71eec4d915
Create crawl template with browser profile (#215) 2022-04-18 10:36:28 -07:00
Ilya Kreymer
73b8c64ba4 frontend profile browser: cover devtools sidebar with profile sidebar, add try/catch for localStorage override 2022-04-13 21:41:51 -07:00
sua yoo
f5993e8ad8
Create browser profile UI (#211) 2022-04-13 21:11:13 -07:00
sua yoo
d2653ae835
View browser profiles in UI (#209) 2022-04-13 21:10:22 -07:00
sua yoo
238ee8f7ee
delete unused component file 2022-04-11 13:18:23 -07:00
sua yoo
8828681e8e
hotfix: fix crawl sort control alignment 2022-04-11 13:13:53 -07:00
sua yoo
d4b3ae3795
delete unused component file 2022-04-11 13:10:23 -07:00
sua yoo
5307138202
enable opening crawl template in new tab 2022-04-11 13:03:19 -07:00
sua yoo
f90ef071de
enable opening crawl in new tab 2022-04-11 13:03:10 -07:00
sua yoo
29b586b03f
Edit crawl config as YAML (#207) 2022-04-06 17:40:25 -07:00
Ilya Kreymer
9a6483630e
Support for Admin interface for viewing web archives (#198)
* backend api
- superadmin has admin access to all archives
- new superadmin endpoints: /archives/all/crawls and /archives/all/crawls/<crawl_id>.json for list all running crawls
and loading crawl data by id

- frontend superadmin view (fixes #201)
* show all archives on superadmin home page
* show jump to crawl for super admin (#200)
* navbar links for: all archives, all running crawls and jump to crawl

Co-authored-by: sua yoo <sua@suayoo.com>
2022-04-06 12:42:04 -07:00
sua yoo
ec3a77b71e
Mobile layout fixes (#206)
closes #202
2022-03-30 15:54:25 -07:00
sua yoo
9e2274f612
remove temp file 2022-03-30 13:51:02 -07:00
Ilya Kreymer
9e45dc35d2
minor frontend-tweaks: (#196)
* frontend-tweaks:
- treat 'starting' state same as 'running'
- default to no schedule instead of weekly for default
- add 'Domain' scopeType

* backend: also allow 'domain' as a scopeType
2022-03-15 21:19:23 -07:00
sua yoo
8863776c54
Define websocket host in common webpack config (#195)
* move websocket host var to common config, better fix for #193
2022-03-15 18:34:49 -07:00
Ilya Kreymer
912004751d quickfix: partial mitigation for #193, use current host for websock address 2022-03-14 15:29:35 -07:00
sua yoo
6fabea3e7a
Frontend build fixes (#191)
* copy specific files
* replace api host env var
* remove unused dotenv
* Update frontend/webpack.dev.js
Co-authored-by: Ilya Kreymer <ikreymer@users.noreply.github.com>
2022-03-10 23:26:21 -08:00
sua yoo
4190e40964
Show last crawl state in UI (#192)
* update crawl list status

* show on detail page
2022-03-10 23:25:42 -08:00
sua yoo
edf6b9ded7
Update home page routing (#186)
closes #183
2022-03-04 16:18:41 -08:00
sua yoo
0fe54653be
Fix unable to save edits to simple view (#185) 2022-03-04 16:17:57 -08:00
sua yoo
f2f67c34af
Copy extra hops value when duplicating crawl config (#184)
closes #158
2022-03-04 16:17:37 -08:00
sua yoo
4383c5e8d8
Disable error tracking in prod (#182)
closes #161
2022-03-04 16:17:05 -08:00
sua yoo
c18418ff09
Show invite message to super admin & layout fixes (#181) 2022-03-02 18:09:26 -08:00
sua yoo
fe31f551b2
Add "crawler" role to members (#174)
closes #139
2022-03-02 18:09:10 -08:00
sua yoo
c888a45d97
Fix seed URLs reset on JSON view toggle (#172)
closes #160
2022-03-02 18:08:45 -08:00
sua yoo
373c489b00
Watch crawl from crawl detail page (#156)
closes #164
closes #134 

Co-authored-by: Ilya Kreymer <ikreymer@users.noreply.github.com>
2022-03-02 18:08:08 -08:00
sua yoo
83ded98081
Set and update crawl scale (#162)
closes #143
2022-02-28 09:14:27 -08:00
sua yoo
3fe3691e74
Update crawl run duration at intervals (#155)
fixes #138
2022-02-23 16:14:01 -08:00
sua yoo
4af30a02be
Archive and crawl navigation improvements (#154) 2022-02-23 09:19:48 -08:00
sua yoo
b5874c3f8c
call super disconnected callback after custom callback 2022-02-22 15:59:55 -08:00
sua yoo
c563216582
Allow user to edit crawl template (#147)
closes #144
2022-02-22 13:54:25 -08:00
sua yoo
f30b398fea
Deactivate crawl templates in UI (#145)
wip #144
2022-02-21 11:37:15 -08:00
sua yoo
aa645d9b15
Enable frontend exception tracking (#140) 2022-02-18 10:34:07 -08:00
Ilya Kreymer
e9d6c68f6a frontend: replay: use single wacz replay for now (using first wacz file) 2022-02-15 08:34:14 -08:00
sua yoo
c577e36b74
add debug for access token 2022-02-08 17:52:27 -08:00
sua yoo
02f46f108b
Crawl & crawl config UX improvements (#136) 2022-02-01 14:28:07 -08:00
sua yoo
d7f58c964c
Fix in-app link UX (#132)
closes #130, closes #113
2022-01-31 17:36:50 -08:00
Ilya Kreymer
adb5c835f2
Presign and replay (#127)
* support for replay via replayweb.page embed, fixes #124

backend:
- pre-sign all files urls
- cache pre-signed urls in redis, presign again when expired (default duration 3600, settable via PRESIGN_DURATION_SECONDS env var)
- change files output -> resources to confirm to Data Package spec supported by replayweb.page
- add CrawlFileOut which contains 'name' (file id), 'path' (presigned url), 'hash', and 'size'
- add /replay/sw.js endpoint to import sw.js from latest replay-web-page release
- update to fastapi-users 9.2.2
- customize backend auth to allow authentication to check 'auth_bearer' query arg if 'Authorization' header not set
- remove sw.js endpoint, handling in frontend

frontend:
- add <replay-web-page> to frontend, include rwp ui.js from latest release in index.html for now
- update crawl api endpoint to end in json
- replay-web-page loads the api endpoint directly!
- update Crawl type to use new format, 'resources' -> instead of 'files', each file has 'name' and 'path'

- nginx: add endpoint to serve the replay sw.js endpoint
- add defer attr to ui.js
- move 'Download' to 'Download Files'

* frontend: support customizing replayweb.page loading url via RWP_BASE_URL env var in Dockerfile
- default prod value set in frontend Dockerfile (set to upcoming 1.5.8 release needed for multi-wacz-file support) (can be overridden during image build via --build-arg)
- rename index.html -> index.ejs to allow interpolation
- RWP_BASE_URL defaults to latest https://replayweb.page/ for testing
- for local testing, add sw.js loading via devServer, also using RWP_BASE_URL (#131)

Co-authored-by: sua yoo <sua@suayoo.com>
2022-01-31 17:02:15 -08:00
sua yoo
336cf11521
Fix "View crawl" links (#129)
* update key

* update in crawl config
2022-01-31 15:45:48 -08:00
sua yoo
d7c0877403
Refactor archive tabs & navigation improvements (#123)
closes #112
2022-01-31 15:45:36 -08:00
sua yoo
9de1a3a003
fix stopping gracefully feedback 2022-01-31 12:02:10 -08:00
sua yoo
be4bf3742f
Initial crawl detail page (#108) 2022-01-30 18:36:43 -08:00
sua yoo
7c067ffe36
Crawl template enhancements (#114)
closes #100
2022-01-30 18:30:54 -08:00
sua yoo
b93ca4e833
Add empty state for crawls (#121) 2022-01-29 15:55:44 -08:00
sua yoo
7777a22829
Poll crawls list & add additional details (#116) 2022-01-29 14:37:16 -08:00
sua yoo
2636f33123
Make crawl list interactive (#109)
- Cancel and stop crawl
- Sorts crawls by start time, status and crawl template ID
- Filters crawls by crawl template ID
- Adds shortcut to copy template ID
2022-01-29 10:38:58 -08:00