Legalpad User Guide
Phabricator User Documentation (Application User Guides)

Using Legalpad to track agreements and signatures on legal documents.


Legalpad is a simple application for tracking signatures on legal agreements. You can add legal documents, users can sign them, and you can keep track of who has signed what.

Right now, it is primarily useful for open source projects that have a Contributor License Agreement or a similar document which needs to be signed before changes can be accepted from contributors. In particular, it has integrations into Differential which can block changes from being accepted until the author has signed the required documents.

NOTE: Legalpad is a basic application, and missing many of the features of more general document signing software. It may be useful to help you do things beyond track CLAs, but you should evaluate its capabilities carefully.


The primary object in legalpad is the Legalpad Document, which represents a written agreement, contract, policy, or other similar document.

Most fields of a document are relatively straightforward, but some are unique to the application:

Who Should Sign? This field controls what kind of signatures the document accepts. You can choose either Individuals (users will be prompted to sign with their name), Corporations (users will be prompted to enter information identifying the corporation they are signing on behalf of) or No One (for policy documents or other documents which do not require a signature).

Require Signature This field allows you to create a document which all of your users must sign before they can use Phabricator, like a terms of service document. See "Use Case: Terms of Service" below for details. These documents must be signable by individuals.

Use Case: Requiring a CLA

Open source projects often require contributors to sign a license agreement before their contributions can be accepted to the project. To require a CLA or similar document for an open source project:

  • Create a CLA document in Legalpad.
  • Create a "Global" Herald rule which triggers "Always".
  • The rule should take the action "Require legal signatures", specifying your CLA document as the required document.

After you've done this, all new reviews created in Differential by authors who have not signed the document will trigger a signature requirement. These reviews can not be accepted until the document has been signed.

The content of these revisions will also be hidden until the document has been signed. This prevents reviewers from being tainted by examining the changes if the author ultimately declines to sign the CLA.

If the author has already signed all of the required documents, Herald will not take any actions. This reduces the amount of noise the CLA process generates for regular contributors.

You can require more than one document (to require that they all be signed), if you have several agreements that contributors must sign.

Alternatively, if you have several different sets of agreements for different projects, you can also choose a more narrow Herald condition than "Always" (for example, require a signature only if the revision is against certain repositories).

Use Case: Terms of Service

If you have a "Terms of Service" document that you'd like users to agree to before they're allowed to use your install, you can add it to Legalpad and then check the Require Signature box for the document.

After logging in, users will need to agree to the document before they can do other things with their account (you'll need to agree to it, too, as soon as you save your changes, so that will give you a sense of the workflow).

Note that although users who have not signed all of the required documents can not use most Phabricator functions, they can browse other Legalpad documents that they have permission to see. This allows a terms document to be supplemented with additional policy or guideline documents that users are free to review before agreeing to the terms.

Use Case: Document-Based Policies

If you have a document like an NDA, you can write a policy rule which prevents users from seeing content until they sign the document:

  • In any policy control ("Visible To", "Editable By"), choose "Custom Policy".
  • Add a rule like "Allow signers of legalpad documents: X".
  • Leave the default rule as "Deny all other users".
  • Save the policy.

Users will now only be able to take the action (for example, view or edit the object) if they have signed the specified documents.

Adding Exemptions

If you have users who have signed an alternate form of a document (for example, you have a hard copy on file), or an equivalent document, or who are otherwise exempt from needing to sign a document in Legalpad, you can add a signature exemption for them.

Other applications will treat users with a signature exemption as though they had signed the document, although the UI will show the signature as an exemption rather than a normal signature.

To add an exemption, go to Manage Document, then View Signatures, then Add Signature Exemption.

You can optionally add notes about why a user is exempt from signing a document. To review the notes later (and see who added the exemption), click the colored asterisk in the list view.


You can find discussion about the Legalpad roadmap here:

If there are features you'd like to see, let us know.