Skip to content

Commit 9510a69

Browse files
Update Business docs (#11635)
* Update Business docs The main update here is a set of common approaches to customer sharing, and made the Privacy Levels doc make more sense. I also went through and patched up a few other pages * Apply suggestions from code review Co-authored-by: Manuel Kaufmann <[email protected]> * Address feedback --------- Co-authored-by: Manuel Kaufmann <[email protected]>
1 parent 06ebe40 commit 9510a69

File tree

5 files changed

+134
-66
lines changed

5 files changed

+134
-66
lines changed

docs/user/commercial/index.rst

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,22 @@ Business hosting
44
.. this page is currently moving towards becoming "About Read the Docs for Business"
55
.. rather than an index of features.
66
7-
We offer |com_brand| for building and hosting commercial documentation.
7+
We offer |com_brand| for building and hosting documentation for private repositories.
88

9-
Our commercial solutions are provided as a set of subscriptions that are paid and managed through an online interface.
10-
In order to get started quickly and easily, a `trial option <https://about.readthedocs.com/pricing/>`__ is provided free of charge.
9+
In order to get started quickly, you can start a `free 30-day trial <https://about.readthedocs.com/pricing/>`__ to test out the platform.
1110

1211
.. seealso::
1312

14-
`Read the Docs website: Features <https://about.readthedocs.com/about/>`__
15-
A high-level overview of platform features is available on our website, and the
13+
`Read the Docs features <https://about.readthedocs.com/features/>`__
14+
A high-level overview of platform features, and the
1615
`pricing page <https://about.readthedocs.com/pricing/>`__ has a feature breakdown by subscription level.
1716

18-
`Read the Docs website: Company <https://about.readthedocs.com/company/>`__
19-
Information about the company running Read the Docs, including our mission, team, and community.
20-
21-
2217
Commercial documentation solutions
2318
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2419

2520
In addition to providing the same features as |org_brand|,
2621
commercial subscriptions to Read the Docs add additional features and run on separate infrastructure.
2722

28-
.. figure:: /img/community_in_business.png
29-
:align: center
30-
:scale: 50%
31-
32-
Read the Docs for Community and Business are a combined system:
33-
All features developed for community benefit the business solution, and most solutions developed for business users
34-
are implemented for the community.
35-
3623
The following list is a high-level overview of the areas covered by |com_brand|.
3724
If you want a full feature breakdown, please refer to our `pricing page <https://about.readthedocs.com/pricing/>`__.
3825

@@ -42,13 +29,6 @@ Private repositories and private documentation
4229
to restrict documentation access to certain users,
4330
or to share private documentation via private hyperlinks.
4431

45-
Additional build resources
46-
Do you have a complicated build process that uses large amounts
47-
of CPU, memory, disk, or networking resources?
48-
Commercial subscriptions offer more resources
49-
which results in faster documentation build times.
50-
We can also customize builders, such as with a GPU or multiple CPUs.
51-
5232
Priority support
5333
We have a dedicated support team that responds to support requests during business hours.
5434

docs/user/commercial/organizations.rst

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,20 @@ Organizations
33

44
.. include:: /shared/admonition-rtd-business.rst
55

6-
In this article, we explain how the *organizations* feature on Read the Docs allows you to manage access to your projects.
6+
In this article, we explain how the *organizations* feature allows you to manage access to your projects.
77
On |com_brand|, your account is linked to an *organization*.
88
Organizations allow you to define both individual and team permissions for your projects.
99

10-
In this article, we use ACME Corporation as our example organization.
11-
ACME has a few people inside their organization,
12-
some who need full access and some who just need access to one project.
13-
1410
.. seealso::
1511

1612
:doc:`/guides/manage-read-the-docs-teams`
1713
A step-by-step guide to managing teams.
1814

19-
Member types
20-
~~~~~~~~~~~~
15+
Important objects
16+
~~~~~~~~~~~~~~~~~
2117

22-
* **Owners** -- Get full access to both view and edit the Organization and all Projects
23-
* **Members** -- Get access to a subset of the Organization projects
18+
* **Owners** -- Get full access to both view and edit the organization and all projects
19+
* **Members** -- Get access to a subset of the organization projects
2420
* **Teams** -- Where you give members access to a set of projects.
2521

2622
The best way to think about this relationship is:
@@ -35,10 +31,10 @@ The best way to think about this relationship is:
3531
Team types
3632
~~~~~~~~~~
3733

38-
You can create two types of Teams:
34+
You can create two types of teams:
3935

40-
* **Admins** -- These teams have full access to administer the projects in the team. They are allowed to change all of the settings, set notifications, and perform any action under the **Admin** tab.
41-
* **Read Only** -- These teams are only able to read and search inside the documents.
36+
* **Admin** -- Team members have full access to administer the projects assigned to the team. Members are allowed to change all of the settings, set notifications, and perform any action under the :guilabel:`Admin` tab for each project.
37+
* **Read Only** -- Team members are only able to read the documentation of each project, and not able to change anything about each project.
4238

4339
Example
4440
~~~~~~~
Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,44 @@
1-
.. TODO: This is a super weird page..
1+
Privacy Levels
2+
--------------
23

3-
:orphan:
4+
.. include:: /shared/admonition-rtd-business.rst
45

5-
Project privacy level
6-
---------------------
6+
Privacy levels allow you to set the visibility of your project and its versions.
7+
This allows you to specify what information is available to the public and what is private.
8+
Privacy can be controlled at the level of the project and each version,
9+
and nothing more granular (eg. specific directories or URLs) can be controlled.
710

8-
.. include:: /shared/admonition-rtd-business.rst
11+
Project privacy
12+
~~~~~~~~~~~~~~~
913

1014
By default, only users that belong to your organization can see the dashboard of your project and its builds.
11-
If you want users outside your organization and anonymous users to be able to see the dashboard of your project,
15+
If you want users outside your organization to be able to see the dashboard of your project,
1216
and the build output of *public versions* you can set the privacy level of your project to ``Public``.
1317

14-
You can administer this in your :term:`dashboard` by navigating to :menuselection:`Admin --> Settings`
18+
You can set the project privacy level in your :term:`dashboard` by navigating to :menuselection:`Admin --> Settings`
1519
and changing :guilabel:`Privacy level` to `Public`.
1620

17-
.. note::
21+
**Making a project public doesn't give access to any versions.**
22+
So if you want all your versions to be accessible,
23+
you need to configure those to be `Public` as well.
24+
25+
Version privacy
26+
~~~~~~~~~~~~~~~
27+
28+
Each version of your documentation can be set to either `Public` or `Private`.
29+
This allows you to control who can see the documentation for a specific version.
30+
31+
* Documentation for public versions is visible to everyone.
32+
* Private versions are available only to people who have permissions to see them.
33+
They will not display on any list view, and will 404 when visited by people without viewing permissions.
34+
If you want to share your docs temporarily, see :doc:`/commercial/sharing`.
35+
36+
You can set the privacy level for each version in your :term:`dashboard` by navigating to :menuselection:`Versions --> $version ... Drop down --> Configure version` and changing :guilabel:`Privacy level` to `Public`.
37+
38+
Recommended workflow
39+
~~~~~~~~~~~~~~~~~~~~
1840

19-
To control access to the documentation itself,
20-
see :ref:`versions:Version states`.
41+
We recommend defaulting everything to private,
42+
and only making versions public when you are ready to share them with the world.
43+
This allows you to work on your documentation in private,
44+
and only share it when you are ready.

docs/user/commercial/sharing.rst

Lines changed: 87 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,44 @@ Sharing private documentation
33

44
.. include:: /shared/admonition-rtd-business.rst
55

6-
You can share your project with users outside of your company:
6+
Sharing private documentation is useful for giving quick access to your documentation to users outside of your organization.
7+
It allows you to share specific projects or versions of a project with users who don't have access to your organization.
78

8-
* by sending them a *secret link*,
9-
* by giving them a *password*.
9+
Common sharing use cases include:
1010

11-
These methods will allow them to view specific projects or versions of a project inside your organization.
11+
* Sharing a project with contractors or partners.
12+
* Sharing documentation for your product only to specific customers.
13+
* Embedding documentation in a SaaS application dashboard.
1214

13-
Additionally, you can use a HTTP Authorization Header.
14-
This is useful to have access from a script.
15-
16-
Enabling sharing
17-
----------------
15+
Creating a shared item
16+
----------------------
1817

1918
* Go into your project's :guilabel:`Admin` page and click on :guilabel:`Sharing`.
2019
* Click on :guilabel:`New Share`
2120
* Select access type (secret link, password, or HTTP header token),
22-
add an expiration date and a *Description* so you remember who you're sharing it with.
21+
add an expiration date and a *Description* to help with managing access in the future.
2322
* Check ``Allow access to all versions?`` if you want to grant access to all versions,
2423
or uncheck that option and select the specific versions you want grant access to.
2524
* Click :guilabel:`Save`.
2625
* Get the info needed to share your documentation with other users:
2726

28-
* If you have selected secret link, copy the link that is generated
29-
* In case of password, copy the link and password
30-
* For HTTP header token, you need to pass the ``Authorization`` header in your HTTP request.
27+
* **Secret link:** copy the link that is generated
28+
* **Password:** copy the link and password
29+
* **HTTP header token**: Copy the token, and then pass the ``Authorization`` header in your HTTP request.
3130

3231
* Give that information to the person who you want to give access.
3332

3433
.. note::
3534

36-
You can always revoke access in the same panel.
35+
You can always revoke access by removing the sharing item in this page.
3736

3837
Sharing methods
3938
---------------
4039

4140
Secret link
4241
***********
4342

44-
Once the person you send the link to clicks the link,
43+
Once the person you send the link to clicks it,
4544
they will have access to the documentation while their browser window is open.
4645

4746
If you want to link to a specific page,
@@ -58,7 +57,7 @@ Password
5857

5958
Once the person you send the link to clicks on the link, they will see
6059
an *Authorization required* page asking them for the password you
61-
generated. When the user enters the password, they will have access to
60+
generated. When the user enters the password, they will gain access to
6261
view your project.
6362

6463
.. tip::
@@ -77,12 +76,12 @@ Token Authorization
7776
~~~~~~~~~~~~~~~~~~~
7877

7978
You need to send the ``Authorization`` header with the token on each HTTP request.
80-
The header has the form ``Authorization: Token <ACCESS_TOKEN>``.
79+
The header has the form ``Authorization: Token <TOKEN>``.
8180
For example:
8281

8382
.. prompt:: bash $
8483

85-
curl -H "Authorization: Token 19okmz5k0i6yk17jp70jlnv91v" https://docs.example.com/en/latest/example.html
84+
curl -H "Authorization: Token $TOKEN" https://docs.example.com/en/latest/example.html
8685

8786
Basic Authorization
8887
~~~~~~~~~~~~~~~~~~~
@@ -92,4 +91,73 @@ For example:
9291

9392
.. prompt:: bash $
9493

95-
curl --url https://docs.example.com/en/latest/example.html --user '19okmz5k0i6yk17jp70jlnv91v:'
94+
curl --url https://docs.example.com/en/latest/example.html --user '$TOKEN:'
95+
96+
97+
Typical sharing configurations
98+
------------------------------
99+
100+
There are a few common ways to architect sharing,
101+
with trade offs between them,
102+
and you should choose the one that best fits your use case.
103+
104+
Bulk passwords
105+
**************
106+
107+
If you want to limit access to a group of users,
108+
you can create a password for each user,
109+
and then share the password with them.
110+
This allows users to access the documentation directly,
111+
but requires more management on your end.
112+
Any time a new user needs access or you want to remove access,
113+
you will need to generate a new password for them.
114+
115+
Authenticated redirect
116+
**********************
117+
118+
If you want to share documentation with a group of users,
119+
you need to authenticate those users against your own system first.
120+
The simplest way to do this is to create an authenticated redirect on your site,
121+
which then redirects to the Read the Docs :ref:`Secret link`.
122+
123+
This should require very little customization,
124+
and will ensure that only authenticated users can access the documentation.
125+
The downside is that users won't be able to access the documentation directly from a bookmark,
126+
and will have to go through your site first.
127+
128+
Authenticated proxy
129+
*******************
130+
131+
If you want a more transparent experience for your users,
132+
you can create a proxy that authenticates users against your system,
133+
and then proxies the request to Read the Docs.
134+
This is more complex to set up,
135+
but will allow users to access the documentation directly from a bookmark,
136+
137+
This approach would use a :ref:`HTTP Authorization Header` to authenticate users,
138+
and would be configured in your proxy server.
139+
140+
Proxy example
141+
-------------
142+
143+
Below is an example of how to configure Nginx to proxy requests to Read the Docs while adding the token in the `Authorization` header.
144+
145+
.. code-block:: nginx
146+
147+
server {
148+
listen 80;
149+
server_name docs.example.com;
150+
151+
location / {
152+
proxy_pass https://docs-example.readthedocs-hosted.com;
153+
154+
# Add Authorization header with the token
155+
proxy_set_header Authorization "Token <TOKEN>";
156+
157+
# Optionally forward other headers
158+
proxy_set_header Host $host;
159+
proxy_set_header X-Real-IP $remote_addr;
160+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
161+
proxy_set_header X-Forwarded-Proto $scheme;
162+
}
163+
}

docs/user/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ Read the Docs: documentation simplified
8383
:hidden:
8484
:caption: Business features
8585

86-
/commercial/index
8786
/commercial/organizations
8887
/commercial/single-sign-on
8988
/commercial/sharing
9089
/commercial/subscriptions
90+
/commercial/privacy-levels
9191

9292
.. toctree::
9393
:maxdepth: 2

0 commit comments

Comments
 (0)