Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/v3.7.2 sprint 112 #552

Merged
merged 178 commits into from
Dec 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
fd4e974
- Add log file rollover
elipe17 Sep 16, 2024
feec150
- Add initial configs for cloud deployments
elipe17 Sep 16, 2024
8805b94
- initial config for grafana deploy
elipe17 Sep 17, 2024
cd4b739
- Remove empty file
elipe17 Sep 17, 2024
c935ce0
- move data sources to template file
elipe17 Sep 18, 2024
b7bd9e4
- general deploy routine for pg and grafana
elipe17 Sep 18, 2024
092df96
- added deploy routine for prometheus
elipe17 Sep 18, 2024
1440b7f
- Added deploy routine for loki
elipe17 Sep 18, 2024
c6edd4a
- Initial update for promtail sidecars
elipe17 Sep 19, 2024
19b48a1
- allow deploy no matter test state
elipe17 Sep 19, 2024
0d2518a
- Update deploy scripts to prepare promtail config
elipe17 Sep 19, 2024
e495aac
- add quotes
elipe17 Sep 19, 2024
8388f40
- Update frontend to write error log to file
elipe17 Sep 19, 2024
57de9d4
-- for faster turnaround
elipe17 Sep 19, 2024
3da3526
- add ignore for file generation
elipe17 Sep 19, 2024
4797ced
- Move limits to per process
elipe17 Sep 19, 2024
6b1eedd
- update disk quota to match backend
elipe17 Sep 19, 2024
30ca7fc
- Uping promtail memory
elipe17 Sep 19, 2024
9926c4d
- Explicitely execute nginx
elipe17 Sep 19, 2024
79d578d
- Testing less memory
elipe17 Sep 19, 2024
5bb32d2
- Tell nginx to reload
elipe17 Sep 19, 2024
2316312
- try removing nginx command
elipe17 Sep 19, 2024
bd60f78
- remove stderr log
elipe17 Sep 19, 2024
7767c17
- try removing extra buildpaack
elipe17 Sep 19, 2024
60827e0
- re-add errorlog pipe
elipe17 Sep 19, 2024
96abb6b
- remove blank line
elipe17 Sep 19, 2024
c44692e
- remove error log for test
elipe17 Sep 19, 2024
e1e272b
- remove resolver directive as test
elipe17 Sep 19, 2024
d8b27d3
- test hard coded vals
elipe17 Sep 19, 2024
17b22f1
- revert conf changes
elipe17 Sep 19, 2024
8c121d9
Merge branch 'develop' into 3046-plg-cloud
elipe17 Sep 19, 2024
dfa6de8
- Testing with latest nginx buildpack
elipe17 Sep 20, 2024
0078a86
- revert to original manifest
elipe17 Sep 20, 2024
4f9d4d5
- revert buildpack and nginx.conf
elipe17 Sep 20, 2024
9f82e14
- test promtail as a sidecar
elipe17 Sep 20, 2024
4527ed6
- Update loki to store logs in s3
elipe17 Sep 20, 2024
764e041
- add bucket name
elipe17 Sep 20, 2024
4a35d01
- add path for local loki directories
elipe17 Sep 20, 2024
d6acc58
- Update path prefix
elipe17 Sep 20, 2024
7d70d19
- Add networking commands for PLG
elipe17 Sep 20, 2024
47fafaf
- alleviate secrets check
elipe17 Sep 20, 2024
7ceb3d9
- UPdated deploy script
elipe17 Sep 20, 2024
cc73759
- update comment in route
elipe17 Sep 23, 2024
9e00a31
- add internal apps to allowed hosts
elipe17 Sep 23, 2024
5e43a1f
- Updated local proxy config to correctly proxy grafana
elipe17 Sep 23, 2024
d08a4c9
- Explicitely mark netpols to route to dev env
elipe17 Sep 23, 2024
bc960b5
- intermediate commit
elipe17 Sep 23, 2024
0a4bbe8
- Updates to deploy script
elipe17 Sep 23, 2024
f3cc7c7
- Update prometheus scrape configs to have all envs
elipe17 Sep 23, 2024
5e64f68
Merge branch 'develop' of https://github.com/raft-tech/TANF-app into …
elipe17 Sep 23, 2024
fb7f807
- Remove promtail sidecar from frontend
elipe17 Sep 23, 2024
8cc8430
- remove manifest tremplate usage
elipe17 Sep 23, 2024
98e1cb2
- remove env expansion from loki
elipe17 Sep 23, 2024
6b3ab12
- Give loki a local config for comparison
elipe17 Sep 23, 2024
e24b3cd
- add db size visualizaiton
elipe17 Sep 24, 2024
654ccc4
- Update loki local to use local stack storage
elipe17 Sep 24, 2024
a43da06
- log level info
elipe17 Sep 24, 2024
25487cc
- get promtail logs to file
elipe17 Sep 24, 2024
2428d41
- Move promtail process into gunicorn script
elipe17 Sep 25, 2024
e949849
- Update job label to be templated
elipe17 Sep 25, 2024
f38cf87
- Add space switching to allow for correct networking
elipe17 Sep 25, 2024
88c6d4e
- Update dashboards
elipe17 Sep 25, 2024
69ee469
- export missing DB metrics
elipe17 Sep 25, 2024
3a05246
- fix dashboard for local use
elipe17 Sep 25, 2024
0dfb56c
- correct name
elipe17 Sep 25, 2024
3fe36bc
- Update to use datasource uid
elipe17 Sep 25, 2024
d519ca2
- fix name
elipe17 Sep 25, 2024
d40b2c4
- Move log file to /tmp
elipe17 Sep 25, 2024
8b310a9
- make deployments rolling
elipe17 Sep 26, 2024
0578058
- update terraform
elipe17 Sep 26, 2024
9488843
- re-enable testing
elipe17 Sep 26, 2024
9eeee32
Merge branch 'develop' into 3046-plg-cloud
elipe17 Sep 26, 2024
0d242d7
- Remove debug stuff
elipe17 Sep 26, 2024
9d1604d
Change scrape to happen every 15s
elipe17 Sep 26, 2024
1afb129
Merge branch 'develop' into 3046-plg-cloud
elipe17 Sep 30, 2024
e1696da
Merge branch 'develop' into 3046-plg-cloud
elipe17 Sep 30, 2024
84999f1
- extra tests. mroe to be added
elipe17 Oct 2, 2024
31bdfe2
Merge branch '3046-plg-cloud' of https://github.com/raft-tech/TANF-ap…
elipe17 Oct 2, 2024
2895f9c
Merge branch 'develop' into 3046-plg-cloud
elipe17 Oct 2, 2024
34798ae
Merge branch 'develop' into 3046-plg-cloud
elipe17 Oct 2, 2024
9d70a1a
- remove file
elipe17 Oct 3, 2024
ba32d76
Merge branch 'develop' of https://github.com/raft-tech/TANF-app into …
elipe17 Oct 3, 2024
89d5206
- add new tests for coverage
elipe17 Oct 3, 2024
2a35494
- linting
elipe17 Oct 3, 2024
8c53767
- add test and ignore filters
elipe17 Oct 3, 2024
783b83a
- Reset setting
elipe17 Oct 3, 2024
a920580
Update personas document for issue #3100
victoriaatraft Oct 7, 2024
1cd19cb
- add pg db for grafana locally
elipe17 Oct 9, 2024
0b98845
- Update deployment to hook grafana into rds
elipe17 Oct 9, 2024
a8cb835
- Updated deploy script to reqruie db service
elipe17 Oct 9, 2024
a7450d6
Merge branch 'develop' of https://github.com/raft-tech/TANF-app into …
elipe17 Oct 9, 2024
09e1359
Merge branch 'develop' into victoriaatraft-patch-1
victoriaatraft Oct 9, 2024
75ac67d
Update 2020, Summer - Understanding Stakeholders and creating persona…
victoriaatraft Oct 9, 2024
9c52c54
Merge branch 'develop' into victoriaatraft-patch-1
ADPennington Oct 10, 2024
bb44fb9
Merge branch 'develop' into 3046-plg-cloud
ADPennington Oct 10, 2024
e0f1ebe
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
victoriaatraft Oct 11, 2024
3357e84
show banner and hide errors if file submitted before 5/31/2024
jtimpe Oct 11, 2024
14cc136
add tests
jtimpe Oct 11, 2024
0dbb377
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
victoriaatraft Oct 11, 2024
8ea93fd
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
victoriaatraft Oct 11, 2024
10b2b9c
Merge branch 'develop' into 3046-plg-cloud
elipe17 Oct 15, 2024
7ee53a6
more descriptive param names
jtimpe Oct 15, 2024
b9a9724
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
victoriaatraft Oct 15, 2024
aa093a9
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
victoriaatraft Oct 15, 2024
0e65fbc
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
victoriaatraft Oct 15, 2024
7eb9e06
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
victoriaatraft Oct 15, 2024
e95876b
Update 2020, Summer - Understanding Stakeholders and creating persona…
victoriaatraft Oct 15, 2024
0f20e88
Update 2020, Summer - Understanding Stakeholders and creating persona…
victoriaatraft Oct 16, 2024
c01dd44
Update 2020, Summer - Understanding Stakeholders and creating persona…
victoriaatraft Oct 16, 2024
4e0b1bb
Merge branch 'develop' into 3014-outdated-submissions-banner
jtimpe Oct 17, 2024
b1a89bd
Merge branch 'develop' into 3014-outdated-submissions-banner
ADPennington Oct 17, 2024
f305d2a
Merge branch 'develop' into 3014-outdated-submissions-banner
ADPennington Oct 18, 2024
37a56ea
Merge branch 'develop' of https://github.com/raft-tech/TANF-app into …
elipe17 Oct 18, 2024
32c07df
Merge branch '3046-plg-cloud' of https://github.com/raft-tech/TANF-ap…
elipe17 Oct 18, 2024
c2d358c
Merge in test env
reitermb Oct 21, 2024
4fa79a1
Update index.html
reitermb Oct 22, 2024
d492d1d
Update docs/User-Experience/Research-Syntheses/2020, Summer - Underst…
reitermb Oct 22, 2024
6e6898a
Merge branch 'develop' into victoriaatraft-patch-1
reitermb Oct 22, 2024
b098d05
include reparse in data files api response
jtimpe Oct 24, 2024
a1ffb0d
check reparse finished_at if submission outdated
jtimpe Oct 24, 2024
82d0bb6
lint, clean up comments
jtimpe Oct 24, 2024
3eb696f
Merge branch 'develop' into 3014-outdated-submissions-banner
jtimpe Oct 24, 2024
ce65bec
Merge branch 'develop' into 3046-plg-cloud
elipe17 Oct 24, 2024
a10638d
Merge pull request #3239 from raft-tech/release-notes-3.6.5
reitermb Oct 24, 2024
d7291fb
Merge branch 'develop' into 3014-outdated-submissions-banner
ADPennington Oct 24, 2024
25b762b
Merge branch 'develop' into victoriaatraft-patch-1
reitermb Oct 25, 2024
f8cf20a
Merge branch 'develop' into 3046-plg-cloud
elipe17 Oct 25, 2024
78ac4eb
Merge pull request #3214 from raft-tech/victoriaatraft-patch-1
reitermb Oct 25, 2024
da67b03
Feat/3171 nexus integration (#3200)
andrew-jameson Oct 25, 2024
4fec7f2
Merge branch 'develop' into 3046-plg-cloud
elipe17 Oct 25, 2024
9ff75dc
Merge branch 'develop' into 3014-outdated-submissions-banner
ADPennington Oct 25, 2024
d54b99c
- Update script to use env specific vars for staging
elipe17 Oct 28, 2024
d9cb995
Doc/3199 monitoring adr (#3210)
andrew-jameson Oct 28, 2024
9bd3deb
Fixes formatting issue
reitermb Oct 28, 2024
cb51a68
Merge pull request #3247 from raft-tech/persona-format-fix
reitermb Oct 28, 2024
1414394
Merge branch 'develop' into 3046-plg-cloud
elipe17 Oct 28, 2024
eb8f661
move outdated submission processing to backend, make configurable
jtimpe Oct 29, 2024
cc63781
revert reparse_file_metas change
jtimpe Oct 29, 2024
11fc447
add reprocessed indicators to submission history tables
jtimpe Oct 29, 2024
15dafb6
Merge branch 'develop' into 3014-outdated-submissions-banner
jtimpe Oct 29, 2024
d9d2680
- remove var
elipe17 Oct 30, 2024
e076f07
- new branch to remove cred leak
elipe17 Oct 30, 2024
ce8df47
Merge branch 'develop' into 3046-plg-cloud
ADPennington Oct 31, 2024
6650108
Merge branch '3046-plg-cloud' of https://github.com/raft-tech/TANF-ap…
elipe17 Oct 31, 2024
512eff3
clear cookies before visit
jtimpe Nov 1, 2024
f2f91ea
Merge pull request #3192 from raft-tech/3046-plg-cloud
elipe17 Nov 1, 2024
a400aab
Merge branch 'develop' into 3242-local-alert-manager-new
elipe17 Nov 1, 2024
d823eff
Merge branch 'develop' into 2435-hhs-env-vars
elipe17 Nov 1, 2024
caf1c8a
update outdated error report language
jtimpe Nov 5, 2024
607b51e
Merge branch 'develop' into 3014-outdated-submissions-banner
jtimpe Nov 5, 2024
b0d3232
update language
jtimpe Nov 5, 2024
bf0bcec
Update cf-check.sh
andrew-jameson Nov 6, 2024
f8e618a
Merge pull request #3272 from raft-tech/hotfix/3171-cloudfoundry-binary
jtimpe Nov 6, 2024
825f5b3
Merge branch 'develop' into 3014-outdated-submissions-banner
jtimpe Nov 6, 2024
18d7363
fix date compare
jtimpe Nov 7, 2024
46e504c
Merge branch 'develop' into 2435-hhs-env-vars
andrew-jameson Nov 7, 2024
6e22311
Merge branch 'develop' into 3141-fix-cypress
jtimpe Nov 8, 2024
d988e2d
remove old submissions banner, column text, serializer data
jtimpe Nov 8, 2024
a098543
rm tests
jtimpe Nov 8, 2024
5ed2551
Update scripts/deploy-backend.sh
andrew-jameson Nov 8, 2024
28d4b78
rm unused
jtimpe Nov 8, 2024
45b5a2e
Merge branch 'develop' into 3242-local-alert-manager-new
elipe17 Nov 12, 2024
4b278d1
rm unused properties, rename used property
jtimpe Nov 13, 2024
69f0bb4
Merge pull request #3260 from raft-tech/3141-fix-cypress
jtimpe Nov 13, 2024
7b82bbe
Merge branch 'develop' of https://github.com/raft-tech/TANF-app into …
elipe17 Nov 14, 2024
d51a85d
- remove dev test code
elipe17 Nov 14, 2024
3b9e2fe
Merge branch '2435-hhs-env-vars' of https://github.com/raft-tech/TANF…
elipe17 Nov 14, 2024
6ff30f6
- Revert postgres repo back to postgres apt repo instead of nexus
elipe17 Nov 14, 2024
06f8013
Merge pull request #3283 from raft-tech/pg-repo-hotfix
elipe17 Nov 15, 2024
3402824
Merge branch 'develop' into 3242-local-alert-manager-new
elipe17 Nov 15, 2024
d6c1cfc
Merge branch 'develop' into 2435-hhs-env-vars
elipe17 Nov 15, 2024
53d3641
Merge pull request #3246 from raft-tech/2435-hhs-env-vars
elipe17 Nov 15, 2024
11abfb5
Merge branch 'develop' into 3014-outdated-submissions-banner
jtimpe Nov 15, 2024
fa5f15c
Merge branch 'develop' into 3242-local-alert-manager-new
ADPennington Nov 15, 2024
5500be8
Merge pull request #3231 from raft-tech/3014-outdated-submissions-banner
jtimpe Nov 15, 2024
6bf0105
- templated emails
elipe17 Nov 18, 2024
75a43cd
Merge branch 'develop' into 3242-local-alert-manager-new
elipe17 Nov 18, 2024
dd5ea65
Merge pull request #3252 from raft-tech/3242-local-alert-manager-new
elipe17 Nov 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/build-and-test/commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
fi
echo "export CURRENT_FLAG=$CURRENT_FLAG" >> $BASH_ENV
- run:
name: Upload code coverage report if target branch
name: Upload code coverage report of target branch
command: codecov -t "$CODECOV_TOKEN" -f <<parameters.coverage-report>> -F "$CURRENT_FLAG"

install-nodejs-machine:
Expand Down
1 change: 1 addition & 0 deletions .gitconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@
allowed = .git/config:.*
allowed = .gitconfig:.*
allowed = .*DJANGO_SECRET_KEY=.*
allowed = ./tdrs-backend/plg/loki/manifest.yml:*
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,9 @@ cypress.env.json

# Patches
*.patch

# Logs
*.log

# DB seeds
tdrs-backend/*.pg
9 changes: 2 additions & 7 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@ version: '3'

tasks:

upload-kibana-objs:
desc: Upload dashboards to Kibana server
cmds:
- 'curl -X POST localhost:5601/api/saved_objects/_import -H "kbn-xsrf: true" --form file=@tdrs-backend/tdpservice/search_indexes/kibana_saved_objs.ndjson'

create-network:
desc: Create the external network
cmds:
Expand Down Expand Up @@ -251,7 +246,7 @@ tasks:
desc: Open a shell in the frontend container
dir: tdrs-frontend
cmds:
- docker-compose -f docker-compose.yml exec tdp-frontend sh
- docker-compose -f docker-compose.yml exec tdp-frontend bash

up:
desc: Start both frontend and backend web servers
Expand All @@ -268,4 +263,4 @@ tasks:
help:
desc: Show this help message
cmds:
- task --list
- task --list
5 changes: 4 additions & 1 deletion codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,7 @@ flags:
carryforward: true

ignore:
- "tdrs-backend/tdpservice/scheduling/db_backup.py"
- "tdrs-backend/tdpservice/scheduling/db_backup.py"
- "tdrs-backend/tdpservice/search_indexes/admin/mulitselect_filter.py"
- "tdrs-backend/tdpservice/email/helpers/account_access_requests.py"
- "tdrs-backend/tdpservice/search_indexes/admin/filters.py"
302 changes: 301 additions & 1 deletion docs/Security-Compliance/diagram.drawio

Large diffs are not rendered by default.

Binary file modified docs/Security-Compliance/diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# 22. Monitoring Application Health and Performance

Date: 2024-09-30

## Status

Pending

## Context
Historic feedback highlighted an ongoing desire for improved alerting and monitoring mechanisms, particularly originating in issue [#831](https://github.com/raft-tech/TANF-app/issues/831) circa 2021. Currently, our cloud platform has limited logging features and user interface issues leading to a "blindness" to errors and stack traces that have occurred, ultimately impairing our ability to maintain system stability; additionally, the existing dashboards only offer live performance data lacking data over time or any archives. Without context for either performance or system logging, determination of anomalous or erroneous system behavior is not possible.

Additionally, we have experienced critical blocking issues related to our updates to both Elasticsearch (ES) and PostgreSQL, which have compounded the need for more proactive alerting and load-testing in lower environments. Without timely notifications, we risk delays in addressing failures that could escalate into more significant problems.


## Decision
We will build out a suite of tools in accordance with industry best practices to monitor our applications. Implementing a comprehensive monitoring and alerting ecosystem will not only help in identifying errors in real-time but also enable us to establish benchmarks based on historical data. This approach will foster a more proactive response strategy, ensuring that potential issues are mitigated before they impact our users or that system owners and system admins are aware of issues that have impacted users.

<p style="text-align:center; margin:0; padding:0;">Cloud Environments Workflow</p>

![Environments](../diagrams/TDP_Environments.png)

### Why Sentry
Sentry captures unhandled exceptions and incorporates detail context about exceptions including error messages, stack traces, affected URLs and user data information. Such information is essential in demystifying the cause of error.

Additionally, as can be seen in the image below, the following information is available:

- Frequency: shows the frequency detail of error
- Timeline: when has the error happened in a period
- Can create a ticket and assign automatically
- Variables at each step of stack trace. This is very important for debugging

<p style="text-align:center; margin:0; padding:0;">Issues with filter enabled</p>

![Issues with filter enabled](../images/sentry/1.%20Issues%20with%20filter%20enabled.png)

<p style="text-align:center; margin:0;padding:0;">Detail exceptions</p>

![Detail exceptions](../images/sentry/3.%20detail%20about%20exception.png)

<p style="text-align:center; margin:0; padding:0;">Full stack trace of the exceptions</p>

![Full stack trace of the exceptions](../images/sentry/4.%20full%20stack%20trace%20of%20the%20exceptions.png)


Performance monitoring in Sentry can greatly enhance the backend application by providing real-time insights into how the TANF app is performing. Sentry tracks various metrics such as response time, database queries, and external API calls. These metrics will help identify performance bottlenecks associated to the backend app.

A unique ability of Sentry is that it links performance issues and groups them together. This gives us the ability to visualize areas that consistently have poor performance. Allowing us to swarm and resolve the most frequent offenders that have the highest impact. Sentry also detects issues with web transactions, database queries, and function regressions (if the duration of function has increased).

### Why Prometheus-Loki-Grafana

Grafana shall provide a visualization dashboard for these various tools which will collect and aggregate performance metrics, system logs, and allow deeper analysis for all aspects of our systems: frontend, proxies, backend, databases, and even networking. Additionally, the development team will seek to hone a proactive alerting system for out-of-threshold issues and errors for improved visibility of system issues.

The storing of system logs will allow more expedient troubleshooting and debugging that is currently out of reach with Cloud.gov's existing Kibana interface for logging. The ability to find and correlate log events is critical to technical analysis of faults, performance degradation, and system's overall health.

By having our monitoring ecosystem take in performance metrics, we will garner performance metrics over time as opposed to simply a live snapshot as is currently provided. This will allow spotting of anomolous or out-of-bounds behaviors such as out of memory, high memory, cpu spikes, and disk thrashing.

Finally, having all of this data in one place will allow technical staff to easily cross-reference given time periods with problematic performance, ongoing issues, or error stacktraces leading to a holistic view of all of our applications both in lower tier development sites and in critical production.

## Consequences

* Increased platform costs for running these tools
* Time and effort maintaining and configuring these new systems
* "Noisy" notifications from from out-of-tune alerting
* Efforts made towards security compliance as these systems have intimate access to our systems and data
* Learning curve for technical staff

## Notes
Given the prohibitive costs of self-hosting Sentry in Cloud.gov, we propose using Sentry's Cloud SaaS offering which will alter the [boundary diagram](../../Security-Compliance/diagram.png). The other tools in use (PLG stack and associated), will be self-hosted and maintained by the technical staff both at Raft and OFA.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Stakeholders and Personas

Last updated for [Issue #804](https://github.com/raft-tech/TANF-app/issues/804)
Last updated for [Issue #3100](https://github.com/raft-tech/TANF-app/issues/3100)

---

Expand Down Expand Up @@ -82,19 +82,19 @@ Some grantees segment data preparation and data transmission into two distinct r

### OFA analysts

OFA analysts review, analyze, and report on STT’s TANF data that’s submitted through TDP. They also help STTs through the transmission process by offering support and guidance around data quality (including fatal/warning edits). Analysts in the Tribal TANF Division also play a direct role communicating submission status, resubmission requests, and various reports to Tribes.
OFA analysts review, analyze, and report on STT’s TANF data that’s submitted through TDP. They also help STTs through the transmission process by offering support and guidance around data quality.

**Supporting Documentation**

- [Description of the OFA support mailbox](<https://hhsgov.sharepoint.com/:w:/r/sites/TANFDataPortalOFA-UserResearch/Shared%20Documents/User%20Research/OFA%20Resource%20Mailbox%20notes.docx?d=w2542a110040b44c1b82706a54c6ec9f2&csf=1&web=1&e=O5meXQ>) :lock:

### OFA system admins

OFA admins are members of the TANF Data Division. They oversee the collection and processing of TANF data and ensure OFA analysts have what they need to do their work.
OFA admins are members of the TANF Data Division. They manage access requests for the TANF data portal, help troubleshoot issues with submission, and broadly ensure that OFA analysts have what they need to do their work.

### Regional program specialists

Regional program specialists are grantee's primary OFA point of contact. They track TANF trends in their region and provide troubleshooting, advice, and reminders to STTs.
Regional program specialists are STT's primary OFA point of contact. They track TANF trends in their region and provide troubleshooting, advice, and reminders to STTs.

### OPRE analysts

Expand All @@ -109,7 +109,7 @@ respect to TDP, OCIO staff will have access to subsets of the Django Admin exper

## Personas

Research up to this point has suggested a need for two working personas; an OFA Data Portal User (Grace) and a grantee-side persona. While there's no shortage of variety in roles, responsibilities, and team makeups on both the grantee and federal levels, the "jobs to be done" for each in the TANF Data Portal are shared. A single persona could also have many different combinations of permissions available to them in the data portal. e.g. While the OFA Persona represents all tasks that an OFA user might want to complete, some may only be assigned to some subset of those tasks.
Research up to this point has suggested a need for three working personas: an OFA Data Analyst (Grace), an OFA System Admin (Elliott), and an STT data analyst. While these don't reflect the full diversity of roles, responsibilities, and team makeups on both the grantee and federal levels, the "jobs to be done" for each in the context of TDP have a lot of overlap. A single persona could also have many different combinations of permissions available to them in the data portal.

### Grace — OFA Data Portal User

Expand All @@ -118,11 +118,28 @@ Research up to this point has suggested a need for two working personas; an OFA
| Role | OFA Data Portal User |
| Age | 35 |
| Location | Washington DC |
| Work Environment | Office |
| Goals<br /><br /><br /> | 1. I've identified all states that have or have not transmitted data<br />2. I've identified any outstanding errors in submitted data<br />3. I'm able to contact grantees and facilitate corrections and resubmissions<br />4. I've enabled grantees to fix errors without communication from OFA<br />5. The final TANF data is completely submitted and error free |
| Pain Points<br /><br /><br /><br /> | 1. Transmission reports can be confusing and aren't actionable enough<br />2. Current errors aren't easy to understand and act to fix, nor easy to explain to grantees<br />3. It can be difficult to identify where an error is coming from in a file<br />4. I see submitted data differently (in different systems) than the grantee submitting it does—The lack of a shared place to view data complicates communication.<br /><br /> |
| Delights | 1. We send out WPR reports far faster than we used to |
| Tools | OCIO database, scripts to interact with or query the database, email, reporting/analytics software, excel, fTANF.exe |
| Work Environment | Home and Office|
| Goals<br /><br /><br /> | 1. Identify all states that have or have not transmitted data<br />2. Transform and clean data to generate reports <br />3. Produce reports including: Work participation Rate, Transmission History, Section 1v Section 3, 4 Caseload, Missing Data, Preliminary Quarterly Caseload<br />4. Publish and share reports with STTs, research partners, and colleagues within OFA<br />5. Answer STT questions<br/> 6. Work with the OFA System Admins |
| Pain Points<br /><br /><br /><br /> | 1. "It can currently take a lot of time to sort out data ready to be reported on from data that's not, and to integrate that into my reporting workflows" <br /> 2. "If data that isn't ready for reporting accidentally makes its way into that workflow then that can cause significant rework and make me have to redo the whole process" <br /> 3. "I don't have a quick way to produce certain reports to communicate to STTs" <br /> 4. "It can be difficult to identify where an error is coming from in a file" |
| Delights | 1. "With TDP, I have a lot [of data] once the State submits the data the data gets processed already so that's really good. Now I don't need to spend too much time with state if the data wasn't processed." <br /> 2. "Having direct and up to date access to the data in the database" |
| Tools | Django CSV exports, Excel, SAS, email, reporting/analytics software |


### Elliott — OFA System Admin

| Grace | |
| :---------------------------------- | :----------------------------------------------------------- |
| Role | OFA Data Portal User, Viewing and Editing Permissions |
| Age | 46 |
| Location | USA, Occasionally In DC Office |
| Work Environment | Home and Office, Desktop, and Government Furnished Equipment (GFE) |
| Goals<br /><br /><br /> | 1. Ensure availability of features and components of the system <br />2. Work with regional OFA staff to confirm who should and shouldn't be granted access to the system<br />3. Access system logs to troubleshoot problems and remediate scans as needed <br />4. Provide access to OCIO (ACF-Tech) staff for security auditing purposes <br />5. Monitoring emails, notifications and answering STT Questions |
| Pain Points<br /><br /><br /><br /> | 1. "Django doesn't have all the filters I need to efficiently use it for certain admin tasks" <br /> 2. "The system can sometimes log me out with no warning" <br/> 3. Accessing data from cloud.gov-brokered databases is only possible by disconnecting from the HHS network on site and VPN when remote. <br/> 4. The toolstack needed as an administrator can be difficult to use on a Windows GFE <br/> 5. Requesting access to developer tools can take months at a time to get approved |
| Delights | 1. "Django has become a tool that provides me a lot of insights about data in the system rather than solely being a user administration tool" <br/> 2. "Automated notifications have been convenient [so that I am aware of what is happening]" <br/> 3. "Being able to use an interface and see what [actions] users did" <br/> 4. "A point and click experience to see how the system is performing...I use the front end the most"|
| Tools | TDP Portal, Django CSV exports, Excel, SAS, email, reporting/analytics software, Microsoft Suite, Python, Axe Dev Tools |
| Expectations | 1. TDP should help sys admin do things from an interface as much as possible <br /> 2. We need to have multiple ways to troubleshoot and remediate issues |

To view a further in-depth system of the interactions, primary tasks and touchpoints taken by OFA System Admins, please refer to the ecosystem map in the supporting documents below.

### Awinita — Grantee Data Analyst

Expand All @@ -141,3 +158,4 @@ Research up to this point has suggested a need for two working personas; an OFA

- [Grantee Attributes](<https://hhsgov.sharepoint.com/:x:/r/sites/TANFDataPortalOFA-UserResearch/_layouts/15/WopiFrame2.aspx?sourcedoc=%7Be83f84f1-71a0-459f-80a4-0d39bc250be9%7D&action=view&cid=f2e656cb-9245-4f02-af6d-2d7e1db6573d>) :lock:
- [Working Journey Maps & Personas Mural](https://app.mural.co/t/officeoffamilyassistance2744/m/officeoffamilyassistance2744/1608238114372/191c53b8ef538838bc8c179daa238dd5c5dcc9e8) :lock:
- [Ecosystem Map OFA System Admin](https://app.mural.co/t/raft2792/m/raft2792/1728311825176/74942929a28857c3ef1c401f0d07ccfe1073e882?sender=uf443e00cb4626b8bec157528) :lock:
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ <h3 class="usa-process-list__heading">Navigate to the “Utilities” tab, and s
<a href="../img/complete-data/Step3.jpg" data-lity data-lity-desc="FTANF.exe opened to the transmission file creation screen with emphasis on the Update Indicator being set to 'Delete'.">
<img src="../img/complete-data/Step3.jpg" alt="FTANF.exe opened to the transmission file creation screen with emphasis on the Update Indicator being set to 'Delete'.">
</a>
<p>To ensure that your data remains consistent between systems as we’re working to fully replace TDRS with TDP, we ask that you use the Delete value of the Update Indicator in all resubmissions. If you need to confirm that the Delete value has been set correctly, you can look for the “D” value at the end of the Header Record of the file you’re submitting (emphasized below).</p>
<p>To ensure that your data remains consistent between FTANF and TDP, please use the Delete value of the Update Indicator in all submissions. To confirm that the Delete value has been set correctly, you can look for the “D” value at the end of the Header Record of the file you’re submitting (emphasized below).</p>

<blockquote style="margin-left: 0px; padding-left: 10px; padding-bottom: 10px; border-color: blue; border-left: solid 3px #005ea2; font-weight: 900;"><span style="font-size: 40px; color: #005ea2; position: relative; right: 10px; padding-left: 10px;">“</span>HEADER20221A01000TAN1 D<span style="font-size: 40px; position: relative; top: 30px; left: 10px; color: #005ea2">”</span></blockquote>
</ol>
Expand Down
Loading