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

Deploy to staging #304

Open
wants to merge 23 commits into
base: staging
Choose a base branch
from
Open

Deploy to staging #304

wants to merge 23 commits into from

Conversation

github-actions[bot]
Copy link

@github-actions github-actions bot commented Sep 5, 2024

Automated PR to sync changes from main to staging.

* copy all files from paragraph to use as the basis for the rich text component.

* update icons for rich text component

* resolve conflicts

* wip on text formatting

* get ready for setvalue

* Refactor rich text handling in form components

Updated RichTextPatternEdit to sync editor content with form state. Improved FormSummary rendering and enhanced form context with setValue function.

* code formatting

* add custom toolbar modules

* formatting

* add types to handlechange

* add small format

* pare down editor features

* hidden field to mirror editor contents

* install react-quill and increaes concurrency

* fix type

* remove logging

* remove logging

* remove logging

* allow br tag in editor

* formatting and label updates

* swap quill for tiptap

* fix build error with failing checks in form package

* Rename and update RichTextPatternEdit components

* Refactor editor button actions into a reusable array

Consolidated individual editor button action handlers into a reusable editorActions array. This refactor simplifies the button creation process and enhances maintainability by reducing repeated code.

* Add tests for lists

* Dry out test a little

* dry out test even more.

* code formatting

* Add CSS styles for RichText components

Introduced new CSS modules to standardize the margin behavior of list items within RichText components. Updated the corresponding JSX files to apply these styles for consistent appearance.

* Remove react-quill

* remove prop from type for rich text

* use patternvalue instead of string to correct typing issue

* update styles of texteditor

* exclude test that relies on browser feature from vitest runner

* cleanup vitest config

* remove save on blur for rich-text fields

* change button type

* remove top margin from editor content first child

* add focus to editor when initialized

* fix css selector

* remove richtext check onblur

* remove dbs from git

* update form handling submission

Check for rich text handler in the form blur event. Manage editor saving onChange

* Add debounce for improved performance in RichTextPatternEdit

Implemented debounce to optimize editor updates and prevent unnecessary re-renders. Memoized toolbar component.

* Add optional validation rule to form fields

Updated the form field registration to accept optional validation rules through the `register` method.

* Add optional validation rule to form fields

Updated the form field registration to accept optional validation rules through the `register` method.

* add adr

* Refactor MenuBar for enhanced editor functionality

Remove `React.memo` from `MenuBar` component and add more fine-grained control with `disabled` property for button actions. Introduce new heading levels and update related stories to reflect these changes.

* add types and style editor for long blocks of text.

Adds new styles, change default heading hierarchy, and update tests

* turn off spellcheck. squigglies were problematic for long documents.

* match styles from edit view to preview.

* move label

* use vitest browser and install deps

* update test config to try running browser tests in CI

* install playwright browsers in ci

* install dependencies

* update install command

* fix failing tests in e2e

* formatting code

* update test commands for watch and dev scenarios

* update documentation

* add aria-live for contents that change with soft nav

* added css file extensions to prettier config

* update deprecated command

* Rich Text Component Toolbar buttons & API updates (#300)

* pull latest from rich text branch and clean up

* ignore cdktf type errors

* install tf providers to pass typecheck

---------

Co-authored-by: Daniel Naab <[email protected]>
Co-authored-by: Jim Moffet <[email protected]>
@github-actions github-actions bot added the autogenerated Created by a project automation label Sep 5, 2024
* Add ADR for database strategy

* Add authentication ADR

* Add ADR for our REST API

* Update db ADR with test speed note

* Actually add the REST API ADR

* Clean wording in auth ADR

* Update documents/adr/0012-database-strategy.md

* Renumber new ADRs to match main
Copy link
Author

github-actions bot commented Sep 9, 2024

Terraform plan for tts-10x-atj-staging

Plan: 2 to add, 0 to change, 0 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+   create

Terraform will perform the following actions:

  # cloudfoundry_app.tts-10x-atj-staging-server-doj_tts-10x-atj-staging-server-doj-app_E0D2137F will be created
+   resource "cloudfoundry_app" "tts-10x-atj-staging-server-doj_tts-10x-atj-staging-server-doj-app_E0D2137F" {
+       buildpack                       = (known after apply)
+       disk_quota                      = 4096
+       docker_image                    = "ghcr.io/gsa-tts/atj-platform/server-doj:1a6565b496f9cb7647c67b6ed9375f71ce7a5579"
+       enable_ssh                      = (known after apply)
+       environment                     = (sensitive value)
+       health_check_http_endpoint      = "/"
+       health_check_invocation_timeout = (known after apply)
+       health_check_timeout            = (known after apply)
+       health_check_type               = "http"
+       id                              = (known after apply)
+       id_bg                           = (known after apply)
+       instances                       = 1
+       memory                          = 1024
+       name                            = "tts-10x-atj-staging-server-doj-app"
+       ports                           = (known after apply)
+       space                           = "132fc49b-e29e-40b3-8914-4233e4d4caf4"
+       stack                           = (known after apply)
+       stopped                         = false
+       strategy                        = "none"
+       timeout                         = 60

+       routes {
+           port  = (known after apply)
+           route = "5f2eddbb-1011-4cd8-89bf-a01048830b8b"
        }

+       service_binding {
+           service_instance = "3d5c5443-ae33-4bc6-a23b-2095fcba2fbe"
        }
+       service_binding {
+           service_instance = "f4d7b511-20cf-47d4-bf25-3bc2a848e8f4"
        }
    }

  # cloudfoundry_app.tts-10x-atj-staging-server-kansas_tts-10x-atj-staging-server-kansas-app_0CAEC23C will be created
+   resource "cloudfoundry_app" "tts-10x-atj-staging-server-kansas_tts-10x-atj-staging-server-kansas-app_0CAEC23C" {
+       buildpack                       = (known after apply)
+       disk_quota                      = 4096
+       docker_image                    = "ghcr.io/gsa-tts/atj-platform/server-kansas:1a6565b496f9cb7647c67b6ed9375f71ce7a5579"
+       enable_ssh                      = (known after apply)
+       environment                     = (sensitive value)
+       health_check_http_endpoint      = "/"
+       health_check_invocation_timeout = (known after apply)
+       health_check_timeout            = (known after apply)
+       health_check_type               = "http"
+       id                              = (known after apply)
+       id_bg                           = (known after apply)
+       instances                       = 1
+       memory                          = 1024
+       name                            = "tts-10x-atj-staging-server-kansas-app"
+       ports                           = (known after apply)
+       space                           = "132fc49b-e29e-40b3-8914-4233e4d4caf4"
+       stack                           = (known after apply)
+       stopped                         = false
+       strategy                        = "none"
+       timeout                         = 60

+       routes {
+           port  = (known after apply)
+           route = "d99c99cf-ecb3-4885-a5b2-8b95fc3bd1bd"
        }

+       service_binding {
+           service_instance = "b6df5c68-b06e-498c-a4ad-5a4a84d77fb1"
        }
+       service_binding {
+           service_instance = "097d925c-7aa5-489b-82df-d50abe38e284"
        }
    }

Plan: 2 to add, 0 to change, 0 to destroy.

📝 Plan generated in Post Terraform plan to PR comment #379

ethangardner and others added 13 commits September 25, 2024 09:57
* update playwright

* add flag to docker run

* update playwright in design package
Co-authored-by: Ethan Gardner <[email protected]>
New template for managing risks within GitHub, with specific fields to complete.
Co-authored-by: ethangardner <[email protected]>
Co-authored-by: Ethan Gardner <[email protected]>
* Add c4-like diagram in Mermaid format

* Use cylinder for db and general cleanup

* Add separate DOJ diagram with S3 and backend systems in an agency boundary.

* Style DOJ chart
* Add basic tests for existing form submission behavior.

* Add "submit form" test that confirms a completed form returns a PDF.

* Add README for database package.

* upsertFormSession persistence function

* Add getFormSession db routine

* In-progress work on server-rendered form

* Pass route params to form components via session; form rendering in server app. todo: client rendering via spotlight app

* Use hash urls on client-side form router

* Add session management services; handling form routing in the app - in server, use Astro, move FormRouter into Spotlight, get rid of window.location references in @atj/design.

* Standard http POST form submissions working. This included many tweaks to routing/page handling and session services updates.

* Client-side routing fixes

* Linting server package

* Use node.js v20.18.0

* Update all playwright resources to 1.48.0

* Update lockfile

* Add type for *.astro files, so "pnpm typecheck" in the workspace will not fail on imports of .astro modules from .ts modules.

* Remove comment

* Rename getAstroAppContext -> getServerContext

* Add initial Playwright test and try to track down problems with Testcontainers usage (not working locally). Committing to test on CI.

* Mark session incomplete test as expect failure

* Update incomplete session test

* Limit to just the node.js form route test. Will use browser mode for component tests, and avoid Playwright for now.

* Confirm session is updated on form POST

* Improve Spotlight behavior. Still some reorg work to do on the follow-up PR.

* Organize frontend state

* Minor cleanup

* Fix e2e test: prefix localStorage key with "forms/"
…ng section (#369)

* docs: update README to include Podman migration steps and troubleshooting section

* docs: move the Podman-specific instructions into a separate document in the documents directory

---------

Co-authored-by: Khayal Alasgarov <[email protected]>
* Add submission registry class

* In-progress

* Add ability to register multiple handlers to the form platform, to later be registered at the plugin level. Wire this submission handler system up to the submit-form service

* Wire "next page" action handler to UI.

* Add "package download" pattern, which provides a submit button to download a PDF package.

* Wire package download button up to UI. There are still issues with PDF data serialization that need to be resolved.

* Get submit action string when submitting via JS

* Fix typo

* Add initial documentation for the forms package and its patterns directory
…s tckt-360 (#370)

* feat: create select dropdown pattern tckt-360

* feat: create select dropdown pattern edit for form builder tckt-360

* feat: refactor rendering default select option via the template tckt-360

* fix: parseUserInput hook for select dropdown tckt-360

* test: add unit tests for select dropdown pattern tckt-360

* refactor: restructure file folder for select-dropdown

* feat: refactor parseUserInput and update tests

* feat: remoce pdf proccessing code for select dropdown tckt-360

* test: refactor tests tckt-360

---------

Co-authored-by: Khayal Alasgarov <[email protected]>
* feat: create date of birth pattern tckt-361

* feat: create date of birth pattern edit form tckt-361

* test: add vitest for date of birth pattern tckt-361

* fix: add value aggregation hook to handle structured and single values in form validation tckt-361

* feat: update aggregateValuesByPrefix to use set-value library to handle nested values tckt-361

---------

Co-authored-by: Khayal Alasgarov <[email protected]>
Copy link
Author

github-actions bot commented Nov 6, 2024

Terraform plan for tts-10x-atj-staging

Plan: 2 to add, 0 to change, 0 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+   create

Terraform will perform the following actions:

  # cloudfoundry_app.tts-10x-atj-staging-server-doj_tts-10x-atj-staging-server-doj-app_E0D2137F will be created
+   resource "cloudfoundry_app" "tts-10x-atj-staging-server-doj_tts-10x-atj-staging-server-doj-app_E0D2137F" {
+       buildpack                       = (known after apply)
+       disk_quota                      = 4096
+       docker_image                    = "ghcr.io/gsa-tts/forms/server-doj:b4c0eebe67c6bd10f4a7d2dffd940f4bb4a159f2"
+       enable_ssh                      = (known after apply)
+       environment                     = (sensitive value)
+       health_check_http_endpoint      = "/"
+       health_check_invocation_timeout = (known after apply)
+       health_check_timeout            = (known after apply)
+       health_check_type               = "http"
+       id                              = (known after apply)
+       id_bg                           = (known after apply)
+       instances                       = 1
+       memory                          = 1024
+       name                            = "tts-10x-atj-staging-server-doj-app"
+       ports                           = (known after apply)
+       space                           = "132fc49b-e29e-40b3-8914-4233e4d4caf4"
+       stack                           = (known after apply)
+       stopped                         = false
+       strategy                        = "none"
+       timeout                         = 60

+       routes {
+           port  = (known after apply)
+           route = "5f2eddbb-1011-4cd8-89bf-a01048830b8b"
        }

+       service_binding {
+           service_instance = "3d5c5443-ae33-4bc6-a23b-2095fcba2fbe"
        }
+       service_binding {
+           service_instance = "f4d7b511-20cf-47d4-bf25-3bc2a848e8f4"
        }
    }

  # cloudfoundry_app.tts-10x-atj-staging-server-kansas_tts-10x-atj-staging-server-kansas-app_0CAEC23C will be created
+   resource "cloudfoundry_app" "tts-10x-atj-staging-server-kansas_tts-10x-atj-staging-server-kansas-app_0CAEC23C" {
+       buildpack                       = (known after apply)
+       disk_quota                      = 4096
+       docker_image                    = "ghcr.io/gsa-tts/forms/server-kansas:b4c0eebe67c6bd10f4a7d2dffd940f4bb4a159f2"
+       enable_ssh                      = (known after apply)
+       environment                     = (sensitive value)
+       health_check_http_endpoint      = "/"
+       health_check_invocation_timeout = (known after apply)
+       health_check_timeout            = (known after apply)
+       health_check_type               = "http"
+       id                              = (known after apply)
+       id_bg                           = (known after apply)
+       instances                       = 1
+       memory                          = 1024
+       name                            = "tts-10x-atj-staging-server-kansas-app"
+       ports                           = (known after apply)
+       space                           = "132fc49b-e29e-40b3-8914-4233e4d4caf4"
+       stack                           = (known after apply)
+       stopped                         = false
+       strategy                        = "none"
+       timeout                         = 60

+       routes {
+           port  = (known after apply)
+           route = "d99c99cf-ecb3-4885-a5b2-8b95fc3bd1bd"
        }

+       service_binding {
+           service_instance = "b6df5c68-b06e-498c-a4ad-5a4a84d77fb1"
        }
+       service_binding {
+           service_instance = "097d925c-7aa5-489b-82df-d50abe38e284"
        }
    }

Plan: 2 to add, 0 to change, 0 to destroy.

📝 Plan generated in Post Terraform plan to PR comment #449

kalasgarov and others added 8 commits November 7, 2024 16:00
* update readme

* don't update pnpm-lock.yaml

---------

Co-authored-by: Daniel Naab <[email protected]>
* feat: add email input pattern -tckt-362

* feat: add email input pattern form edit tckt-362

* feat: create email input icon for question dropdown tckt-362

* chore: update error message path for dob storybook tckt-362

* test: add unit tests for email-input config file tckt-362

* test: refactor test failure assertions tckt-362

---------

Co-authored-by: kalasgarov <[email protected]>
* feat: create phone number pattern tckt-363

* feat: create phone number pattern edit form tckt-363

* test: add tests phone number config tckt-363

* refactor: Clear old error message on session object when updating valid submission data and pass previous value into React component tckt-363

Co-authored-by: Daniel Naab [email protected]

* test: update tests tckt-363

* feat: update error state and message for phone pattern tckt-363

---------

Co-authored-by: kalasgarov <[email protected]>
* copy input field to use as basis of file upload

* begin structure on file component

* Add single/multiple handling in attachment component

* render checkboxes for allowed file types

* update validation for attachment pattern config data

* validate on max attachments if required

* move attachment file type options

* moved attachment pattern files to their own directory

* rename file

* fix label issue with edit view error state

* interaction tests for attachment component

* pass in config props and update labels in attachment component

* update attachment handling

* use allowed types array in document parser

* add max size for files

* modify attachment schema

* hard code the max file size for now

* enhance file input validation for form filler

* copy input field to use as basis of file upload

* begin structure on file component

* Add single/multiple handling in attachment component

* render checkboxes for allowed file types

* update validation for attachment pattern config data

* validate on max attachments if required

* move attachment file type options

* moved attachment pattern files to their own directory

* rename file

* pass in config props and update labels in attachment component

* update attachment handling

* use allowed types array in document parser

* add max size for files

* modify attachment schema

* hard code the max file size for now

* enhance file input validation for form filler

* fix label issue with edit view error state

* interaction tests for attachment component

* update component stories to better handle null and resolve type issues

* apply circular dependency changes to attachment pattern

* add tests for attachment edit ui

* add tests for attachment edit ui

* change aria labels

* add unit tests for attachement config

* testing for more branches of error condition for the attachment config data

* mock file and filelist for node environment support

* add enctype to handle attachments

* stub out tests for http post request validation and begin branching logic for conditionally typing for runtime env

* simplify validation for attachment config and add new tests

* consolidate validation logic between client and server

* remove types from parsing API ingest

* remove additional attachments reference from documents

* transform file object during validation as a placeholder for future async work
* feat: cretae ssn pattern tckt-364

* feat: create ssn pattern edit form tckt-364

* feat: create ssn icon and phone icons tckt-364

* feat: add ssn input and schema validations tckt-364

* test: add tests for ssn input and schema validations tckt-364

* feat: update ssn validation criteria  based on USWDS recommendations

* feat: address accessibility issues tckt-364

* feat: improve SSN validation error messages for clarity tckt-364

* feat: improve accessibility for ssn input tckt-364

* feat: add input masking to guide correct entry of the Social Security Number tckt-364

---------

Co-authored-by: kalasgarov <[email protected]>
* Add form_documents table and an initializeForm service, responsible for creating a form that's initialized with data from a PDF. initializeForm is not currently wired to the UI.

* Improve pattern builder docs

* Fix test and typing errors; implement localStorage version of addDocument

* Wire initializeForm to UI

* PDF attachment download working

* Fix imports

* Rebuild lock file

* Revert "Rebuild lock file"

This reverts commit 0b0f6c7.

* Remove pdf bytes from blueprint object

* Parse/validate Blueprint JSON

* Delete associated documents when a form is deleted.

* Document support in-browser

* Add tests for parseForm

* Inject a FormConfig into the forms db adapter

* Remove console.log

* Call parseStringForm() in getForm db function

* Update BrowserFormRepository for interface changes

* Fix typo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autogenerated Created by a project automation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants