browsertrix/frontend
Vinzenz Sinapius bb6e703f6a
Configure browsertrix proxies (#1847)
Resolves #1354

Supports crawling through pre-configured proxy servers, allowing users to select which proxy servers to use (requires browsertrix crawler 1.3+)

Config:
- proxies defined in btrix-proxies subchart
- can be configured via btrix-proxies key or separate proxies.yaml file via separate subchart
- proxies list refreshed automatically if crawler_proxies.json changes if subchart is deployed
- support for ssh and socks5 proxies
- proxy keys added to secrets in subchart
- support for default proxy to be always used if no other proxy configured, prevent starting cluster if default proxy not available
- prevent starting manual crawl if previously configured proxy is no longer available, return error
- force 'btrix' username and group name on browsertrix-crawler non-root user to support ssh

Operator:
- support crawling through proxies, pass proxyId in CrawlJob
- support running profile browsers which designated proxy, pass proxyId to ProfileJob
- prevent starting scheduled crawl if previously configured proxy is no longer available

API / Access:
- /api/orgs/all/crawlconfigs/crawler-proxies - get all proxies (superadmin only)
- /api/orgs/{oid}/crawlconfigs/crawler-proxies - get proxies available to particular org
- /api/orgs/{oid}/proxies - update allowed proxies for particular org (superadmin only)
- superadmin can configure which orgs can use which proxies, stored on the org
- superadmin can also allow an org to access all 'shared' proxies, to avoid having to allow a shared proxy on each org.

UI:
- Superadmin has 'Edit Proxies' dialog to configure for each org if it has: dedicated proxies, has access to shared proxies.
- User can select a proxy in Crawl Workflow browser settings
- Users can choose to launch a browser profile with a particular proxy
- Display which proxy is used to create profile in profile selector
- Users can choose with default proxy to use for new workflows in Crawling Defaults

---------
Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
Co-authored-by: Tessa Walsh <tessa@bitarchivist.net>
2024-10-02 18:35:45 -07:00
..
.husky chore: Auto-commit extracted localization strings (#2089) 2024-09-30 10:48:13 -07:00
config/tailwind/plugins Add detailed permissions & permission summaries to user invite popup (#2003) 2024-08-20 20:34:29 -04:00
patches
scripts
src Configure browsertrix proxies (#1847) 2024-10-02 18:35:45 -07:00
tests fix: Hide login link on login page (#2039) 2024-08-21 15:33:24 -07:00
xliff Configure browsertrix proxies (#1847) 2024-10-02 18:35:45 -07:00
.dockerignore
.editorconfig
.eslintrc.js
.gitignore
.prettierignore chore: Format XLIFF files (#2074) 2024-09-11 10:46:39 -07:00
.vscode
00-browsertrix-nginx-init.sh
Dockerfile
frontend.conf.template
index.d.ts
lit-localize.json feat: Localization workflow improvements (#2069) 2024-09-10 14:15:26 -07:00
minio.conf
package.json Ensure that CI fails if extracted strings don't match (#2078) 2024-09-16 16:48:33 -04:00
playwright.config.ts
postcss.config.js Add detailed permissions & permission summaries to user invite popup (#2003) 2024-08-20 20:34:29 -04:00
prettier.config.js chore: Format XLIFF files (#2074) 2024-09-11 10:46:39 -07:00
README.md
sample.env.local feat: Merge workflow job types (#2068) 2024-09-25 10:37:18 -04:00
tailwind.config.js
tsconfig.eslint.json
tsconfig.json chore: Improve time to load org UI (#2044) 2024-08-26 10:45:10 -07:00
web-test-runner.config.mjs fix: Fix collection description (#2065) 2024-09-05 22:10:14 -07:00
webpack.config.js feat: Merge workflow job types (#2068) 2024-09-25 10:37:18 -04:00
webpack.dev.js
webpack.prod.js
yarn.lock chore: Format XLIFF files (#2074) 2024-09-11 10:46:39 -07:00