# Publish Password-protected Slide Decks
!> To unlock online publishing features for your slide decks [activate paid service](https://gitpitch.com/pricing).
Password-protected publishing is ideal for managing secure access to business confidential content, including paid training content. Password-protected publishing is also known as *confidential mode*.
### Publish 4.0
To publish a [4.0 slide deck](/whats-new-in-40.md) to the cloud you *must* activate the `gitpitch` setting in the [PITCHME.yaml](/conventions/pitchme-yaml.md) for your deck as shown here:
```yaml
gitpitch : 4.0
```
When activated as shown your slide deck can be published and shared in the cloud on **gitpitch.com**.
### Using Public Repos
Password-protected publishing is not supported within *public* repositories.
### Using Private Repos
To publish a password-protected slide deck using a *private* repository on GitHub, GitLab, or Bitbucket you must activate the `confidential` setting in the [PICHTME.yaml](/conventions/pitchme-yaml.md) for your deck. The confidential setting accepts a comma-separated list of one or more confidential-tokens. A token can be any arbitrary string value you define.
The following *PITCHME.yaml* snippet demonstrates a single value on the `confidential` setting:
```yaml
confidential: 82428
```
The following *PITCHME.yaml* snippet demonstrates multiple values on the `confidential` setting:
```yaml
confidential: 82428, G!tMag!c, Acce$$
```
Note, all confidential tokens are case-sensitive.
Once activated, `git-push` your presentation files on any branch. Any attempt to access your password-protected slide deck in the cloud is now automatically intercepted. The viewer is presented with a password challenge form. Only when the viewer inputs a valid confidential token as password into the form can they proceed to view the slide deck itself.
?> Any attempt to access a password-protected slide deck without a valid token is denied.
Password-protected token management is as simple as adding and removing tokens on the `confidential` setting in your PITCHME.yaml file. Managing tokens in this way gives you the ability to define and manage your audience over time.
### Password-Protected URLs
The following snippets demonstrate the basic structure of confidential slide deck URLs on **gitpitch.com**. Decks can be uniquely identified using PITCHME.md paths, branch names, tag names, and commit ids.
?> If the files for your slide deck are maintained within a branch named **master** you can omit the branch name from the URL for your slide deck. All other branches require the branch name to be specified on the URL.
#### ** GitHub Deck**
```bash
# The default slide deck in the acmecorp/tech-talk repo, branch named "master".
https://gitpitch.com/acmecorp/tech-talk
# The default slide deck in the acmecorp/tech-talk repo, branch named "main".
https://gitpitch.com/acmecorp/tech-talk/main
# The default slide deck in the acmecorp/tech-talk repo, branch named "dev".
https://gitpitch.com/acmecorp/tech-talk/dev
# The coding/intro slide deck in the acmecorp/tech-talk repo, branch named "master".
https://gitpitch.com/acmecorp/tech-talk/master?p=coding/intro
# The coding/intro slide deck in the acmecorp/tech-talk repo, at tagX.
https://gitpitch.com/acmecorp/tech-talk/tagX?p=coding/intro
# The coding/intro slide deck in the acmecorp/tech-talk repo, at commitX.
https://gitpitch.com/acmecorp/tech-talk/commitX?p=coding/intro
```
#### ** GitLab Deck**
```bash
# The default slide deck in the acmecorp/tech-talk repo, branch named "master".
https://gitpitch.com/acmecorp/tech-talk?grs=gitlab
# The default slide deck in the acmecorp/tech-talk repo, branch named "main".
https://gitpitch.com/acmecorp/tech-talk/main?grs=gitlab
# The default slide deck in the acmecorp/tech-talk repo, branch named "dev".
https://gitpitch.com/acmecorp/tech-talk/dev?grs=gitlab
# The coding/intro slide deck in the acmecorp/tech-talk repo, branch named "master".
https://gitpitch.com/acmecorp/tech-talk/master?grs=gitlab&p=coding/intro
# The coding/intro slide deck in the acmecorp/tech-talk repo, at tagX.
https://gitpitch.com/acmecorp/tech-talk/tagX?grs=gitlab&p=coding/intro
# The coding/intro slide deck in the acmecorp/tech-talk repo, at commitX.
https://gitpitch.com/acmecorp/tech-talk/commitX?grs=gitlab&p=coding/intro
```
#### ** Bitbucket Deck**
```bash
# The default slide deck in the acmecorp/tech-talk repo, branch named "master".
https://gitpitch.com/acmecorp/tech-talk?grs=bitbucket&s=sneakpEEk
# The default slide deck in the acmecorp/tech-talk repo, branch named "main".
https://gitpitch.com/acmecorp/tech-talk/main?grs=bitbucket&s=sneakpEEk
# The default slide deck in the acmecorp/tech-talk repo, branch named "dev".
https://gitpitch.com/acmecorp/tech-talk/dev?grs=bitbucket&s=sneakpEEk
# The coding/intro slide deck in the acmecorp/tech-talk repo, branch named "master".
https://gitpitch.com/acmecorp/tech-talk/master?grs=bitbucket&p=coding/intro
# The coding/intro slide deck in the acmecorp/tech-talk repo, at tagX.
https://gitpitch.com/acmecorp/tech-talk/tagX?grs=bitbucket&p=coding/intro
# The coding/intro slide deck in the acmecorp/tech-talk repo, at commitX.
https://gitpitch.com/acmecorp/tech-talk/commitX?grs=bitbucket&p=coding/intro
```
### Settings Policy
[YAML Policy](../_snippets/yaml-private-policy.md ':include')
### Form Customization
As noted, when confidential mode is activated any attempt to access the slide deck is intercepted. The viewer is automatically presented with a password challenge form. The default challenge form renders as follows:
![Sample cloud publishing challenge form](../_images/gitpitch-cloud-confidential-1.png)
The default form can be entirely re-branded to reflect your product, service,
or content using a set of `pro-*` settings in your [PITCHME.yaml](/conventions/pitchme-yaml.md). For example, you can specify `none` on the `pro-background` setting:
```yaml
pro-background : none
```
When `none` is set on this property the default background image is hidden as shown here:
![Sample cloud publishing challenge form](../_images/gitpitch-cloud-confidential-2.png)
As you can see the default background color is `black`. The
`pro-background-color` setting is provided for a quick and easy way to
activate a custom background color. For example:
```yaml
pro-background : none
pro-background-color : "#3686E4"
```
These sample settings render as follows:
![Sample cloud publishing challenge form](../_images/gitpitch-cloud-confidential-3.png)
The `pro-background-color` setting can also be used to activate a
background color gradient using any valid CSS
[linear-gradient](https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient)
value, for example:
```yaml
pro-background : none
pro-background-color : "linear-gradient(to right top, #051937, #004d7a, #008793);"
```
These sample settings render as follows:
![Sample cloud publishing challenge form](../_images/gitpitch-cloud-confidential-4.png)
Here is an example of how you can customize the title, subtitle, logo, and
background image for this form using the set of pro-* settings in
your PITCHME.yaml:
```yaml
# Tokens
confidential : 54321, GitMagic, earlyacce$$
# Customizations
pro-title : "Tech Training 2020"
pro-subtitle : "Leverage the Power of Git"
pro-contact : "Please use the password token provided."
pro-logo : assets/img/logo.png
pro-background : assets/img/robot.jpg
```
These sample settings render as follows:
![Sample cloud publishing challenge form](../_images/gitpitch-cloud-confidential-custom.png)
Further customization of the challenge form can be achieved using custom CSS in the [same way](theme/custom-css.md) you can activate custom CSS for your slide decks. The following CSS snippet identifies the set of customizable CSS ID selectors for the challenge form along with some sample values:
```css
#pro-background {
opacity: 0.9 !important;
}
#pro-logo {
max-height: 3em;
}
#pro-title {
font-size: 1.1em;
}
#pro-subtitle {
color: lightgray;
}
#pro-enter {
background: #e49436;
border-color: #e49436;
}
#pro-contact {
display: none;
}
```