Commit Graph

579 Commits

Author SHA1 Message Date
sua yoo
75b011f951
Upload WACZ via UI (#992)
- Users can now upload .WACZ archives from the "Archived Data" page.
- Can specify name, description, tags and collection(s) to add upload to
- Show progress of upload
- Support canceling upload
2023-07-21 16:45:52 +02:00
sua yoo
85913112a2
Upgrade lit + shoelace to reduce build size (#938)
* upgrade lit

* upgrade shoelace

* upgrade testing libraries

* add webpack bundle analyzer

* revert shoelace changes

* remove bundle analyzer

* remove console log
2023-07-20 11:50:05 +02:00
Tessa Walsh
d5c3a8519f
Add crawler Use Sitemap option to Browsertrix Cloud (#978)
* Add user-guide docs for Use Sitemap option
---------

Co-authored-by: Henry Wilkinson <henry@wilkinson.graphics>
2023-07-19 13:57:52 -04:00
sua yoo
c5b3be0680
Fix frontend formatting pre-commit (#991)
* update lint staged config

* remove prettier defaults
2023-07-18 17:51:13 +02:00
Ilya Kreymer
2372f43c2c
frontend: fix to collection editor with crawls and uploads (#971)
* frontend:
- follow up to #969, fixes crawl workflows by using crawl-specific endpoint and merging results

* get crawls and uploads concurrently

---------

Co-authored-by: sua yoo <sua@suayoo.com>
2023-07-10 19:29:19 +02:00
sua yoo
f3660839bf
Allow users to add uploads to collections (#968)
* show uploads in 'Select Uploads' section
2023-07-09 22:21:50 -07:00
Henry Wilkinson
d9e73fcbc3
Reorder Limits section (#966)
* Reorder Limits section

- Minor text change to section names
  - "Limit Per Page" → "Per-Page Limits"
  - "Limit Per Crawl" → "Per-Crawl Limits"

* Reorder limits section in documentation
2023-07-08 08:54:30 -07:00
Ilya Kreymer
8eeb66e11f
Frontend more upload path fixes (#961)
* additional fixes for #935:
- don't use artifactType for detail pages, ensure correct artifact selected based on path

* naming tweaks:
- from uploads detail, return to 'All Uploads' with filter
- from crawls detail, return to 'All Crawls' with filter
- rename general to 'All Archived Data'
2023-07-07 15:41:03 -07:00
Ilya Kreymer
d3a757e20b
partial fix for: #935: (#960)
- add route for /artifacts/upload/<id> to be used for uploads
- link uploads to /artifacts/upload/<id> instead of /artifacts/crawl/<id>
2023-07-07 14:23:26 -07:00
sua yoo
de4b18aa67
List crawls, uploads, and all objects in UI (#941)
- Adds top-level "Archived Data" view, replacing "Finished Crawls" and moving it as "Crawls" into view
- Adds list for viewing all artifacts/data
- Adds list for viewing all uploaded crawls
- Updates crawl detail view to show upload details
- Edit upload metadata, including 'name'
- Delete uploads
---------

Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
Co-authored-by: Henry Wilkinson <henry@wilkinson.graphics>
2023-07-07 13:20:28 -07:00
Ilya Kreymer
00eb62214d
Uploads API: BaseCrawl refactor + Initial support for /uploads endpoint (#937)
* basecrawl refactor: make crawls db more generic, supporting different types of 'base crawls': crawls, uploads, manual archives
- move shared functionality to basecrawl.py
- create a base BaseCrawl object, which contains start / finish time, metadata and files array
- create BaseCrawlOps, base class for CrawlOps, which supports base crawl deletion, querying and collection add/remove

* uploads api: (part of #929)
- new UploadCrawl object which extends BaseCrawl, has name and description
- support multipart form data data upload to /uploads/formdata
- support streaming upload of a single file via /uploads/stream, using botocore multipart upload to upload to s3-endpoint in parts
- require 'filename' param to set upload filename for streaming uploads (otherwise use form data names)
- sanitize filename, place uploads in /uploads/<uuid>/<sanitized-filename>-<random>.wacz
- uploads have internal id 'upload-<uuid>'
- create UploadedCrawl object with CrawlFiles pointing to the newly uploaded files, set state to 'complete'
- handle upload failures, abort multipart upload
- ensure uploads added within org bucket path
- return id / added when adding new UploadedCrawl
- support listing, deleting, and patch /uploads
- support upload details via /replay.json to support for replay
- add support for 'replaceId=<id>', which would remove all previous files in upload after new upload succeeds. if replaceId doesn't exist, create new upload. (only for stream endpoint so far).
- support patching upload metadata: notes, tags and name on uploads (UpdateUpload extends UpdateCrawl and adds 'name')

* base crawls api: Add /all-crawls list and delete endpoints for all crawl types (without resources)
- support all-crawls/<id>/replay.json with resources
- Use ListCrawlOut model for /all-crawls list endpoint
- Extend BaseCrawlOut from ListCrawlOut, add type
- use 'type: crawl' for crawls and 'type: upload' for uploads
- migration: ensure all previous crawl objects / missing type are set to 'type: crawl'
- indexes: add db indices on 'type' field and with 'type' field and oid, cid, finished, state

* tests: add test for multipart and streaming upload, listing uploads, deleting upload
- add sample WACZ for upload testing: 'example.wacz' and 'example-2.wacz'

* collections: support adding and remove both crawls and uploads via base crawl
- include collection_ids in /all-crawls list
- collections replay.json can include both crawls and uploads

bump version to 1.6.0-beta.2
---------

Co-authored-by: Tessa Walsh <tessa@bitarchivist.net>
2023-07-07 09:13:26 -07:00
Tessa Walsh
29a6f0f6bc
Fix links in watch crawl after workflow crawl completes (#943) 2023-07-06 15:04:26 -07:00
Henry Wilkinson
8a240ad044
Fixes z-index (#939) 2023-07-04 23:05:09 -04:00
Ilya Kreymer
e37f220d6c version: bump to 1.6.0-beta.1 2023-06-16 18:53:32 -07:00
Tessa Walsh
c7051d5fbf
Backend API consistency pass (#921)
* Make API add and update method returns consistent

- Updates return {"updated": True}
- Adds return {"added": True}
- Both can additionally have other fields as needed, e.g. id or name

- remove Profile response model, as returning added / id only
- reformat

---------

Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2023-06-16 18:52:46 -07:00
Ilya Kreymer
d9ad8c11d2 frontend: fix RWP_BASE_URL not being set correctly for nginx image 2023-06-13 00:04:46 -07:00
Tessa Walsh
bd6dc79449
Add frontend support for auto-adding collections to workflows (#916)
- Adds collections search and list to workflow editor
- Adds collections to workflow details component
- Adds namePrefix filter to backend GET /orgs/{oid}/collections endpoint to support case-insensitive searching of collections
- Adds documentation for new setting

---------

Co-authored-by: Henry Wilkinson <henry@wilkinson.graphics>
2023-06-12 18:18:05 -07:00
Henry Wilkinson
71e9984e65
Adds documentation link and version copy button to footer (#920)
* Updates footer

- Adds documentation link
- Adds label to GitHub link, moves outside of the version code
- Adds copy button to version code for quick access when filing bug reports :)

* Comments out invisible div

* Improves responsiveness on mobile
2023-06-12 17:51:21 -07:00
Ilya Kreymer
ec3404c798
Fix Extra URLs in Scope (#913)
* scope fix: when using 'Custom Page Prefix scope (fixes #873)
- don't include primary seed URL in include list
- don't always add trailing slash to extra in scope URLs
- set seed scope to 'prefix' (supported via webrecorder/browsertrix-crawler#318) instead of re-including seed URL
- add comments on using 'custom' to indicate 'Custom Prefix Scope' semantics on frontend, setting actual scope to 'prefix' on backend
- remove unneeded conditional for additional urls, main scopeType overridden per seed anyway
2023-06-12 17:29:41 -07:00
Henry Wilkinson
2364433932
Admin Panel Minor Frontend Style Updates (#915)
- Unifies trash icons on all pages to use trash3 (there were a few stragglers!)
- Brings styling of org quotas dialogue in-line with the rest of our dialogues
- Adds missing localization strings
- Swaps button with icon button to match table row action styling elsewhere
2023-06-10 19:21:34 -07:00
Ilya Kreymer
9707fb55e4
fix finished workflows incorrectly being displayed as running (#909) 2023-06-08 11:26:42 -07:00
Ilya Kreymer
4428184aea
frontend: configure running with a fixed 'replay.json', auth headers passed via separate config (#899)
wabac.js will reload the replay.json on 403 with new token (will be in next version of wabac.js)
presign urls: make presign timeout configurable (in minutes), defaults to 60 mins
dockerfile: fix configuring RWP_BASE_URL
2023-06-08 11:26:26 -07:00
Henry Wilkinson
a718043fa8
Adds icon name and tooltip content fields to btrix-copy-button (#879)
- Adds two new properties, name to pick the icon's name and content to pick a custom tooltip message. These are in-line with what Shoelace uses but are perhaps not the best descriptors...
- Swaps the existing anchor links on the Workflow Details' Settings tab for these and relocates them to after the heading. (Navigation to the links is broken right now... but the copying part works nicely!)
- Updates btrix-section-heading to better handle multiple elements with flexbox and an 8px gap between elements
2023-06-06 17:54:17 -07:00
sua yoo
66b3befef9
Frontend collections beta UI (#886)
- Support for creating new collections and editing existing collections
- Can select crawling workflows which adds entire workflow, and then deselect individual crawls
- Can edit existing collections and add more crawls
- Can view, create and delete collections via new Collections top-level nav entry
2023-06-06 17:52:01 -07:00
Ilya Kreymer
00fb8ac048
Concurrent Crawl Limit (#874)
concurrent crawl limits: (addresses #866)
- support limits on concurrent crawls that can be run within a single org
- change 'waiting' state to 'waiting_org_limit' for concurrent crawl limit and 'waiting_capacity' for capacity-based
limits

orgs:
- add 'maxConcurrentCrawl' to new 'quotas' object on orgs
- add /quotas endpoint for updating quotas object

operator:
- add all crawljobs as related, appear to be returned in creation order
- operator: if concurrent crawl limit set, ensures current job is in the first N set of crawljobs (as provided via 'related' list of crawljob objects) before it can proceed to 'starting', otherwise set to 'waiting_org_limit'
- api: add org /quotas endpoint for configuring quotas
- remove 'new' state, always start with 'starting'
- crawljob: add 'oid' to crawljob spec and label for easier querying
- more stringent state transitions: add allowed_from to set_state()
- ensure state transitions only happened from allowed states, while failed/canceled can happen from any state
- ensure finished and state synched from db if transition not allowed
- add crawl indices by oid and cid

frontend: 
- show different waiting states on frontend: 'Waiting (Crawl Limit) and 'Waiting (At Capacity)'
- add gear icon on orgs admin page
- and initial popup for setting org quotas, showing all properties from org 'quotas' object

tests:
- add concurrent crawl limit nightly tests
- fix state waiting -> waiting_capacity
- ci: add logging of operator output on test failure
2023-05-30 15:38:03 -07:00
sua yoo
ab518f51fb
Fix ResizeObserver loop error (#902) 2023-05-30 14:59:34 -07:00
sua yoo
4852532866
Show org creation form if there are no orgs (#883) 2023-05-24 13:10:12 -07:00
Henry Wilkinson
f788934ef5
Fix copy tags button disabling when no tags on Crawl Details page (#877) 2023-05-24 12:30:31 -04:00
Tessa Walsh
bd8b306fbd
Improve sorting workflows by lastUpdated (#826)
* Precompute config crawl stats

Includes a database migration to move preciously dynamically computed
crawl stats for workflows into the CrawlConfig model.

* Add lastRun sorting option and enable it by default

* Add modified as final sort key to order non-run workflows

* Remove currCrawl* fields and update frontend accordingly

* Add isCrawlRunning field to backend and use in frontend
2023-05-22 18:42:30 -04:00
sua yoo
821fbc12d8
Upgrade Shoelace to stable version (v2) (#856) 2023-05-22 10:01:48 -07:00
Ilya Kreymer
826c2e8298 version: bump to 1.6.0-beta.0 2023-05-19 11:29:31 -07:00
Ilya Kreymer
d07204e59d version: bump to 1.5.1 2023-05-18 17:28:42 -07:00
sua yoo
b5781c8869
Fix workflow edit back button (#857) 2023-05-17 12:07:12 -07:00
Henry Wilkinson
da33231be9
Removes webkit <summary> element triangle (#852) 2023-05-16 18:13:59 -04:00
Ilya Kreymer
a1ef93a46a version: bump to 1.5.0 for release! 2023-05-16 17:36:58 +02:00
Ilya Kreymer
ebee5e1788 version: bump to 1.5.0-beta.4 2023-05-12 07:34:50 +02:00
sua yoo
f250293794
Fix workflow edit page not loading (#848)
* fix workflow not loading

* don't add hash if editing

* remove controller
2023-05-12 07:33:35 +02:00
sua yoo
98d82184e6
Fix superadmin running crawls views (#846)
- Updates superadmin "Running Crawls" to show active crawls (starting, waiting, running, stopping) and sort by start by default
- Navigates to crawl workflow watch view on clicking crawl item
- Adds "Copy Crawl ID" to crawl actions for easy paste into "Jump to crawl"
- Navigates to crawl workflow watch when jumping to crawl
2023-05-11 08:15:52 +02:00
Ilya Kreymer
d8b36c0ae2 version: bump to 1.5.0-beta.3 2023-05-11 03:05:46 +02:00
sua yoo
a6435ae3d0
Improve Workflow Detail tab and button UX (#840)
- Adds primary action button next to "Actions" dropdown
- Switches "Edit Workflow Settings" button to icon button
- Redirects user to "Watch Crawl" tab when starting crawl
  - Now uses crawl ID from `data.started` in API `/run` response for more responsive UI
- Keeps "Watch Crawl" tab navigation button in list but disable when crawl is not running
  - Also handles watch view when workflow is not running to cover navigational edge cases
- Adds banner in "Crawls" list to direct users to the Watch Crawl when workflow is running
- Shows notification when crawl is done to make redirect to Crawls tab smoother
- Uses workflow scale when updating crawl scale
- Removes "All" from "View: All Finished Crawls" on Finished Crawl page for wording consistency
2023-05-11 02:57:38 +02:00
Ilya Kreymer
d1e5b0a021 version: bump to 1.5.0-beta.2 2023-05-10 14:55:35 +02:00
sua yoo
42794cad46
Add stop crawl confirmation dialog (#841)
* switch dialog control

* wait for workflow update to complete before showing dialog

* add stop dialog

* close scale after save

* update crawl text
2023-05-10 07:21:16 +02:00
Ilya Kreymer
82b21b6813
frontend crawl stopping improvements (#836) (#838)
* frontend crawl stopping improvements (#836)
- support new backend 'stopping' property
- for now, keep 'stopping' indicator state when crawl is running but stopping set to true
2023-05-08 23:52:49 -07:00
Ilya Kreymer
2cae065c46
Add Waiting state on the backend and frontend (#839)
* operator: add waiting state
- add pods as related objects
- inspect pod status, set crawl status to 'waiting' if no pods are running

frontend:
- frontend support for 'waiting' state
- show waiting icon from mocks

---------
Co-authored-by: Henry Wilkinson <henry@wilkinson.graphics>
2023-05-08 17:05:01 -07:00
Ilya Kreymer
f992704491 version: bump version to 1.5.0-beta.1 2023-05-06 00:31:03 -07:00
sua yoo
9fcbc3f87e
Allow users to set max depth/hop out within scope (#816)
- Adds an input to the Workflow creation and edit form for specifying crawl depth. This input is conditionally shown for seeded crawls when the scope is set to "Pages on this domain", "Pages on this domain & subdomains" or "Custom page prefix". The "any" scope is also supported for backwards compatibility but is not shown by default or in new configs.
- API implementation: The depth value is set in the primary seed config, i.e. the first seed in seeds: [], not in the outer .config.depth property.
2023-05-05 14:26:48 -07:00
Henry Wilkinson
7409e0637e
Improves crawl detail files list truncation (#830) 2023-05-05 14:25:29 -07:00
sua yoo
0d23b45dac
Crawl workflow detail page improvements (#823)
Resolves #817
- Adds relevant action buttons to each Workflow detail tab header
- Adds "Delete" action menu item to crawls in Crawls tab
- Prevent automatically switching to "Watch" tab after running crawl from detail page
- Removes "Stop" confirmation prompt and only shows "Cancel" confirmation prompt if there are one or more pages crawled
- Replaces "Cancel" confirmation prompt with web component dialog (partially addresses Switch to in-page dialogue boxes #619)
- Fixes hash routing to fix going back with browser back button
2023-05-05 13:50:45 -07:00
sua yoo
85c96de883
Show critical errors in Crawl detail logs (#811) 2023-05-05 11:30:38 -07:00
Henry Wilkinson
7978cb4d85
Crawl detail page update (#808)
- Removes the info bar rendering and moves relevant information to the Overview section
- Adds total crawl size to the overview section
2023-05-03 15:50:15 -04:00
Henry Wilkinson
76c9185d69
Improve Recursive font declaration (#791) 2023-05-03 14:19:21 -04:00
sua yoo
60581411eb
Refactor screencast IDs (#800)
Fixes #713, mapping watch windows to exact column/row by id
2023-05-03 10:33:04 -07:00
sua yoo
9a1c2ba871
Fix workflow limit empty values being set to 0 (#795)
* default to null

* pass undefined for removing values

* handle 0 default
2023-05-03 09:25:22 -07:00
Henry Wilkinson
9500fd97fa
Merge pull request #802 from webrecorder/frontend-workflow-controls-update 2023-05-03 00:21:20 -04:00
Henry Wilkinson
a13964c4c4
Merge pull request #809 from webrecorder/frontend-icon-button-aria-label-fixes 2023-05-01 15:38:49 -04:00
Henry Wilkinson
ee92eb6646
Merge pull request #810 from webrecorder/frontend-minor-visual-updates 2023-05-01 15:38:37 -04:00
Henry Wilkinson
624e7083cf
Merge pull request #806 from webrecorder/frontend-update-copy-button 2023-05-01 15:38:22 -04:00
Henry Wilkinson
bddbe35315 Runs yarn format 2023-05-01 15:33:17 -04:00
Henry Wilkinson
088d6d306a Adds hoist to browser profile list actions dropdown
- Should fix bug where you can see the icon buttons through the dropdown
2023-05-01 03:27:59 -04:00
Henry Wilkinson
6e921cc065 Add margin to crawls list
Mirrors workflow list
2023-05-01 03:26:57 -04:00
Henry Wilkinson
23e398d327 Icon updates
- Changes `trash` for `trash3` which I believe wasn't originally available in the version of bootstrap-icons we were using but now it is and I like the tapered edges better :P
- Makes browser profiles action button small to fit with the rest of the dropdown components used elswhere
- Changes previous file-earmark delete icon to trash icons used everywhere else for delete actions
2023-05-01 03:26:34 -04:00
Henry Wilkinson
e04a6a7825 Improves icon button aria labels
- Adds some labels to missing icon buttons
- Fixes metadata `aria-label` usage → `label` so it actually gets added to the rendered `button`
- Changes the "More" label to a (hopefully) more descriptive "Actions" label for dropdown actions menus
2023-05-01 02:57:32 -04:00
Henry Wilkinson
1d7518af07 Ensure that button returns to its default state
uses the .blur() method to set the icon button back to its unfocused state after the set time
2023-04-29 17:17:49 -04:00
Henry Wilkinson
228e2187e3 Copy button text → icon
- Converts to icon button
- Adds accessibility label field
2023-04-28 14:53:11 -04:00
Henry Wilkinson
45826f8d70 Show only mine unification
Same styling as the finished crawls page
2023-04-28 13:38:23 -04:00
Henry Wilkinson
577942805b Moves dropdown beside search bar
- Improves responsiveness for top two items
2023-04-27 02:03:09 -04:00
Henry Wilkinson
81aeba6e92 Changes logout icon
- It's a door now instead of the box arrow
2023-04-27 00:46:42 -04:00
Henry Wilkinson
c359589024 Adds additional styling to the file picker
- Half aligned with current mockup!
2023-04-27 00:12:06 -04:00
Henry Wilkinson
c03bb1923b Removes extra padding around replay window
- Adds a check before the block of HTML that adds 16px of padding and tells it not to add that if it's the replay page.
2023-04-26 23:50:02 -04:00
sua yoo
e6e46b522a
hotfix: prevent polling during workflow edit 2023-04-26 13:41:41 -07:00
sua yoo
937ad4fe08
fix: navigate to watch on new crawl work
follows #720
2023-04-25 14:30:41 -07:00
sua yoo
7888c4fde3
Frontend crawl workflows rework (#775) 2023-04-25 14:16:07 -07:00
sua yoo
1458e2cdd9
hotfix: delete crawl workflow without crawls 2023-04-24 15:18:20 -07:00
Ilya Kreymer
85b6a05419
Upgrade to mongo 6 and use sortArray for workflow crawls (#764) (#765)
fixes from 1.4.1:
* Upgrade to mongo 6 and use  for workflow crawls

* update readiness probe with timeouts doubled, and failure threshold increased for slower 'mongosh' readiness check

update versions to 1.5.0-beta.0 in backend and frontend

Co-authored-by: Tessa Walsh <tessa@bitarchivist.net>
2023-04-11 18:22:07 -07:00
Ilya Kreymer
631c84e488 version: bump to 1.4.0! 2023-04-06 10:12:43 -07:00
Henry Wilkinson
ba3daf326d
Adds inputmode attributes to workflow config fields (#755)
- Now the appropriate virtual keyboards are shown! :)
- Also adjusts type weight for workflow config headers to match mockups
2023-04-06 09:16:48 -07:00
Henry Wilkinson
c6aec84af4
Changes the autoscroll setting to true by default (#756)
As per my note on #745, currently all our other check boxes turn features on when enabled.  For consistency I have reversed the states of the autoscroll checkbox so the page autoscrolls when it is checked and does not run the behavior when it is unchecked.  Checked is also now the default state.

- Updates help text accordingly
- Renames `disableAutoscrollBehavior` → autoscrollBehavior
2023-04-06 09:06:55 -07:00
Ilya Kreymer
3ab62547a9 version: bump to 1.4.0-beta.2 2023-04-06 02:45:20 -07:00
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
72967a0381
Frontend Docker build improvements (#749) 2023-04-05 20:05:45 -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
Sara Tavares
948cce3d30
Add README.md related to run playwright tests locally (#722) 2023-03-28 16:08:28 -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
Sara Tavares
36cfb2591f
ci: fix version related to @playwright/test (#729)
* fix version, add resolutions to have fixed playwright version
2023-03-28 14:30:36 -07: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
Sara Tavares
48163db5d3
ci: fix version playwright version for tests (#725) 2023-03-26 21:57:06 -07:00
Sara Tavares
b61592b5ed
CI: Add Playwright UI e2e tests + CI (#614)
Adds Playwright for UI tests.
Basic Playwright test to login.
Playwright Github Action.

---------

Co-authored-by: sua yoo <sua@suayoo.com>
2023-03-22 16:23:22 -07:00
sua yoo
5f5bb5ea6e
Allow users to set workflow description (#708) 2023-03-21 13:40:23 -07:00
Ilya Kreymer
ba70d3227e version: update to 1.4.0-beta.1 2023-03-17 21:14:42 -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
Ilya Kreymer
ace4e79e3f version: bump version to 1.4.0-beta.0 2023-03-06 10:20:56 -08: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
Ilya Kreymer
df9a7eccf3 version: bump to 1.3.1 2023-02-28 18:40:15 -08: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
4901fc2fe9 version: bump to 1.3.0 2023-02-24 18:07:56 -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
5df0808c39 Merge branch 'main' into frontend-update-page-headers 2023-02-24 16:19:56 -05:00
sua yoo
5b2e101d20
chore: add editorconfig in frontend
Matches indent style and size to prettier formatter
2023-02-24 13:04:11 -08: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
Ilya Kreymer
0fd18ed3dd version: bump to 1.3.0-beta.0
CHANGES: add upcoming release, link to release changelist for 1.2.0
2023-02-21 10:14:08 -08: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
a7a5b7fd63
test: add shoelace form utility to import map
Temporarily fixes test build error, see FIXME
2023-02-07 13:58:14 -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
Ilya Kreymer
21745fb6f8
health readiness check: add /healthz endpoint for nginx readiness check, set failure threshold to 3 (similar to ingress) (#562) 2023-02-06 15:08:05 -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
28d39121d7
Merge pull request #551 from webrecorder/css-fixes 2023-02-05 22:00:09 -05:00
Ilya Kreymer
67df783885 bump version to 1.2.1-beta.0 2023-02-05 12:27:45 -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
Ilya Kreymer
af7ba4c90a version: update to 1.2.0 2023-02-02 23:46:23 -08: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
f7892d7f2f
Add frontend build check (#498) 2023-01-18 13:06:33 -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
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
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
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
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
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
afe536e568 version: bump to 1.1.0-beta.1 2022-11-23 23:37:33 -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
3ad47a4c8c
Frontend Node version support (#382) 2022-11-23 09:05:02 -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
77fa6ae691
chore: update license to valid expression 2022-11-21 09:19:11 -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
Ilya Kreymer
d6386b7051
Release Build + Versioning (#373)
- Adds version to version.txt in root
- adds update-version.sh which updates version in frontend/package.json and backend/btrixcloud/version.py
- frontend: loads version from $VERSION env var, ../version.txt or package.json
- ci: on new github release, pushes webrecorder/browsertrix-backend and webrecorder/browsertrix-frontend images to Dockerhub with current version, as well as latest.
- version set to 1.1.0-beta.0
- closes #357
2022-11-18 17:15:25 -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
2bfbeab55f
build: copy ts declaration file 2022-10-04 13:38:12 -07: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
Ilya Kreymer
3fec2a9f82
dev server: also proxy /data directory for testing replay from a remote instance locally (#266)
API_BASE_URL will need to be set to 'http://remote.example.com/' instead of 'http://remote.example.com/api/'
2022-06-29 15:47:20 -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
raffaele messuti
70767f0ac2
small fixes on docker swarm deployment (#265)
* fix COPY with multiple files

* Update Deployment.md
2022-06-16 19:56:40 -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
418c07bf0d
Local swarm + podman support (#261)
* backend: refactor swarm support to also support podman (#260)
- implement podman support as subclass of swarm deployment
- podman is used when 'RUNTIME=podman' env var is set
- podman socket is mapped instead of docker socket
- podman-compose is used instead of docker-compose (though docker-compose works with podman, it does not support secrets, but podman-compose does)
- separate cli utils into SwarmRunner and PodmanRunner which extends it
- using config.yaml and config.env, both copied from sample versions
- work on simplifying config: add docker-compose.podman.yml and docker-compose.swarm.yml and signing and debug configs in ./configs
- add {build,run,stop}-{swarm,podman}.sh in scripts dir
- add init-configs, only copy if configs don't exist
- build local image use current version of podman, to support both podman 3.x and 4.x
- additional fixes for after testing podman on centos
- docs: update Deployment.md to cover swarm, podman, k8s deployment
2022-06-14 00:13:49 -07:00