DAST Site profile - add remaining options
## Summary This is the second iteration for building the **DAST site profile** form MVC. At this point, we should have a basic form already done, and we're going to add the **Website/API** selection, **Authentication** section, **Request headers** field, and **Excluded URLs** field. ## Designs - Figma file: https://www.figma.com/file/7CaJqOTOpPEOzkYkoU5bs5/DAST-Ondemand-Profile | Site profile options | Values shown on scan page | | ------ | ------ | | ![image](/uploads/79f13da421966f718dd2be7adfd565c1/image.png) | ![image](/uploads/6e18c947a922319135d78ba25f087f9c/image.png) | ## Implementation plan ~frontend - [x] Add the **Website/API** radio buttons - [x] Add the **Authentication** section to the form with the following fields: - [x] **Enable authentication**: radio buttons, if `true`: - [x] **Authenticated Site**: the URL where the login form can be found - [x] **Password** - [x] **Username Form Field**: name of the username field in the sign-in form - [x] **Password Form Field**: name of the password field in the sign-in form - [x] Add the **Request Headers** field: textarea, optional. - [x] Add the **Excluded URLs** field: textarea, optional - [ ] Extend the GraphQL mutation[2] to include the new fields. ~backend - [x] add support for website/api selection - [x] add support for request headers - [x] add support for authentication - [x] add support for excluded URLs ## Proposed GraphQL mutation: ```diff --- proposal_iteration1.graphql 2020-06-26 17:17:14.000000000 -0400 +++ proposal_iteration2.graphql 2020-06-26 17:13:12.000000000 -0400 @@ -2,6 +2,11 @@ $fullPath: ID! $profileName: String! $targetUrl: String + $authUrl: String + $authUsernameField: String + $authPasswordField: String + $authPassword: String + $requestHeaders: String $draft: Boolean ) { project(fullPath: $fullPath) { @@ -9,6 +14,13 @@ input: { profileName: $profileName targetUrl: $targetUrl + auth: { + url: $url + usernameField: $usernameField + passwordField: $passwordField + password: $password + } + requestHeaders: $requestHeaders draft: $draft } ) { ```
epic