GSA-TTS / FAC

GSA's Federal Audit Clearinghouse
Other
20 stars 5 forks source link

Maintenance Banner and Error Page System #4472

Closed jperson1 closed 2 hours ago

jperson1 commented 2 days ago

Maintenance Banner and Error Page System

Issue: https://github.com/GSA-TTS/fac-team/issues/29

Changes:

  1. Settings variable decides when the maintenance banner displays
    • Start/end dates are hardcoded here.
    • A message is optionally given.
    • A template is optionally given, to display if maintenance_mode is enabled during the banners lifecycle.
  2. Maintenance banner
    • Displays an optional message under a "Scheduled system upgrade" header.
    • The message is technically optional, but we will want a custom one.
  3. Maintenance page template
    • maintenance_20241210.html is included, and will display when maintenance mode is turned on while the banner is active.
    • If the banner isn't active, the standard 503.html will display when maintenance mode is on.

Recording:

Here, I go through

  1. The default screen.
  2. The default banner, testing with today, November 20th.
  3. A custom banner message.
  4. The default maintenance screen (503 error).
  5. A custom maintenance screen (the one for next month).

Note that dates are correct in the PR, but not in the recording. Next month's maintenance ends on Dec 10th, not 12th, and the banner will be active from the 5th, not the 7th.

https://github.com/user-attachments/assets/75a3ff90-016a-486d-a695-1b7780694754

How to test:

Basically, follow the recording above.

  1. Switch to this branch and run things normally.
  2. Add a new object to MAINTENANCE_BANNER_DATES in settings.py that envelops today.
  3. Verify that the default banner displays on the site.
  4. Add a message to the object. Verify that it displays, rather than the default.
  5. Enable maintenance mode. Verify that the default 503 screen displays everywhere, and that icons still display.
  6. Add a template to the object. Verify that the template displays, rather than the 503.

You can try creating a new template to use, or use the one for next month. You can also try enabling/disabling the banner while maintenance mode is on.

PR Checklist: Submitter

PR Checklist: Reviewer

The larger the PR, the stricter we should be about these points.

Pre Merge Checklist: Merger

github-actions[bot] commented 2 days ago

Terraform plan for meta

No changes. Your infrastructure matches the configuration. ``` No changes. Your infrastructure matches the configuration. Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed. ```

:white_check_mark: Plan applied in Deploy to Development and Management Environment #863

github-actions[bot] commented 2 days ago

Terraform plan for dev

Plan: 1 to add, 2 to change, 1 to destroy. ```diff Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: !~ update in-place -/+ destroy and then create replacement Terraform will perform the following actions: # module.dev.module.clamav.cloudfoundry_app.clamav_api will be updated in-place !~ resource "cloudfoundry_app" "clamav_api" { !~ docker_image = "ghcr.io/gsa-tts/fac/clamav@sha256:1fa2b7c52f653a507b93f7e2000bff54571832f0cd1fcfe769b7c591fd0f56f4" -> "ghcr.io/gsa-tts/fac/clamav@sha256:8bbaddd65b051d4ba2df629392d98d98e019602e6579b5af3ed905b34bd94140" id = "779bbc51-f78a-4186-90eb-5acb68d7d746" name = "fac-av-dev" # (17 unchanged attributes hidden) # (1 unchanged block hidden) } # module.dev.module.cors.null_resource.cors_header must be replaced -/+ resource "null_resource" "cors_header" { !~ id = "*******************" -> (known after apply) !~ triggers = { # forces replacement !~ "always_run" = "2024-11-15T20:42:45Z" -> (known after apply) } } # module.dev.module.file_scanner_clamav.cloudfoundry_app.clamav_api will be updated in-place !~ resource "cloudfoundry_app" "clamav_api" { !~ docker_image = "ghcr.io/gsa-tts/fac/clamav@sha256:1fa2b7c52f653a507b93f7e2000bff54571832f0cd1fcfe769b7c591fd0f56f4" -> "ghcr.io/gsa-tts/fac/clamav@sha256:8bbaddd65b051d4ba2df629392d98d98e019602e6579b5af3ed905b34bd94140" id = "65c83416-4126-4785-99c2-5e1adb810422" name = "fac-av-dev-fs" # (17 unchanged attributes hidden) # (1 unchanged block hidden) } Plan: 1 to add, 2 to change, 1 to destroy. ```

:x: Plan not applied in Deploy to Development and Management Environment #863 (Plan has changed)

github-actions[bot] commented 2 days ago

Code Coverage

Package Line Rate Branch Rate Health
. 100% 100%
api 98% 90%
audit 97% 87%
audit.cross_validation 98% 86%
audit.fixtures 84% 50%
audit.intakelib 90% 81%
audit.intakelib.checks 92% 85%
audit.intakelib.common 98% 82%
audit.intakelib.transforms 100% 94%
audit.management.commands 78% 17%
audit.migrations 100% 100%
audit.models 93% 75%
audit.templatetags 100% 100%
audit.views 60% 40%
census_historical_migration 96% 65%
census_historical_migration.migrations 100% 100%
census_historical_migration.sac_general_lib 92% 84%
census_historical_migration.transforms 95% 90%
census_historical_migration.workbooklib 68% 69%
config 76% 31%
curation 100% 100%
curation.curationlib 57% 100%
curation.migrations 100% 100%
dissemination 91% 72%
dissemination.migrations 97% 25%
dissemination.searchlib 74% 64%
dissemination.templatetags 100% 100%
djangooidc 53% 38%
djangooidc.tests 100% 94%
report_submission 93% 88%
report_submission.migrations 100% 100%
report_submission.templatetags 74% 100%
support 95% 78%
support.management.commands 96% 100%
support.migrations 100% 100%
support.models 97% 83%
tools 98% 50%
users 98% 100%
users.fixtures 100% 83%
users.management 100% 100%
users.management.commands 100% 100%
users.migrations 100% 100%
Summary 91% (17143 / 18928) 76% (2121 / 2776)
analynd commented 10 hours ago

Wooo so pretty! You rock @jperson1! 🙌