Go to file
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
.github ci: Add a test for upgrading from 7.0. 2023-11-29 13:57:33 -08:00
.tx provision: Replace transifex-client with new transifex-cli. 2022-12-13 12:34:08 -08:00
.vscode vscode: Recommend remote development extension. 2021-11-03 16:03:46 -07:00
analytics support: Use shared template for current plan details on support views. 2023-12-06 11:01:26 -08:00
api_docs push-notifications: Update payload for realm name and event string. 2023-12-07 14:14:37 -08:00
confirmation remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
corporate remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
docs settings: Use original FREE_TRIAL_DAYS for cloud free trials. 2023-12-10 15:18:01 -08:00
help help: Tweak stream/group settings instructions for logged in users. 2023-12-08 23:36:24 -08:00
locale i18n: Update translation data from Transifex. 2023-12-10 15:48:05 -08:00
patches dependencies: Patch source-sans to correct format() for variable fonts. 2023-09-13 17:08:53 -07:00
pgroonga migrations: Import BaseDatabaseSchemaEditor from its canonical module. 2023-03-05 14:46:28 -08:00
puppet nginx: Limit the methods that we proxy to Tornado. 2023-12-08 09:23:30 -08:00
requirements requirements: Upgrade Python requirements. 2023-12-07 14:41:01 -08:00
scripts python: Use urlsplit instead of urlparse. 2023-12-05 13:03:07 -08:00
static static: Make unknown user avatar work on mobile. 2023-12-09 16:59:38 -08:00
stubs/taint actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
templates remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
tools remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
var/puppeteer puppeteer_tests: Port to TypeScript. 2021-02-22 16:03:10 -08:00
web setting: Allow changing "can_access_all_users_group" setting in prod. 2023-12-10 15:20:07 -08:00
zerver test_signup: Fix sender check in test_wrong_subdomain_i18n. 2023-12-10 15:48:05 -08:00
zilencer remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
zproject stripe: Separate activation of free trial for remote realm/server. 2023-12-10 15:18:01 -08:00
.codecov.yml
.codespellignore pygments: Place Default (light) and Monokai (dark) schemes. 2023-12-04 13:03:34 -08:00
.editorconfig editorconfig: Restore indent_size = 2 for Markdown. 2021-08-20 23:14:37 -07:00
.eslintignore web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
.eslintrc.json eslint: Forbid unchecked casts in TypeScript. 2023-10-26 09:54:30 -07:00
.gitattributes .gitattributes: Mark *.bmp, *.bson, *.mp3, *.pdf as binary. 2022-02-07 18:51:06 -08:00
.gitignore dev_settings: Allow user to override settings in a git-ignored file. 2023-12-04 09:50:14 -08:00
.gitlint lint: Update line-length for commit message to 72 in gitlint. 2023-05-01 10:35:52 -07:00
.mailmap mailmap: Deduplicate and update a few contributors. 2023-12-09 18:01:27 -08:00
.npmignore
.npmrc dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.prettierignore dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.pyre_configuration
.readthedocs.yaml readthedocs: Add a configuration file. 2023-02-03 16:36:54 -08:00
.sonarcloud.properties
CODE_OF_CONDUCT.md docs: Rename "private message" -> "direct message". 2023-06-23 14:36:16 -07:00
CONTRIBUTING.md contributor docs: Explain what to do if issue assignee is unresponsive. 2023-10-16 13:28:23 -07:00
Dockerfile-postgresql docs: Fix grammar errors found by mwic. 2023-10-09 13:24:09 -07:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
README.md docs: Update Ruff badge and links. 2023-10-26 15:51:46 -07:00
SECURITY.md docs: Update .html links pointing to "Upgrade Zulip" or "Modify Zulip". 2023-08-11 16:49:32 -07:00
Vagrantfile vagrant: Add Fedora 36 support. 2022-09-08 16:12:59 -07:00
manage.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
package.json dependencies: Upgrade JavaScript dependencies. 2023-12-07 14:29:32 -08:00
pnpm-lock.yaml dependencies: Upgrade JavaScript dependencies. 2023-12-07 14:29:32 -08:00
prettier.config.js prettier: Disable embedded language formatting for Markdown. 2021-08-20 23:14:37 -07:00
pyproject.toml docs: Update Ruff badge and links. 2023-10-26 15:51:46 -07:00
stylelint.config.js dependencies: Upgrade JavaScript dependencies. 2023-07-21 15:58:42 -07:00
tsconfig.json dependencies: Install `@types/jquery.validation for type annotation. 2023-08-14 16:00:20 -07:00
version.py requirements: Upgrade Python requirements. 2023-12-07 14:41:01 -08:00

README.md

Zulip overview

Zulip is an open-source team collaboration tool with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful. Fortune 500 companies, leading open source projects, and thousands of other organizations use Zulip every day. Zulip is the only modern team chat app that is designed for both live and asynchronous conversations.

Zulip is built by a distributed community of developers from all around the world, with 74+ people who have each contributed 100+ commits. With over 1000 contributors merging over 500 commits a month, Zulip is the largest and fastest growing open source team chat project.

Come find us on the development community chat!

GitHub Actions build status coverage status Mypy coverage Ruff code style: black code style: prettier GitHub release docs Zulip chat Twitter GitHub Sponsors

Getting started

You may also be interested in reading our blog, and following us on Twitter and LinkedIn.

Zulip is distributed under the Apache 2.0 license.