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

Audit: CMS docs for upstream/downstream dependencies and API users re: Forms / Facilities #18230

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
17 changes: 8 additions & 9 deletions READMES/downstream_dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@ This document lists known services which depend on the CMS. Information on **API

## Services

| ServiceName | Monitoring | Mode | Data | Alerts | Team POC | API Username | GQL Downstream integartion |
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just whitespace changes

| ServiceName| Monitoring| Mode| Data| Alerts| Team POC| API Username| GQL Downstream integration|
|------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|---------------------------|---------------------------|---------------------------|---------------------------|
| Forms API | [Datadog](https://vagov.ddog-gov.com/synthetics/details/f83-ca6-cu2) | Lighthouse pulls data with GraphQL ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/migrations-forms.md#cms-forms-data-to-lighthouse)) | form data (manually edited auxiliary fields) from “VA Form” nodes | Pager Duty - Non Critical | [#va-forms](https://dsva.slack.com/archives/CUB5X5MGF) | forms_api | Nightly Frequency (0100 ET) Forms API = form data (manually edited auxiliary fields) from “VA Form” nodes ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/migrations-forms.md#cms-forms-data-to-lighthouse))
| [GraphQL (Content API)](#graphql-content-api-notes) | [Datadog](https://vagov.ddog-gov.com/synthetics/details/f83-ca6-cu2) | GraphQL contrib module provides endpoint and explorer ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/graph_ql.md)) | All Drupal entities (content & config) | Pager Duty - Non Critical | Slack [#vsp-tools-fe](https://dsva.slack.com/archives/CQH357ZTP) | content_build_api | Hourly frequency 8am-5pm ET for Content build
| Facility Statuses (push to lighthouse) | Slack notification to `#cms-notifications` channel via Drupal [here](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueItemProcessedEventSubscriber.php#L104) and [here](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueProcessedEventSubscriber.php#L107) | post_api contrib module is used to POST updates to lighthouse’s API every 10-15 minutes (when updates are available in queue) ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/vamc-facilities.md#status-changes-to-lighthouse)) | Facility statuses (certain fields on VAMC statuses, operating status, additional status info, facility API locator ID used as GID) | Slack | Slack [#vsa-facilities](https://dsva.slack.com/archives/C0FQSS30V) | facility_api | N/A
| Health service descriptions | Slack notification to `#cms-notifications` channel via Drupal [here](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueItemProcessedEventSubscriber.php#L104) and [here](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueProcessedEventSubscriber.php#L107) | post_api contrib module is used to POST updates to the Lighthouse API on cron every 10-15 minutes (when updates are available in queue) ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/vamc-facilities.md#status-changes-to-lighthouse)) | Only Covid 19 vaccine service descriptions at this time, but soon to be all health service descriptions. | Slack | N/A | N/A | N/A
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consolidated this Health service description line into the line above, to be a single line re: dependency on the Lighthouse Facilities API. If that's not right conceptually for how it works in Drupal, I can revert that change

| Post content release webhook endpoint (Content Build calls after content releases) | [Datadog](https://vagov.ddog-gov.com/synthetics/details/qam-6i3-t5c) | Webhook endpoint (GET) at /api/govdelivery_bulletins/queue - used to trigger sending of notifications to govdelivery. Gov Delivery code is in the [va_gov_govdevivery](https://github.com/department-of-veterans-affairs/va.gov-cms/tree/main/docroot/modules/custom/va_gov_govdelivery) | `?EndTime=` of last successful GQL content query | None | | N/A | N/A
| Feature flags endpoint (/flags_list) | [Datadog](https://vagov.ddog-gov.com/synthetics/details/9z4-5uh-k7r) | GET endpoint at `/flags_list` that provides a list of feature flags for the content build (https://github.com/department-of-veterans-affairs/content-build/actions/workflows/content-release.yml) to consume ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/interfaces.md#featureflags)) | Feature flags that control whether certain products are enabled | None | N/A | N/A | N/A
| Virtual Agent Chatbot | N/A | N/A | N/A | N/A | Slack [#va-virtual-agent-public](https://dsva.slack.com/archives/C01KTS3F493) | virtual_agent_api | Currently pulls from tugboat: https://main-0jm2a1h08xb0nzpger8iko49kskarwcm.ci.cms.va.gov/graphql
| Datadog Monitoring Platform | | Datadog uses Synthetic metrics to monitor GQL endpoints with authenticated HTTP requests. | N/A | N/A | Slack [#cms-platform](https://dsva.slack.com/archives/C02HX4AQZ33) | datadog_api |
| Lighthouse Forms API (push) | [Datadog](https://vagov.ddog-gov.com/synthetics/details/f83-ca6-cu2)| Lighthouse pulls data with GraphQL ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/migrations-forms.md#cms-forms-data-to-lighthouse))| Form data (manually edited auxiliary fields) from “VA Form” nodes| Pager Duty - Non Critical | [#va-forms](https://dsva.slack.com/archives/CUB5X5MGF), @public-websites-team | forms_api | Nightly Frequency (0100 ET), ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/migrations-forms.md#cms-forms-data-to-lighthouse))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renamed to be more accurate about the Service we depend on

| [GraphQL (Content API)](#graphql-content-api-notes)| [Datadog](https://vagov.ddog-gov.com/synthetics/details/f83-ca6-cu2)| GraphQL contrib module provides endpoint and explorer ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/graph_ql.md))| All Drupal entities (content & config)| Pager Duty - Non Critical | Slack [#vsp-tools-fe](https://dsva.slack.com/archives/CQH357ZTP) | content_build_api | Hourly frequency 8am-5pm ET for Content build
| Lighthouse Facilities API (push)| Slack notification to `#cms-notifications` channel via Drupal [here](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueItemProcessedEventSubscriber.php#L104) and [here](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/docroot/modules/custom/va_gov_post_api/src/EventSubscriber/QueueProcessedEventSubscriber.php#L107) | post_api contrib module is used to POST updates to Lighthouse Facilities API every 10-15 minutes (when updates are available in queue) ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/vamc-facilities.md#status-changes-to-lighthouse))| Facility statuses (certain fields on VAMC statuses, operating status, additional status info, facility API locator ID used as GID); VAMC mental health phone numbers; Facility health services | Slack| Slack [#cms-lighthouse](https://app.slack.com/client/T03FECE8V/C02BTJTDFTN) - @facilities-team <br/> Adam Stinton (LH engineer)<br/> VA PO = Michelle Middaugh | facility_api | N/A |
| Post content release webhook endpoint (Content Build calls after content releases) | [Datadog](https://vagov.ddog-gov.com/synthetics/details/qam-6i3-t5c)| Webhook endpoint (GET) at /api/govdelivery_bulletins/queue - used to trigger sending of notifications to govdelivery. Gov Delivery code is in the [va_gov_govdevivery](https://github.com/department-of-veterans-affairs/va.gov-cms/tree/main/docroot/modules/custom/va_gov_govdelivery)| `?EndTime=` of last successful GQL content query| None| | N/A | N/A
| Feature flags endpoint (/flags_list)| [Datadog](https://vagov.ddog-gov.com/synthetics/details/9z4-5uh-k7r)| GET endpoint at `/flags_list` that provides a list of feature flags for the content build (https://github.com/department-of-veterans-affairs/content-build/actions/workflows/content-release.yml) to consume ([README](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/interfaces.md#featureflags)) | Feature flags that control whether certain products are enabled| None| N/A | N/A | N/A
| Virtual Agent Chatbot| N/A| N/A | N/A | N/A | Slack [#va-virtual-agent-public](https://dsva.slack.com/archives/C01KTS3F493) | virtual_agent_api | Currently pulls from tugboat: https://main-0jm2a1h08xb0nzpger8iko49kskarwcm.ci.cms.va.gov/graphql
| Datadog Monitoring Platform|| Datadog uses Synthetic metrics to monitor GQL endpoints with authenticated HTTP requests. | N/A | N/A | Slack [#cms-platform](https://dsva.slack.com/archives/C02HX4AQZ33) | datadog_api |


33 changes: 17 additions & 16 deletions READMES/drupal_api_users.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,31 @@ This document lists known services which depend on the CMS and the Drupal users
| Team | POC | Username | Usage |
| ----------- | ----------- | ----------- | ----------- |
| Release Tools | [#vsp-tools-fe](https://dsva.slack.com/archives/CQH357ZTP) | content_build_api | Building content for VA.gov requires querying Drupal for that content in an authenticated way. |
| Forms API | [#va-forms](https://dsva.slack.com/archives/CUB5X5MGF)| forms_api | Forms migration daily tasks must be authenticated |
| Facilities | [#vsa-facilities](https://dsva.slack.com/archives/C0FQSS30V) | facility_api | ? |
| Lighthouse Forms API | [#va-forms](https://dsva.slack.com/archives/CUB5X5MGF)| forms_api | Forms migration daily tasks must be authenticated |
| Facilities | [#cms-lighthouse slack channel](https://app.slack.com/client/T03FECE8V/C02BTJTDFTN) - @facilities-team <br/> Adam Stinton (LH engineer)<br/> VA PO = Michelle Middaugh | facility_api | Facilities API migration daily tasks must be authenticated. [Upstream notes](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/upstream-dependencies.md#lighthouse-facilities-api); [Downstream notes](https://github.com/department-of-veterans-affairs/va.gov-cms/blob/main/READMES/downstream_dependencies.md)|
| Virtual Agent | [#va-virtual-agent-public](https://dsva.slack.com/archives/C01KTS3F493) | virtual_agent_api| ? |
| CMS | [#cms-platform](https://dsva.slack.com/archives/C02HX4AQZ33)| datadog_api | Datadog Synthetic metrics monitor GraphQL endpoint and require HTTP basic authentication |

## Creating a New API User


1. Discuss the need for a new user with the Platform CMS tech lead (currently @ndouglas) and propose a name.
2. Complete/approve/merge any pull requests providing functionality the user account will rely upon:
- roles, permissions, etc that should be assigned to the user at creation
- roles, permissions, etc that should be assigned to the user at creation
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixing bullet indentation

4. Create a task issue for the account, assign it to `CMS Team` and `DevOps`, and assign the tech lead.
- include the name
- include desired permissions
- include any other information that may be desirable
- any IAM users/roles/etc that may need access to the username and password
- include the name
- include desired permissions
- include any other information that may be desirable
- any IAM users/roles/etc that may need access to the username and password
3. DevOps engineers will perform the following procedure:
- create a new user in Drupal
- assign it appropriate roles and permissions
- assign it a temporary password
- create an entry in SSM Parameter Store for:
- the username (`cms/prod/drupal_api_users/<name>/username`)
- the password (`cms/prod/drupal_api_users/<name>/password`)
- create a new user in Drupal
- assign it appropriate roles and permissions
- assign it a temporary password
- create an entry in SSM Parameter Store for:
- the username (`cms/prod/drupal_api_users/<name>/username`)
- the password (`cms/prod/drupal_api_users/<name>/password`)
- communicate the name of the user to you.
4. Followup issue(s) should be opened for:
- tests to ensure accurate roles and permissions
- tests to ensure retrievability of the SSM Parameter Store values
- additional functionality
- tests to ensure accurate roles and permissions
- tests to ensure retrievability of the SSM Parameter Store values
- additional functionality
Loading
Loading