On-demand DAST Configuration Parity
### Problem
Today, On-demand DAST scan configuration is very limited and includes:
* Site profile (name, type, target URL, excluded URLs, request headers, authentication, scan method)
* Scanner profile (profile name, scan mode, crawl timeout, target timeout, debug messages)
* Scan schedule
[Pipeline-based DAST scans include many, many more variables/configuration settings](https://docs.gitlab.com/ee/user/application_security/dast/browser/configuration/variables.html). Without the ability to select these settings, On-demand DAST scans may completely fail, meaning customers can't use on-demand scans and must use pipeline-based scans.
Recently, this had led to at least 4 RFH issues where prospects were unable to successfully trial On-Demand scans.
### Scope
#### Must-have
* Ability to fully configure on-demand scans with all variables that can be configured for pipeline-based DAST scans
* Configuration settings can be saved and reused for multiple DAST scans
* Any change made to the configuration should result in an audit event
* Config variable added, edited, or deleted
* Variables will be available in the ~~scanner or~~ site profile as listed below:
##### Variables
###### **Site profile**
1. DAST_AUTH_AFTER_LOGIN_ACTIONS
2. DAST_AUTH_BEFORE_LOGIN_ACTIONS
3. DAST_AUTH_CLEAR_INPUT_FIELDS
4. DAST_AUTH_COOKIE_NAMES
5. DAST_AUTH_FIRST_SUBMIT_FIELD
6. DAST_AUTH_PASSWORD_FIELD
7. DAST_AUTH_NEGOTIATE_DELEGATION
8. DAST_AUTH_PASSWORD
9. DAST_AUTH_SUBMIT_FIELD
10. DAST_AUTH_SUCCESS_IF_AT_URL
11. DAST_AUTH_SUCCESS_IF_ELEMENT_FOUND
12. DAST_AUTH_SUCCESS_IF_NO_LOGIN_FORM
13. DAST_AUTH_TYPE
14. DAST_AUTH_URL
15. DAST_AUTH_USERNAME_FIELD
16. DAST_AUTH_USERNAME
17. DAST_CRAWL_EXTRACT_ELEMENT_TIMEOUT
18. DAST_CRAWL_SEARCH_ELEMENT_TIMEOUT
19. DAST_PAGE_DOM_READY_TIMEOUT
20. DAST_PAGE_DOM_STABLE_WAIT
21. DAST_PAGE_ELEMENT_READY_TIMEOUT
22. DAST_PAGE_IS_LOADING_ELEMENT
23. DAST_PAGE_IS_READY_ELEMENT
24. DAST_PAGE_MAX_RESPONSE_SIZE_MB
25. DAST_PAGE_READY_AFTER_ACTION_TIMEOUT
26. DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUT
27. DAST_REQUEST_COOKIES
28. DAST_REQUEST_HEADERS
29. DAST_SCOPE_ALLOW_HOSTS
30. DAST_SCOPE_EXCLUDE_ELEMENTS
31. DAST_SCOPE_EXCLUDE_HOSTS
32. DAST_SCOPE_EXCLUDE_URLS
33. DAST_SCOPE_IGNORE_HOSTS
34. DAST_TARGET_CHECK_SKIP
35. DAST_TARGET_CHECK_TIMEOUT
36. DAST_TARGET_PATHS_FILE
37. DAST_TARGET_PATHS
38. DAST_TARGET_URL
39. DAST_PKCS12_CERTIFICATE_BASE64
40. DAST_PKCS12_PASSWORD
41. DAST_ACTIVE_SCAN_TIMEOUT
42. DAST_CRAWL_MAX_ACTIONS
43. DAST_CRAWL_MAX_DEPTH
44. DAST_CRAWL_TIMEOUT
45. DAST_CRAWL_WORKER_COUNT
46. DAST_REQUEST_ADVERTISE_SCAN
47. DAST_USE_CACHE
48. DAST_ACTIVE_SCAN_WORKER_COUNT
49. DAST_PASSIVE_SCAN_WORKER_COUNT
### Proposal
For MVC, expose all DAST variables on the on-demand configuration page, so customers can leverage all DAST configuration variables for on-demand scans.
### Design
https://gitlab.com/gitlab-org/gitlab/-/issues/466299
epic