mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-14 21:44:08 +02:00
Merge remote-tracking branch 'origin/main' into rh/706-withdrawn-email-confirmation
This commit is contained in:
commit
65699d7436
16 changed files with 76 additions and 20 deletions
|
@ -37,7 +37,7 @@ cf login -a api.fr.cloud.gov --sso
|
||||||
- [ ] Optional- add yourself as a codeowner if desired. See the [Developer readme](https://github.com/cisagov/getgov/blob/main/docs/developer/README.md) for how to do this and what it does.
|
- [ ] Optional- add yourself as a codeowner if desired. See the [Developer readme](https://github.com/cisagov/getgov/blob/main/docs/developer/README.md) for how to do this and what it does.
|
||||||
|
|
||||||
### Steps for the onboarder
|
### Steps for the onboarder
|
||||||
- [ ] Add the onboardee to cloud.gov org (cisa-getgov-prototyping)
|
- [ ] Add the onboardee to cloud.gov org (cisa-dotgov)
|
||||||
- [ ] Setup a [developer specific space for the new developer](#setting-up-developer-sandbox)
|
- [ ] Setup a [developer specific space for the new developer](#setting-up-developer-sandbox)
|
||||||
- [ ] Add the onboardee to our login.gov sandbox team (`.gov Registrar`) via the [dashboard](https://dashboard.int.identitysandbox.gov/)
|
- [ ] Add the onboardee to our login.gov sandbox team (`.gov Registrar`) via the [dashboard](https://dashboard.int.identitysandbox.gov/)
|
||||||
|
|
||||||
|
|
3
.github/workflows/deploy-sandbox.yaml
vendored
3
.github/workflows/deploy-sandbox.yaml
vendored
|
@ -18,6 +18,7 @@ jobs:
|
||||||
|| startsWith(github.head_ref, 'za/')
|
|| startsWith(github.head_ref, 'za/')
|
||||||
|| startsWith(github.head_ref, 'rh/')
|
|| startsWith(github.head_ref, 'rh/')
|
||||||
|| startsWith(github.head_ref, 'nl/')
|
|| startsWith(github.head_ref, 'nl/')
|
||||||
|
|| startsWith(github.head_ref, 'dk/')
|
||||||
outputs:
|
outputs:
|
||||||
environment: ${{ steps.var.outputs.environment}}
|
environment: ${{ steps.var.outputs.environment}}
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-latest"
|
||||||
|
@ -52,7 +53,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
||||||
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
||||||
cf_org: cisa-getgov-prototyping
|
cf_org: cisa-dotgov
|
||||||
cf_space: ${{ env.ENVIRONMENT }}
|
cf_space: ${{ env.ENVIRONMENT }}
|
||||||
push_arguments: "-f ops/manifests/manifest-${{ env.ENVIRONMENT }}.yaml"
|
push_arguments: "-f ops/manifests/manifest-${{ env.ENVIRONMENT }}.yaml"
|
||||||
comment:
|
comment:
|
||||||
|
|
2
.github/workflows/deploy-stable.yaml
vendored
2
.github/workflows/deploy-stable.yaml
vendored
|
@ -36,6 +36,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
cf_username: ${{ secrets.CF_STABLE_USERNAME }}
|
cf_username: ${{ secrets.CF_STABLE_USERNAME }}
|
||||||
cf_password: ${{ secrets.CF_STABLE_PASSWORD }}
|
cf_password: ${{ secrets.CF_STABLE_PASSWORD }}
|
||||||
cf_org: cisa-getgov-prototyping
|
cf_org: cisa-dotgov
|
||||||
cf_space: stable
|
cf_space: stable
|
||||||
push_arguments: "-f ops/manifests/manifest-stable.yaml"
|
push_arguments: "-f ops/manifests/manifest-stable.yaml"
|
||||||
|
|
2
.github/workflows/deploy-staging.yaml
vendored
2
.github/workflows/deploy-staging.yaml
vendored
|
@ -36,6 +36,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
cf_username: ${{ secrets.CF_STAGING_USERNAME }}
|
cf_username: ${{ secrets.CF_STAGING_USERNAME }}
|
||||||
cf_password: ${{ secrets.CF_STAGING_PASSWORD }}
|
cf_password: ${{ secrets.CF_STAGING_PASSWORD }}
|
||||||
cf_org: cisa-getgov-prototyping
|
cf_org: cisa-dotgov
|
||||||
cf_space: staging
|
cf_space: staging
|
||||||
push_arguments: "-f ops/manifests/manifest-staging.yaml"
|
push_arguments: "-f ops/manifests/manifest-staging.yaml"
|
||||||
|
|
3
.github/workflows/migrate.yaml
vendored
3
.github/workflows/migrate.yaml
vendored
|
@ -24,6 +24,7 @@ on:
|
||||||
- ab
|
- ab
|
||||||
- bl
|
- bl
|
||||||
- rjm
|
- rjm
|
||||||
|
- dk
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
migrate:
|
migrate:
|
||||||
|
@ -37,6 +38,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
||||||
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
||||||
cf_org: cisa-getgov-prototyping
|
cf_org: cisa-dotgov
|
||||||
cf_space: ${{ github.event.inputs.environment }}
|
cf_space: ${{ github.event.inputs.environment }}
|
||||||
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py migrate' --name migrate"
|
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py migrate' --name migrate"
|
||||||
|
|
7
.github/workflows/reset-db.yaml
vendored
7
.github/workflows/reset-db.yaml
vendored
|
@ -25,6 +25,7 @@ on:
|
||||||
- ab
|
- ab
|
||||||
- bl
|
- bl
|
||||||
- rjm
|
- rjm
|
||||||
|
- dk
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
reset-db:
|
reset-db:
|
||||||
|
@ -38,7 +39,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
||||||
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
||||||
cf_org: cisa-getgov-prototyping
|
cf_org: cisa-dotgov
|
||||||
cf_space: ${{ github.event.inputs.environment }}
|
cf_space: ${{ github.event.inputs.environment }}
|
||||||
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py flush --no-input' --name flush"
|
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py flush --no-input' --name flush"
|
||||||
|
|
||||||
|
@ -47,7 +48,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
||||||
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
||||||
cf_org: cisa-getgov-prototyping
|
cf_org: cisa-dotgov
|
||||||
cf_space: ${{ github.event.inputs.environment }}
|
cf_space: ${{ github.event.inputs.environment }}
|
||||||
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py migrate' --name migrate"
|
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py migrate' --name migrate"
|
||||||
|
|
||||||
|
@ -56,6 +57,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
||||||
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
||||||
cf_org: cisa-getgov-prototyping
|
cf_org: cisa-dotgov
|
||||||
cf_space: ${{ github.event.inputs.environment }}
|
cf_space: ${{ github.event.inputs.environment }}
|
||||||
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py load' --name loaddata"
|
full_command: "cf run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py load' --name loaddata"
|
||||||
|
|
|
@ -9,6 +9,22 @@ There are a handful of things we do not commit to the repository:
|
||||||
- Compliance documentation that includes IP addresses
|
- Compliance documentation that includes IP addresses
|
||||||
- Secrets of any kind
|
- Secrets of any kind
|
||||||
|
|
||||||
|
## Branch naming convention
|
||||||
|
|
||||||
|
For developers, you can auto-deploy your code to your sandbox (if applicable) by naming your branch thusly: jsd/123-feature-description
|
||||||
|
Where 'jsd' stands for your initials and sandbox environment name (if you were called John Smith Doe), and 123 matches the ticket number if applicable.
|
||||||
|
|
||||||
|
## Approvals
|
||||||
|
|
||||||
|
When a code change is made that is not user facing, then the following is required:
|
||||||
|
- a developer approves the PR
|
||||||
|
|
||||||
|
When a code change is made that is user facing, beyond content updates, then the following are required:
|
||||||
|
- a developer approves the PR
|
||||||
|
- a designer approves the PR or checks off all relevant items in this checklist
|
||||||
|
|
||||||
|
Content or document updates require a single person to approve.
|
||||||
|
|
||||||
## Project Management
|
## Project Management
|
||||||
|
|
||||||
We use [Github Projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) for project management and tracking.
|
We use [Github Projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) for project management and tracking.
|
||||||
|
|
|
@ -94,6 +94,7 @@ The endpoint /admin can be used to view and manage site content, including but n
|
||||||
```
|
```
|
||||||
|
|
||||||
5. In the browser, navigate to /admin. To verify that all is working correctly, under "domain applications" you should see fake domains with various fake statuses.
|
5. In the browser, navigate to /admin. To verify that all is working correctly, under "domain applications" you should see fake domains with various fake statuses.
|
||||||
|
6. Add an optional email key/value pair
|
||||||
|
|
||||||
### Adding an Analyst to /admin
|
### Adding an Analyst to /admin
|
||||||
Analysts are a variant of the admin role with limited permissions. The process for adding an Analyst is much the same as adding an admin:
|
Analysts are a variant of the admin role with limited permissions. The process for adding an Analyst is much the same as adding an admin:
|
||||||
|
@ -115,6 +116,7 @@ Analysts are a variant of the admin role with limited permissions. The process f
|
||||||
```
|
```
|
||||||
|
|
||||||
5. In the browser, navigate to /admin. To verify that all is working correctly, verify that you can only see a sub-section of the modules and some are set to view-only.
|
5. In the browser, navigate to /admin. To verify that all is working correctly, verify that you can only see a sub-section of the modules and some are set to view-only.
|
||||||
|
6. Add an optional email key/value pair
|
||||||
|
|
||||||
Do note that if you wish to have both an analyst and admin account, append `-Analyst` to your first and last name, or use a completely different first/last name to avoid confusion. Example: `Bob-Analyst`
|
Do note that if you wish to have both an analyst and admin account, append `-Analyst` to your first and last name, or use a completely different first/last name to avoid confusion. Example: `Bob-Analyst`
|
||||||
## Adding to CODEOWNERS (optional)
|
## Adding to CODEOWNERS (optional)
|
||||||
|
|
29
ops/manifests/manifest-dk.yaml
Normal file
29
ops/manifests/manifest-dk.yaml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
applications:
|
||||||
|
- name: getgov-dk
|
||||||
|
buildpacks:
|
||||||
|
- python_buildpack
|
||||||
|
path: ../../src
|
||||||
|
instances: 1
|
||||||
|
memory: 512M
|
||||||
|
stack: cflinuxfs4
|
||||||
|
timeout: 180
|
||||||
|
command: ./run.sh
|
||||||
|
health-check-type: http
|
||||||
|
health-check-http-endpoint: /health
|
||||||
|
env:
|
||||||
|
# Send stdout and stderr straight to the terminal without buffering
|
||||||
|
PYTHONUNBUFFERED: yup
|
||||||
|
# Tell Django where to find its configuration
|
||||||
|
DJANGO_SETTINGS_MODULE: registrar.config.settings
|
||||||
|
# Tell Django where it is being hosted
|
||||||
|
DJANGO_BASE_URL: https://getgov-dk.app.cloud.gov
|
||||||
|
# Tell Django how much stuff to log
|
||||||
|
DJANGO_LOG_LEVEL: INFO
|
||||||
|
# Public site base URL
|
||||||
|
GETGOV_PUBLIC_SITE_URL: https://federalist-877ab29f-16f6-4f12-961c-96cf064cf070.sites.pages.cloud.gov/site/cisagov/getgov-home/
|
||||||
|
routes:
|
||||||
|
- route: getgov-dk.app.cloud.gov
|
||||||
|
services:
|
||||||
|
- getgov-credentials
|
||||||
|
- getgov-dk-database
|
|
@ -21,9 +21,9 @@ then
|
||||||
git checkout -b new-dev-sandbox-$1
|
git checkout -b new-dev-sandbox-$1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cf target -o cisa-getgov-prototyping
|
cf target -o cisa-dotgov
|
||||||
|
|
||||||
read -p "Are you logged in to the cisa-getgov-prototyping CF org above? (y/n) " -n 1 -r
|
read -p "Are you logged in to the cisa-dotgov CF org above? (y/n) " -n 1 -r
|
||||||
echo
|
echo
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||||
then
|
then
|
||||||
|
@ -49,9 +49,9 @@ sed -i '' '/getgov-staging.app.cloud.gov/ {a\
|
||||||
|
|
||||||
echo "Creating new cloud.gov space for $1..."
|
echo "Creating new cloud.gov space for $1..."
|
||||||
cf create-space $1
|
cf create-space $1
|
||||||
cf target -o "cisa-getgov-prototyping" -s $1
|
cf target -o "cisa-dotgov" -s $1
|
||||||
cf bind-security-group public_networks_egress cisa-getgov-prototyping --space $1
|
cf bind-security-group public_networks_egress cisa-dotgov --space $1
|
||||||
cf bind-security-group trusted_local_networks_egress cisa-getgov-prototyping --space $1
|
cf bind-security-group trusted_local_networks_egress cisa-dotgov --space $1
|
||||||
|
|
||||||
echo "Creating new cloud.gov DB for $1. This usually takes about 5 minutes..."
|
echo "Creating new cloud.gov DB for $1. This usually takes about 5 minutes..."
|
||||||
cf create-service aws-rds micro-psql getgov-$1-database
|
cf create-service aws-rds micro-psql getgov-$1-database
|
||||||
|
@ -91,7 +91,7 @@ cd ..
|
||||||
cf push getgov-$1 -f ops/manifests/manifest-$1.yaml
|
cf push getgov-$1 -f ops/manifests/manifest-$1.yaml
|
||||||
|
|
||||||
read -p "Please provide the email of the space developer: " -r
|
read -p "Please provide the email of the space developer: " -r
|
||||||
cf set-space-role $REPLY cisa-getgov-prototyping $1 SpaceDeveloper
|
cf set-space-role $REPLY cisa-dotgov $1 SpaceDeveloper
|
||||||
|
|
||||||
read -p "Should we run migrations? (y/n) " -n 1 -r
|
read -p "Should we run migrations? (y/n) " -n 1 -r
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
../ops/scripts/build.sh
|
../ops/scripts/build.sh
|
||||||
|
|
||||||
# Deploy to sandbox
|
# Deploy to sandbox
|
||||||
cf target -o cisa-getgov-prototyping -s $1
|
cf target -o cisa-dotgov -s $1
|
||||||
cf push getgov-$1 -f ../ops/manifests/manifest-$1.yaml
|
cf push getgov-$1 -f ../ops/manifests/manifest-$1.yaml
|
||||||
|
|
||||||
# migrations need to be run manually. Developers can use this command
|
# migrations need to be run manually. Developers can use this command
|
||||||
|
|
|
@ -20,9 +20,9 @@ then
|
||||||
git checkout -b remove-dev-sandbox-$1
|
git checkout -b remove-dev-sandbox-$1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cf target -o cisa-getgov-prototyping -s $1
|
cf target -o cisa-dotgov -s $1
|
||||||
|
|
||||||
read -p "Are you logged in to the cisa-getgov-prototyping CF org above? (y/n) " -n 1 -r
|
read -p "Are you logged in to the cisa-dotgov CF org above? (y/n) " -n 1 -r
|
||||||
echo
|
echo
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||||
then
|
then
|
||||||
|
|
|
@ -9,8 +9,8 @@ if [ -z "$1" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cf target -o cisa-getgov-prototyping -s $1
|
cf target -o cisa-dotgov -s $1
|
||||||
read -p "Are you logged in to the cisa-getgov-prototyping CF org above and targeting the correct space? (y/n) " -n 1 -r
|
read -p "Are you logged in to the cisa-dotgov CF org above and targeting the correct space? (y/n) " -n 1 -r
|
||||||
echo
|
echo
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||||
then
|
then
|
||||||
|
|
|
@ -580,6 +580,7 @@ ALLOWED_HOSTS = [
|
||||||
"getgov-ab.app.cloud.gov",
|
"getgov-ab.app.cloud.gov",
|
||||||
"getgov-bl.app.cloud.gov",
|
"getgov-bl.app.cloud.gov",
|
||||||
"getgov-rjm.app.cloud.gov",
|
"getgov-rjm.app.cloud.gov",
|
||||||
|
"getgov-dk.app.cloud.gov",
|
||||||
"get.gov",
|
"get.gov",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,7 @@ class UserFixture:
|
||||||
"username": "319c490d-453b-43d9-bc4d-7d6cd8ff6844",
|
"username": "319c490d-453b-43d9-bc4d-7d6cd8ff6844",
|
||||||
"first_name": "Rachid-Analyst",
|
"first_name": "Rachid-Analyst",
|
||||||
"last_name": "Mrad-Analyst",
|
"last_name": "Mrad-Analyst",
|
||||||
|
"email": "rachid.mrad@gmail.com",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"username": "b6a15987-5c88-4e26-8de2-ca71a0bdb2cd",
|
"username": "b6a15987-5c88-4e26-8de2-ca71a0bdb2cd",
|
||||||
|
@ -129,6 +130,8 @@ class UserFixture:
|
||||||
user.is_superuser = True
|
user.is_superuser = True
|
||||||
user.first_name = admin["first_name"]
|
user.first_name = admin["first_name"]
|
||||||
user.last_name = admin["last_name"]
|
user.last_name = admin["last_name"]
|
||||||
|
if "email" in admin.keys():
|
||||||
|
user.email = admin["email"]
|
||||||
user.is_staff = True
|
user.is_staff = True
|
||||||
user.is_active = True
|
user.is_active = True
|
||||||
user.save()
|
user.save()
|
||||||
|
@ -146,6 +149,8 @@ class UserFixture:
|
||||||
user.is_superuser = False
|
user.is_superuser = False
|
||||||
user.first_name = staff["first_name"]
|
user.first_name = staff["first_name"]
|
||||||
user.last_name = staff["last_name"]
|
user.last_name = staff["last_name"]
|
||||||
|
if "email" in admin.keys():
|
||||||
|
user.email = admin["email"]
|
||||||
user.is_staff = True
|
user.is_staff = True
|
||||||
user.is_active = True
|
user.is_active = True
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
{% if domainapplication.status == 'approved' %} Approved
|
{% if domainapplication.status == 'approved' %} Approved
|
||||||
{% elif domainapplication.status == 'in review' %} In Review
|
{% elif domainapplication.status == 'in review' %} In Review
|
||||||
{% elif domainapplication.status == 'rejected' %} Rejected
|
{% elif domainapplication.status == 'rejected' %} Rejected
|
||||||
{% elif domainapplication.status == 'submitted' %} Received
|
{% elif domainapplication.status == 'submitted' %} Submitted
|
||||||
{% else %}ERROR Please contact technical support/dev
|
{% else %}ERROR Please contact technical support/dev
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue