Go to file
Ilya Kreymer 1c42e21b8a
Refactor Invites and Registration, Flatten Per-User Invites (#1902)
Fixes #1432

Refactors the invite + registration system to be simpler and more consistent
with regards to existing user invites. Previously, per-user invites are
stored in the user.invites dict instead of in the invites collection,
which creates a few issues:
- Existing user do not show up in Org Invites list: #1432 
- Existing user invites also do not expire, unlike new user invites,
creating potential security issue.

Instead, existing user invites should be treated like new user invites.
This PR moves them into the same collection,
adding a `userid` field to InvitePending to match with an existing user.

If a user already exists, it will be matched by userid, instead of by
email. This allows for user to update their email while still being
invited. Note that the email of the invited existing user will not
change in the invite email. This is also by design: an admin of one org
should not be given any hint that an invited user already has an
account, such as by having their email automatically update. For an org
admin, the invite to a new or existing user should be indistinguishable.

The sha256 of invite token is stored instead of actual token for better
security.

The registration system has also been refactored with the following
changes:
- Auto-creation of new orgs for new users has been removed
- User.create_user() replaces the old User._create() and just creates the user with
additional complex logic around org auto-add
- Users are added to org in org add_user_to_org()
- Users are added to org through invites with add_user_with_invite()

Tests:
- Additional tests include verifying that existing and new pending
invites appear in the pending invites list
- Tests for `/users/invite/<token>?email=` and
`/users/me/invite/<token>` endpoints
- Deleting pending invites
- Additional tests added for user self-registration, including existing
user self-registration to default org of existing user (in nightly
tests)
2024-07-02 15:13:27 -07:00
.github Refactor Invites and Registration, Flatten Per-User Invites (#1902) 2024-07-02 15:13:27 -07:00
.vscode Initial QA Review UI! (#1624) 2024-04-04 15:09:52 -07:00
ansible Add Repository Index + Chart Rename + Docs Rename (#1708) 2024-04-21 09:42:25 -07:00
assets Frontend: App Branding! (#1592) 2024-04-17 23:40:02 -04:00
backend Refactor Invites and Registration, Flatten Per-User Invites (#1902) 2024-07-02 15:13:27 -07:00
chart Refactor Invites and Registration, Flatten Per-User Invites (#1902) 2024-07-02 15:13:27 -07:00
configs Remove Code and Configs for Swarm/podman support (#407) 2022-12-08 18:19:58 -08:00
docs Add superuser API endpoints to export and import org data (#1394) 2024-07-02 17:14:34 -04:00
frontend Add superuser API endpoints to export and import org data (#1394) 2024-07-02 17:14:34 -04:00
scripts Add Repository Index + Chart Rename + Docs Rename (#1708) 2024-04-21 09:42:25 -07:00
test fix(build): use /usr/bin/env bash instead of /bin/bash (#1020) 2023-07-28 21:50:04 -07:00
.gitignore Make btrix helper work with microk8s (#768) 2023-04-18 08:50:46 -04:00
.pre-commit-config.yaml Add Repository Index + Chart Rename + Docs Rename (#1708) 2024-04-21 09:42:25 -07:00
btrix Add Repository Index + Chart Rename + Docs Rename (#1708) 2024-04-21 09:42:25 -07:00
CHANGES.md version: bump to 1.3.0 2023-02-24 18:07:56 -08:00
LICENSE Add License, Logo and README updates for release (#157) 2022-02-23 12:10:46 -08:00
mkdocs.yml Add superuser API endpoints to export and import org data (#1394) 2024-07-02 17:14:34 -04:00
NOTICE Add Repository Index + Chart Rename + Docs Rename (#1708) 2024-04-21 09:42:25 -07:00
pylintrc misc tweaks: 2021-08-25 18:34:49 -07:00
README.md Add Repository Index + Chart Rename + Docs Rename (#1708) 2024-04-21 09:42:25 -07:00
update-version.sh enable screenshots by default + fix py version formatting (#1518) 2024-02-07 17:07:28 -08:00
version.txt version: bump to 1.11.0-beta.0 2024-06-04 13:37:44 -07:00
yarn.lock Frontend collections beta UI (#886) 2023-06-06 17:52:01 -07:00

Browsertrix

 

Browsertrix is an open-source cloud-native high-fidelity browser-based crawling service designed to make web archiving easier and more accessible for everyone.

The service provides an API and UI for scheduling crawls and viewing results, and managing all aspects of crawling process. This system provides the orchestration and management around crawling, while the actual crawling is performed using Browsertrix Crawler containers, which are launched for each crawl.

See browsertrix.com for a feature overview and information about Browsertrix hosting.

Documentation

The full docs for using, deploying, and developing Browsertrix are available at: https://docs.browsertrix.com

Deployment

The latest deployment documentation is available at: https://docs.browsertrix.com/deploy

The docs cover deploying Browsertrix in different environments using Kubernetes, from a single-node setup to scalable clusters in the cloud.

Previously, Browsertrix also supported Docker Compose and podman-based deployment. This has been deprecated due to the complexity of maintaining feature parity across different setups, and with various Kubernetes deployment options being available and easy to deploy, even on a single machine.

Making deployment of Browsertrix as easy as possible remains a key goal, and we welcome suggestions for how we can further improve our Kubernetes deployment options.

If you are looking to just try running a single crawl, you may want to try Browsertrix Crawler first to test out the crawling capabilities.

Development Status

Browsertrix is currently in a beta, though the system and backend API is fairly stable, we are working on many additional features.

Additional developer documentation is available at https://docs.browsertrix.com/develop

Please see the GitHub issues and this GitHub Project for our current project plan and tasks.

License

Browsertrix is made available under the AGPLv3 License.

Documentation is made available under the Creative Commons Attribution 4.0 International License