zulip/tools
Mateusz Mandera 423aebf98e remote_billing: Implement confirmation flow for RemoteRealm auth.
The way the flow goes now is this:
1. The user initiaties login via "Billing" in the gear menu.
2. That takes them to `/self-hosted-billing/` (possibly with a
   `next_page` param if we use that for some gear menu options).
3. The server queries the bouncer to give the user a link with a signed
   access token.
4. The user is redirected to that link (on `selfhosting.zulipchat.com`).
Now we have two cases, either the user is logging in for the first time
and already did in the past.
If this is the first time, we have:
5. The user is asked to fill in their email in a form that's shown,
   pre-filled with the value provided inside the signed access token.
   They POST this to the next endpoint.
6. The next endpoint sends a confirmation email to that address and asks
   the user to go check their email.
7. The user clicks the link in their email is taken to the
   from_confirmation endpoint.
8. Their initial RemoteBillingUser is created, a new signed link like in
   (3) is generated and they're transparently taken back to (4),
   where now that they have a RemoteBillingUser, they're handled
   just like a user who already logged in before:
If the user already logged in before, they go straight here:
9. "Confirm login" page - they're shown their information (email and
   full_name), can update
   their full name in the form if they want. They also accept ToS here
   if necessary. They POST this form back to
   the endpoint and finally have a logged in session.
10. They're redirected to billing (or `next_page`) now that they have
    access.
2023-12-10 16:15:28 -08:00
..
ci build-pgroonga: Upgrade PGroonga from 3.0.3 to 3.1.0. 2023-07-25 17:33:42 -07:00
documentation_crawler python: Use urlsplit instead of urlparse. 2023-12-05 13:03:07 -08:00
droplets python: Elide unnecessary list wrappers. 2023-09-13 12:41:23 -07:00
i18n sync-translations: Normalize translations to NFC. 2023-09-08 17:51:47 -07:00
lib remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
linter_lib analytics: Add copy email button for remote server support view. 2023-12-03 14:27:07 -08:00
node_lib node_tests: Move to web/tests. 2023-02-23 16:04:17 -08:00
oneclickapps tools: Use subprocess.check_call where appropriate. 2023-08-17 17:05:34 -07:00
setup emoji: Use individual images for fallback emoji instead of spritesheet. 2023-11-29 16:04:07 -08:00
test-install
tests mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
zulip-export
README.md
__init__.py
build-docs
build-release-tarball emails: Inline CSS in emails in build_email. 2023-04-05 12:22:29 -07:00
cache-zulip-git-version build-release-tarball: Override merge-base for full official releases. 2022-11-15 12:50:41 -08:00
check-capitalization tools: Use subprocess.check_call where appropriate. 2023-08-17 17:05:34 -07:00
check-frontend-i18n tools: Use subprocess.check_call where appropriate. 2023-08-17 17:05:34 -07:00
check-issue-labels ruff: Fix PERF401 Use a list comprehension to create a transformed list. 2023-08-07 17:23:55 -07:00
check-openapi dependencies: Upgrade JavaScript dependencies. 2023-12-07 14:29:32 -08:00
check-provision
check-schemas openapi: Add missing user property to deprecated user settings events. 2023-10-23 09:07:07 -07:00
check-templates check-templates: Check Django/Handlebars templates differently. 2023-10-11 17:53:07 -07:00
check-thirdparty check-thirdparty: License under GPLv2+. 2022-06-26 17:33:11 -07:00
clean-branches
commit-message-lint commit-message-lint: Take release branches into account. 2022-07-22 10:39:05 -07:00
commit-msg commit-msg: Don’t change the current directory for non-Vagrant. 2023-05-23 12:24:44 -07:00
conf.ini-template
coveragerc coverage: Clean up coverage configuration. 2023-05-31 13:53:04 -07:00
deploy-branch
diagnose provision: Avoid distutils; keep PROVISION_VERSION as a tuple. 2022-07-20 22:03:30 -07:00
documentation.vnufilter dependencies: Upgrade JavaScript dependencies. 2023-04-25 22:18:48 -07:00
duplicate_commits.json
fetch-contributor-data web: Save a needless 301 redirect from /team to /team/. 2023-03-24 14:51:01 -07:00
fetch-pull-request
fetch-rebase-pull-request
find-unused-css web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
generate-integration-docs-screenshot models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
lint lint: Fix semgrep scanning of extensionless Python scripts. 2023-09-28 14:19:50 -07:00
message-screenshot.js tools: Make screenshot tool work with the modern web client. 2023-07-17 09:23:01 -07:00
pre-commit
provision docs: Rename setup-vagrant.md -> setup-recommended.md. 2022-09-15 15:54:14 -07:00
push-to-pull-request scripts: Pass --retry 3 to curl. 2022-11-08 08:07:36 -08:00
rebuild-dev-database
rebuild-test-database
release release: Release 8.0-prereleases from `main`. 2023-07-06 16:16:11 -07:00
release-tarball-exclude.txt puppeteer_tests: Move to web/e2e-tests. 2023-02-23 16:04:17 -08:00
renumber-migrations ruff: Fix PIE808 Unnecessary `start` argument in `range`. 2023-09-01 14:57:01 -07:00
reset-to-pull-request
review python: Use Python 3.8 shlex.join function. 2022-04-27 12:57:49 -07:00
run-codespell dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
run-dev tornado: Fix autoreload for Tornado 6.4 changes. 2023-12-09 14:24:45 -08:00
run-mypy tools: Support running mypy daemon for better performance. 2022-07-06 17:33:13 -07:00
run-tsc
semgrep-py.yml models: Rename 'UserHotspot' model to 'OnboardingStep'. 2023-12-06 18:19:20 -08:00
setup-git-repo
show-profile-results
stop-run-dev
tail-ses ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
test-all install-shellcheck: Upgrade ShellCheck to 0.9.0. 2023-01-04 14:01:34 -08:00
test-api test_helpers: Rename reset_emails_in_zulip_realm. 2023-03-01 12:17:11 -08:00
test-backend test-backend: Ignore coverage for custom_dev_settings. 2023-12-06 12:04:10 -08:00
test-documentation
test-help-documentation
test-js-with-node settings: Remove "User groups" panel from settings overlay. 2023-12-07 06:35:38 -08:00
test-js-with-puppeteer puppeteer: Allow reruns in interactive mode when tests succeed. 2023-09-13 12:46:22 -07:00
test-locked-requirements
test-migrations
test-queue-worker-reload run-dev: Drop .py from script name. 2023-03-03 18:02:37 -08:00
test-run-dev run-dev: Drop .py from script name. 2023-03-03 18:02:37 -08:00
test-tools
total-contributions docs: Fix grammar errors found by mwic. 2023-10-09 13:24:09 -07:00
update-locked-requirements requirements: Remove unused mypy.txt lock file. 2022-09-08 11:08:06 -07:00
update-prod-static update-prod-static: Only run generate_landing_page_images if necessary. 2023-10-05 09:04:33 -07:00
update-zuliprc-api-field
upload-release upload-release: Update SHA256SUM for existing files if changed. 2023-01-23 17:41:29 -08:00
webpack ruff: Fix FLY002 Consider f"…" instead of string join. 2023-08-07 17:12:41 -07:00
zanitizer
zanitizer_config.pm.sample

README.md

This directory contains scripts that are used in building, managing, testing, and other forms of work in a Zulip development environment. Note that tools that are also useful in production belong in scripts/ or should be Django management commands.

For more details, see https://zulip.readthedocs.io/en/latest/overview/directory-structure.html.