<commit_before>---
layout: page
title: Procedure to add campus
permalink: /procedure-to-add-campus/
---

This procedure assumes that the campus has already set up DNS entries and provided certificates per the instructions for campus integration.

1. Install the campus-provided certificates under /dash/ssl/[certificate expiration date] for each environment. The date should be in the form YYYY-MM-DD.

2. Add a Discovery Response endpoint to the Shibboleth metadata for each environment (dev/stg/production)

example: https://dash-dev.lib.uci.edu/Shibboleth.sso/Login

3. Add Assertion Consumer Service endpoints for SAML 2.0 Browser Post, SAML 2.0 Browser Artifact, SAML 1.0 Browser Post, and SAML 1.0 Browser Artifact to the Shibboleth metadata for each environment (dev/stg/production)

examples:

Index: 25
Type: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML2/POST
Index: 26
Type: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact
Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML2/Artifact
Index: 27
Type: urn:oasis:names:tc:SAML:1.0:profiles:browser-post
Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML/POST
Index: 28
Type: urn:oasis:names:tc:SAML:1.0:profiles:artifact-01
Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML/Artifact

4. For each environment, edit the correct .yaml file for the host to set up the Vhost using Puppet. The .yaml files are best edited as <EMAIL>. The files live under /dpr2/etc/infra-puppet/hiera/node/[fqdn].yaml. This is most easily accomplished by copy-and-pasting an existing campus configuration block.

Example:

/dpr2/etc/infra-puppet/hiera/node/uc3-datashare-dev.cdlib.org.yaml

  vhost_ucla:
    path: "apps/apache/conf"
    script_type: template
    user: "dash"
    script: "vhost-dash-ucla-dev.cdlib.org.conf"
    mytemplate: "vhost-dash-dev.conf"
    myvhostname: "dash-ucla-dev.cdlib.org"
    mydocroot: "/dash/apps/apache/htdocs/dev.dash.ucla.edu"
    mycert: "/dash/ssl/2017-08-17/dash_ucla_edu_cert.cer"
    mykey: "/dash/ssl/2017-08-17/dash.ucla.edu-san.key"
    myidpshort: "ucla"
    myothercampuses:
      - { myothercampusidp: "urn:mace:incommon:ucop.edu", myothercampushost: dash-dev.ucop.edu }
      - { myothercampusidp: "urn:mace:incommon:berkeley.edu", myothercampushost: dash-dev.berkeley.edu }
    permissions: "0644"

5. Update the 'myothercampuses' field for all the other campuses to include the new campus.

6. Be certain the campus setup data in the .yaml file exists under both the section for Dash and the section for Root usage. Copy-and-paste the finished configuration block.

7. Do a git commit and push to send the new .yaml file to the git repository master. A script called /dpr2/bin/push.bash automates this process. Just provide a commit message.

8. Log on to each Dash server as the dash user and do the following:

cd /dash/etc/infra-puppet
git pull
/dash/bin/commit.bash

This will pull in the Puppet configuration created in steps 4-7, create the new campus vhost, and update the vhost-base.conf file to include the new campus vhost.

9. /dash/apps/apache/bin/apachectl restart to read in the new config. The new campus site should now be active.<commit_msg>update procedure for code blocks<commit_after>---
layout: page
title: Procedure to add campus
permalink: /procedure-to-add-campus/
---

---
layout: page
title: Procedure to add campus
permalink: /procedure-to-add-campus/
---

This procedure assumes that the campus has already set up DNS entries and provided certificates per the instructions for campus integration.

1. Install the campus-provided certificates under /dash/ssl/[certificate expiration date] for each environment. The date should be in the form YYYY-MM-DD.

2. Add a Discovery Response endpoint to the Shibboleth metadata for each environment (dev/stg/production). Example: https://dash-dev.lib.uci.edu/Shibboleth.sso/Login

3. Add Assertion Consumer Service endpoints for SAML 2.0 Browser Post, SAML 2.0 Browser Artifact, SAML 1.0 Browser Post, and SAML 1.0 Browser Artifact to the Shibboleth metadata for each environment (dev/stg/production). Examples:
````
    Index: 25
    Type: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
    Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML2/POST
    Index: 26
    Type: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact
    Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML2/Artifact
    Index: 27
    Type: urn:oasis:names:tc:SAML:1.0:profiles:browser-post
    Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML/POST
    Index: 28
    Type: urn:oasis:names:tc:SAML:1.0:profiles:artifact-01
    Location: https://dash.ucmerced.edu/Shibboleth.sso/SAML/Artifact
````

4. For each environment, edit the correct .yaml file for the host to set up the Vhost using Puppet. The .yaml files are best edited as <EMAIL>. The files live under /dpr2/etc/infra-puppet/hiera/node/[fqdn].yaml. This is most easily accomplished by copy-and-pasting an existing campus configuration block. Example:
````
/dpr2/etc/infra-puppet/hiera/node/uc3-datashare-dev.cdlib.org.yaml
  vhost_ucla:
    path: "apps/apache/conf"
    script_type: template
    user: "dash"
    script: "vhost-dash-ucla-dev.cdlib.org.conf"
    mytemplate: "vhost-dash-dev.conf"
    myvhostname: "dash-ucla-dev.cdlib.org"
    mydocroot: "/dash/apps/apache/htdocs/dev.dash.ucla.edu"
    mycert: "/dash/ssl/2017-08-17/dash_ucla_edu_cert.cer"
    mykey: "/dash/ssl/2017-08-17/dash.ucla.edu-san.key"
    myidpshort: "ucla"
    myothercampuses:
      - { myothercampusidp: "urn:mace:incommon:ucop.edu", myothercampushost: dash-dev.ucop.edu }
      - { myothercampusidp: "urn:mace:incommon:berkeley.edu", myothercampushost: dash-dev.berkeley.edu }
    permissions: "0644"
````

5. Update the 'myothercampuses' field for all the other campuses to include the new campus.

6. Be certain the campus setup data in the .yaml file exists under both the section for Dash and the section for Root usage. Copy-and-paste the finished configuration block.

7. Do a git commit and push to send the new .yaml file to the git repository master. A script called /dpr2/bin/push.bash automates this process. Just provide a commit message.

8. Log on to each Dash server as the dash user and do the following:
````
cd /dash/etc/infra-puppet
git pull
/dash/bin/commit.bash
````
This will pull in the Puppet configuration created in steps 4-7, create the new campus vhost, and update the vhost-base.conf file to include the new campus vhost.

9. /dash/apps/apache/bin/apachectl restart to read in the new config. The new campus site should now be active.

{'fraction_non_alphanumeric': 0.10350030175015087, 'fraction_numerical': 0.019010259505129752, 'mean_word_length': 4.01058201058201, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5971044', 'n_tokens_mistral': 2368, 'n_tokens_neox': 2223, 'n_words': 692}