ethyca-fides 2.58.1b4__py2.py3-none-any.whl → 2.58.1rc0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. {ethyca_fides-2.58.1b4.dist-info → ethyca_fides-2.58.1rc0.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.58.1b4.dist-info → ethyca_fides-2.58.1rc0.dist-info}/RECORD +112 -115
  3. fides/_version.py +3 -3
  4. fides/api/db/base.py +0 -1
  5. fides/api/models/attachment.py +11 -80
  6. fides/api/models/comment.py +15 -45
  7. fides/api/models/privacy_experience.py +0 -42
  8. fides/api/models/privacy_request/privacy_request.py +6 -23
  9. fides/api/service/storage/s3.py +1 -14
  10. fides/ui-build/static/admin/404.html +1 -1
  11. fides/ui-build/static/admin/_next/static/{LFNq-viakwWPa01GpNMoV → 7Gn2YyMsVjWkBPSaVWEi9}/_buildManifest.js +1 -1
  12. fides/ui-build/static/admin/_next/static/chunks/{main-090643377c8254e6.js → main-24f422f93845a596.js} +1 -1
  13. fides/ui-build/static/admin/_next/static/chunks/{main-app-59156a9331ac7bce.js → main-app-94a0711202e08b15.js} +1 -1
  14. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-ebd046e432fec2dd.js → _app-fc89ce7bed454c84.js} +1 -1
  15. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-d4329043219fed9b.js +1 -0
  16. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  17. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  18. fides/ui-build/static/admin/add-systems.html +1 -1
  19. fides/ui-build/static/admin/ant-poc.html +1 -1
  20. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  21. fides/ui-build/static/admin/consent/configure.html +1 -1
  22. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  23. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  24. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  25. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  26. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  27. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  28. fides/ui-build/static/admin/consent/properties.html +1 -1
  29. fides/ui-build/static/admin/consent/reporting.html +1 -1
  30. fides/ui-build/static/admin/consent.html +1 -1
  31. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  32. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  33. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  34. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  35. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  36. fides/ui-build/static/admin/data-catalog.html +1 -1
  37. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  38. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  39. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  40. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  41. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  42. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  43. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  44. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  45. fides/ui-build/static/admin/datamap.html +1 -1
  46. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  47. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  48. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  49. fides/ui-build/static/admin/dataset/new.html +1 -1
  50. fides/ui-build/static/admin/dataset.html +1 -1
  51. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  52. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  53. fides/ui-build/static/admin/datastore-connection.html +1 -1
  54. fides/ui-build/static/admin/index.html +1 -1
  55. fides/ui-build/static/admin/integrations/[id].html +1 -1
  56. fides/ui-build/static/admin/integrations.html +1 -1
  57. fides/ui-build/static/admin/lib/fides-ext-gpp.js +1 -1
  58. fides/ui-build/static/admin/lib/fides-headless.js +1 -1
  59. fides/ui-build/static/admin/lib/fides-tcf.js +3 -3
  60. fides/ui-build/static/admin/lib/fides.js +2 -2
  61. fides/ui-build/static/admin/login/[provider].html +1 -1
  62. fides/ui-build/static/admin/login.html +1 -1
  63. fides/ui-build/static/admin/messaging/[id].html +1 -1
  64. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  65. fides/ui-build/static/admin/messaging.html +1 -1
  66. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  67. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  68. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  69. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  70. fides/ui-build/static/admin/privacy-requests.html +1 -1
  71. fides/ui-build/static/admin/properties/[id].html +1 -1
  72. fides/ui-build/static/admin/properties/add-property.html +1 -1
  73. fides/ui-build/static/admin/properties.html +1 -1
  74. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  75. fides/ui-build/static/admin/settings/about.html +1 -1
  76. fides/ui-build/static/admin/settings/consent.html +1 -1
  77. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  78. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  79. fides/ui-build/static/admin/settings/domains.html +1 -1
  80. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  81. fides/ui-build/static/admin/settings/locations.html +1 -1
  82. fides/ui-build/static/admin/settings/organization.html +1 -1
  83. fides/ui-build/static/admin/settings/regulations.html +1 -1
  84. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  85. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  86. fides/ui-build/static/admin/systems.html +1 -1
  87. fides/ui-build/static/admin/taxonomy.html +1 -1
  88. fides/ui-build/static/admin/user-management/new.html +1 -1
  89. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  90. fides/ui-build/static/admin/user-management.html +1 -1
  91. fides/api/alembic/migrations/versions/67d01c4e124e_add_reject_all_mechanism_to_privacy_.py +0 -56
  92. fides/service/error_handling/__init__.py +0 -0
  93. fides/service/error_handling/error_handler.py +0 -202
  94. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-aab61946892f8b2a.js +0 -1
  95. {ethyca_fides-2.58.1b4.dist-info → ethyca_fides-2.58.1rc0.dist-info}/LICENSE +0 -0
  96. {ethyca_fides-2.58.1b4.dist-info → ethyca_fides-2.58.1rc0.dist-info}/WHEEL +0 -0
  97. {ethyca_fides-2.58.1b4.dist-info → ethyca_fides-2.58.1rc0.dist-info}/entry_points.txt +0 -0
  98. {ethyca_fides-2.58.1b4.dist-info → ethyca_fides-2.58.1rc0.dist-info}/top_level.txt +0 -0
  99. /fides/ui-build/static/admin/_next/static/{LFNq-viakwWPa01GpNMoV → 7Gn2YyMsVjWkBPSaVWEi9}/_ssgManifest.js +0 -0
  100. /fides/ui-build/static/admin/_next/static/chunks/{4450-074c2b59f59451b0.js → 4450-36234280bee624ff.js} +0 -0
  101. /fides/ui-build/static/admin/_next/static/chunks/{4723-1dd1d16f404d56a2.js → 4723-0a3c5e2ce143a7d0.js} +0 -0
  102. /fides/ui-build/static/admin/_next/static/chunks/{5826-ef0aa43ffad83acc.js → 5826-e5dcb4e68cfe6289.js} +0 -0
  103. /fides/ui-build/static/admin/_next/static/chunks/{7453-16efaa072db3fb50.js → 7453-39761c38da31257e.js} +0 -0
  104. /fides/ui-build/static/admin/_next/static/chunks/{79-da725543986d4474.js → 79-f9b948ebb186900f.js} +0 -0
  105. /fides/ui-build/static/admin/_next/static/chunks/{7980-e39ce1290a97c1f5.js → 7980-4bd08957448dea32.js} +0 -0
  106. /fides/ui-build/static/admin/_next/static/chunks/pages/{add-systems-5b2f09f535f3902c.js → add-systems-d258f0c25fa020bf.js} +0 -0
  107. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-a4e636eecaba5324.js → configure-723cc3d4f5740ea6.js} +0 -0
  108. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-9c6f4f09da0e79aa.js → privacy-experience-c946b33b0322b8ad.js} +0 -0
  109. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-f863d0089fea3a76.js → privacy-notices-ea57f9d6ad17e957.js} +0 -0
  110. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{new-5ea3184b333a0604.js → new-803c1b577ab17ae3.js} +0 -0
  111. /fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-632b1c68ccff81f7.js → dataset-fa743ddc7f89d76b.js} +0 -0
  112. /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-9ecac9a5c69e3c88.js → datamap-afedc48ef4e7f858.js} +0 -0
  113. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{consent-50c05ccbf659258b.js → consent-89524101b7279f6e.js} +0 -0
  114. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-07d64b4b5ca57677.js → custom-fields-52d030b1db2ca1b9.js} +0 -0
  115. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-72ec54ee8755a503.js → domain-records-fa42d8f18df44927.js} +0 -0
  116. /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-8aae66669bdc0883.js → [id]-4f5a28226575c976.js} +0 -0
@@ -1,202 +0,0 @@
1
- from functools import wraps
2
- from typing import Any, Callable, Optional, TypeVar
3
-
4
- from fastapi import HTTPException
5
- from loguru import logger
6
- from starlette.status import HTTP_400_BAD_REQUEST, HTTP_422_UNPROCESSABLE_ENTITY
7
-
8
- T = TypeVar("T")
9
-
10
-
11
- class ErrorHandler:
12
- """Utility class for handling errors consistently throughout the application.
13
-
14
- Usage Examples:
15
- -----------------------------------------------------------------------------
16
-
17
- 1. Basic Validation:
18
- ```python
19
- from fastapi import FastAPI
20
- from fides.service.error_handling.error_handler import ErrorHandler
21
-
22
- app = FastAPI()
23
-
24
- @app.post("/users")
25
- def create_user(age: int):
26
- # Simple validation
27
- ErrorHandler.validate(age >= 18, "User must be 18 or older")
28
- return {"message": "User created"}
29
-
30
- @app.get("/items/{item_id}")
31
- def get_item(item_id: str):
32
- # Direct error raising
33
- if not item_id:
34
- ErrorHandler.raise_error("Item ID is required", status_code=400)
35
- return {"item_id": item_id}
36
- ```
37
-
38
- 2. Exception Handling Decorator:
39
- ```python
40
- @app.post("/orders")
41
- @ErrorHandler.handle_exceptions("Failed to create order")
42
- def create_order(order_data: dict):
43
- if not order_data.get("items"):
44
- raise ValueError("Order must contain items")
45
- # Process order...
46
- return {"message": "Order created"}
47
-
48
- @app.get("/products/{product_id}")
49
- @ErrorHandler.handle_exceptions("Failed to fetch product", status_code=404)
50
- def get_product(product_id: str):
51
- product = database.get_product(product_id)
52
- if not product:
53
- raise ValueError("Product not found")
54
- return product
55
- ```
56
-
57
- 3. Complex Validation:
58
- ```python
59
- @app.post("/payments")
60
- @ErrorHandler.handle_exceptions("Payment processing failed")
61
- def process_payment(payment: dict):
62
- # Validate amount
63
- ErrorHandler.validate(
64
- payment.get("amount", 0) > 0,
65
- "Payment amount must be positive",
66
- HTTP_400_BAD_REQUEST
67
- )
68
-
69
- # Validate currency
70
- ErrorHandler.validate(
71
- payment.get("currency") in ["USD", "EUR"],
72
- "Invalid currency",
73
- HTTP_400_BAD_REQUEST,
74
- "Unsupported currency provided" # Optional log message
75
- )
76
-
77
- # Custom error for insufficient funds
78
- if payment.get("amount", 0) > get_balance():
79
- ErrorHandler.raise_error(
80
- "Insufficient funds",
81
- status_code=HTTP_400_BAD_REQUEST,
82
- log_message="User attempted payment exceeding balance"
83
- )
84
-
85
- return {"status": "payment processed"}
86
- ```
87
-
88
- 4. Error Logging:
89
- ```python
90
- @app.post("/imports")
91
- @ErrorHandler.handle_exceptions("Import failed")
92
- def import_data(data: dict):
93
- try:
94
- process_import(data)
95
- except Exception as e:
96
- # Log error with custom message before raising
97
- ErrorHandler.raise_error(
98
- "Import failed: invalid format",
99
- status_code=400,
100
- log_message=f"Import failed with error: {str(e)}"
101
- )
102
- return {"status": "import complete"}
103
- ```
104
-
105
- Key Features:
106
- - Simple validation with custom error messages
107
- - Consistent error handling across endpoints
108
- - Built-in error logging
109
- - HTTP status code customization
110
- - Exception handling decorator for common patterns
111
- """
112
-
113
- @staticmethod
114
- def raise_error(
115
- detail: str,
116
- status_code: int = HTTP_422_UNPROCESSABLE_ENTITY,
117
- log_message: Optional[str] = None,
118
- ) -> None:
119
- """Raise an HTTPException with consistent logging.
120
-
121
- Args:
122
- detail: Error message to include in the HTTPException
123
- status_code: HTTP status code to use (default: 422)
124
- log_message: Optional message to log before raising the exception
125
-
126
- Raises:
127
- HTTPException: Always raised with the provided details
128
- """
129
- if log_message:
130
- logger.error(log_message)
131
- raise HTTPException(status_code=status_code, detail=detail)
132
-
133
- @staticmethod
134
- def validate(
135
- condition: bool,
136
- detail: str,
137
- status_code: int = HTTP_400_BAD_REQUEST,
138
- log_message: Optional[str] = None,
139
- ) -> None:
140
- """Validate a condition and raise an error if it's False.
141
-
142
- Args:
143
- condition: The condition to check
144
- detail: Error message if condition is False
145
- status_code: HTTP status code to use if condition is False
146
- log_message: Optional message to log before raising the exception
147
-
148
- Raises:
149
- HTTPException: If the condition is False
150
- """
151
- if not condition:
152
- ErrorHandler.raise_error(detail, status_code, log_message)
153
-
154
- @classmethod
155
- def handle_exceptions(
156
- cls, error_message: str, status_code: int = HTTP_422_UNPROCESSABLE_ENTITY
157
- ) -> Callable[[Callable[..., T]], Callable[..., T]]:
158
- """Decorator to handle exceptions consistently.
159
-
160
- Args:
161
- error_message: Base error message to use
162
- status_code: HTTP status code to use for unexpected errors
163
-
164
- Returns:
165
- Callable: The decorated function that handles exceptions
166
-
167
- Note:
168
- This decorator will catch specific exceptions and convert them to HTTPExceptions.
169
- HTTPExceptions are re-raised as is, while other exceptions are wrapped with
170
- additional context.
171
- """
172
-
173
- def decorator(func: Callable[..., T]) -> Callable[..., T]:
174
- @wraps(func)
175
- def wrapper(*args: Any, **kwargs: Any) -> Optional[T]:
176
- try:
177
- return func(*args, **kwargs)
178
- except HTTPException:
179
- # Re-raise HTTP exceptions without modification
180
- raise
181
- except (ValueError, TypeError, AttributeError, KeyError) as e:
182
- # Handle common validation and data access errors
183
- cls.raise_error(
184
- f"{error_message}: {str(e)}",
185
- status_code,
186
- f"{error_message}: {e}",
187
- )
188
- except Exception as e: # pylint: disable=broad-except
189
- # Log unexpected errors with full context but present a sanitized message
190
- logger.error(
191
- f"Unexpected error in {func.__name__}: {str(e)}", exc_info=True
192
- )
193
- cls.raise_error(
194
- f"{error_message}: An unexpected error occurred",
195
- status_code,
196
- f"{error_message}: Unexpected {type(e).__name__}",
197
- )
198
- return None # This line is never reached but satisfies the return type checker
199
-
200
- return wrapper # type: ignore[return-value]
201
-
202
- return decorator
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1500],{50697:function(e,a,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/integrations/[id]",function(){return n(20495)}])},67991:function(e,a,n){"use strict";n.d(a,{Od:function(){return o},QZ:function(){return t}});var i=n(27378);let t=e=>{let{items:a,selected:n,onChange:i}=e,t=a.every(e=>n.includes(e.id))&&!!a.length;return{allSelected:t,someSelected:a.some(e=>n.includes(e.id))&&!!a.length,handleToggleAll:()=>{t?i([]):i(a.map(e=>e.id))},handleToggleSelection:e=>{n.includes(e)?i(n.filter(a=>a!==e)):i([...n,e])}}},o=e=>{let{initialSelected:a,initialExcluded:n,initialAllSelected:t,itemCount:o}=e,[l,r]=(0,i.useState)(a),[s,d]=(0,i.useState)(n),[c,u]=(0,i.useState)(t||l.length===o),_=!!l.length||!!s.length;return{selected:l,excluded:s,allSelected:c,someSelected:_,handleToggleAll:()=>{c?(d([]),s.length||u(!1)):(r([]),u(!0))},handleToggleItemSelected:e=>{if(c)d(s.includes(e)?s.filter(a=>a!==e):[...s,e]);else{let a=l.includes(e)?l.filter(a=>a!==e):[...l,e];r(a),a.length===o&&u(!0)}}}}},90111:function(e,a,n){"use strict";var i=n(24246),t=n(77181);a.Z=e=>{let{children:a,...n}=e;return(0,i.jsx)(t.xuv,{p:4,mb:4,border:"1px solid",borderColor:"gray.200",bgColor:"gray.50",borderRadius:"md",...n,children:a})}},8411:function(e,a,n){"use strict";n.d(a,{NA:function(){return o},Z8:function(){return t}});var i=n(21702);let t={[i._F.ER]:"Eritrea",[i._F.DJ]:"Djibouti",[i._F.MR]:"Mauritania",[i._F.NA]:"Namibia",[i._F.GH]:"Ghana",[i._F.SS]:"South Sudan",[i._F.SC]:"Seychelles",[i._F.IO]:"British Indian Ocean Territory",[i._F.GQ]:"Equatorial Guinea",[i._F.AO]:"Angola",[i._F.CG]:"Republic of the Congo",[i._F.BW]:"Botswana",[i._F.BI]:"Burundi",[i._F.DZ]:"Algeria",[i._F.TD]:"Chad",[i._F.NG]:"Nigeria",[i._F.TZ]:"Tanzania",[i._F.EH]:"Western Sahara",[i._F.SN]:"Senegal",[i._F.LR]:"Liberia",[i._F.ZA]:"South Africa",[i._F.CV]:"Cape Verde",[i._F.GM]:"Gambia",[i._F.SD]:"Sudan",[i._F.KM]:"Comoros",[i._F.SZ]:"Eswatini",[i._F.UG]:"Uganda",[i._F.MG]:"Madagascar",[i._F.RW]:"Rwanda",[i._F.CD]:"DR Congo",[i._F.CM]:"Cameroon",[i._F.SH]:"Saint Helena, Ascension and Tristan da Cunha",[i._F.TG]:"Togo",[i._F.MU]:"Mauritius",[i._F.NE]:"Niger",[i._F.BJ]:"Benin",[i._F.EG]:"Egypt",[i._F.LS]:"Lesotho",[i._F.ET]:"Ethiopia",[i._F.MA]:"Morocco",[i._F.YT]:"Mayotte",[i._F.BF]:"Burkina Faso",[i._F.RE]:"R\xe9union",[i._F.ST]:"S\xe3o Tom\xe9 and Pr\xedncipe",[i._F.CF]:"Central African Republic",[i._F.MZ]:"Mozambique",[i._F.MW]:"Malawi",[i._F.ML]:"Mali",[i._F.ZM]:"Zambia",[i._F.LY]:"Libya",[i._F.GW]:"Guinea-Bissau",[i._F.SO]:"Somalia",[i._F.KE]:"Kenya",[i._F.GN]:"Guinea",[i._F.ZW]:"Zimbabwe",[i._F.TN]:"Tunisia",[i._F.SL]:"Sierra Leone",[i._F.GA]:"Gabon",[i._F.CI]:"Ivory Coast",[i._F.JO]:"Jordan",[i._F.PK]:"Pakistan",[i._F.KP]:"North Korea",[i._F.MO]:"Macau",[i._F.AM]:"Armenia",[i._F.SY]:"Syria",[i._F.TJ]:"Tajikistan",[i._F.SA]:"Saudi Arabia",[i._F.KR]:"South Korea",[i._F.NP]:"Nepal",[i._F.PH]:"Philippines",[i._F.IQ]:"Iraq",[i._F.LB]:"Lebanon",[i._F.MN]:"Mongolia",[i._F.PS]:"Palestine",[i._F.YE]:"Yemen",[i._F.JP]:"Japan",[i._F.KZ]:"Kazakhstan",[i._F.LK]:"Sri Lanka",[i._F.MM]:"Myanmar",[i._F.KG]:"Kyrgyzstan",[i._F.CN]:"China",[i._F.AF]:"Afghanistan",[i._F.OM]:"Oman",[i._F.IN]:"India",[i._F.LA]:"Laos",[i._F.UZ]:"Uzbekistan",[i._F.MV]:"Maldives",[i._F.ID]:"Indonesia",[i._F.VN]:"Vietnam",[i._F.MY]:"Malaysia",[i._F.TW]:"Taiwan",[i._F.KH]:"Cambodia",[i._F.AE]:"United Arab Emirates",[i._F.HK]:"Hong Kong",[i._F.GE]:"Georgia",[i._F.BD]:"Bangladesh",[i._F.KW]:"Kuwait",[i._F.TM]:"Turkmenistan",[i._F.QA]:"Qatar",[i._F.BH]:"Bahrain",[i._F.BN]:"Brunei",[i._F.TH]:"Thailand",[i._F.BT]:"Bhutan",[i._F.SG]:"Singapore",[i._F.IL]:"Israel",[i._F.AZ]:"Azerbaijan",[i._F.TL]:"Timor-Leste",[i._F.IR]:"Iran",[i._F.TR]:"Turkey",[i._F.MK]:"North Macedonia",[i._F.IE]:"Ireland",[i._F.DK]:"Denmark",[i._F.SK]:"Slovakia",[i._F.MD]:"Moldova",[i._F.AX]:"\xc5land Islands",[i._F.PL]:"Poland",[i._F.BA]:"Bosnia and Herzegovina",[i._F.SM]:"San Marino",[i._F.CZ]:"Czechia",[i._F.EE]:"Estonia",[i._F.XK]:"Kosovo",[i._F.FO]:"Faroe Islands",[i._F.SJ]:"Svalbard and Jan Mayen",[i._F.GG]:"Guernsey",[i._F.FR]:"France",[i._F.NL]:"Netherlands",[i._F.FI]:"Finland",[i._F.PT]:"Portugal",[i._F.DE]:"Germany",[i._F.MT]:"Malta",[i._F.JE]:"Jersey",[i._F.IS]:"Iceland",[i._F.ES]:"Spain",[i._F.GI]:"Gibraltar",[i._F.NO]:"Norway",[i._F.CY]:"Cyprus",[i._F.RS]:"Serbia",[i._F.LT]:"Lithuania",[i._F.MC]:"Monaco",[i._F.LU]:"Luxembourg",[i._F.UA]:"Ukraine",[i._F.IM]:"Isle of Man",[i._F.RO]:"Romania",[i._F.BE]:"Belgium",[i._F.SE]:"Sweden",[i._F.ME]:"Montenegro",[i._F.LV]:"Latvia",[i._F.VA]:"Vatican City",[i._F.AT]:"Austria",[i._F.AL]:"Albania",[i._F.LI]:"Liechtenstein",[i._F.GR]:"Greece",[i._F.IT]:"Italy",[i._F.AD]:"Andorra",[i._F.GB]:"United Kingdom",[i._F.RU]:"Russia",[i._F.SI]:"Slovenia",[i._F.BY]:"Belarus",[i._F.CH]:"Switzerland",[i._F.HU]:"Hungary",[i._F.BG]:"Bulgaria",[i._F.HR]:"Croatia",[i._F.TC]:"Turks and Caicos Islands",[i._F.CW]:"Cura\xe7ao",[i._F.GP]:"Guadeloupe",[i._F.UM]:"United States Minor Outlying Islands",[i._F.GT]:"Guatemala",[i._F.PM]:"Saint Pierre and Miquelon",[i._F.BQ]:"Caribbean Netherlands",[i._F.GL]:"Greenland",[i._F.SX]:"Sint Maarten",[i._F.PA]:"Panama",[i._F.AW]:"Aruba",[i._F.MQ]:"Martinique",[i._F.AG]:"Antigua and Barbuda",[i._F.BM]:"Bermuda",[i._F.CU]:"Cuba",[i._F.GD]:"Grenada",[i._F.NI]:"Nicaragua",[i._F.LC]:"Saint Lucia",[i._F.KN]:"Saint Kitts and Nevis",[i._F.DO]:"Dominican Republic",[i._F.VC]:"Saint Vincent and the Grenadines",[i._F.BZ]:"Belize",[i._F.HT]:"Haiti",[i._F.JM]:"Jamaica",[i._F.BS]:"Bahamas",[i._F.MX]:"Mexico",[i._F.MF]:"Saint Martin",[i._F.SV]:"El Salvador",[i._F.BL]:"Saint Barth\xe9lemy",[i._F.AI]:"Anguilla",[i._F.MS]:"Montserrat",[i._F.VG]:"British Virgin Islands",[i._F.BB]:"Barbados",[i._F.HN]:"Honduras",[i._F.KY]:"Cayman Islands",[i._F.DM]:"Dominica",[i._F.TT]:"Trinidad and Tobago",[i._F.CR]:"Costa Rica",[i._F.SR]:"Suriname",[i._F.CX]:"Christmas Island",[i._F.WS]:"Samoa",[i._F.PF]:"French Polynesia",[i._F.AS]:"American Samoa",[i._F.NC]:"New Caledonia",[i._F.TK]:"Tokelau",[i._F.PW]:"Palau",[i._F.KI]:"Kiribati",[i._F.VU]:"Vanuatu",[i._F.PN]:"Pitcairn Islands",[i._F.CK]:"Cook Islands",[i._F.FJ]:"Fiji",[i._F.PG]:"Papua New Guinea",[i._F.MP]:"Northern Mariana Islands",[i._F.NU]:"Niue",[i._F.TV]:"Tuvalu",[i._F.NF]:"Norfolk Island",[i._F.TO]:"Tonga",[i._F.FM]:"Micronesia",[i._F.SB]:"Solomon Islands",[i._F.NR]:"Nauru",[i._F.WF]:"Wallis and Futuna",[i._F.GU]:"Guam",[i._F.AU]:"Australia",[i._F.NZ]:"New Zealand",[i._F.MH]:"Marshall Islands",[i._F.CC]:"Cocos (Keeling) Islands",[i._F.VE]:"Venezuela",[i._F.PY]:"Paraguay",[i._F.BR]:"Brazil",[i._F.CO]:"Colombia",[i._F.PE]:"Peru",[i._F.CL]:"Chile",[i._F.UY]:"Uruguay",[i._F.AR]:"Argentina",[i._F.GY]:"Guyana",[i._F.BO]:"Bolivia",[i._F.GF]:"French Guiana",[i._F.EC]:"Ecuador",[i._F.FK]:"Falkland Islands",[i._F.US_AL]:"Alabama",[i._F.US_AK]:"Alaska",[i._F.US_AZ]:"Arizona",[i._F.US_AR]:"Arkansas",[i._F.US_CA]:"California",[i._F.US_CO]:"Colorado",[i._F.US_CT]:"Connecticut",[i._F.US_DE]:"Delaware",[i._F.US_DC]:"District of Columbia (DC)",[i._F.US_FL]:"Florida",[i._F.US_GA]:"Georgia",[i._F.US_HI]:"Hawaii",[i._F.US_ID]:"Idaho",[i._F.US_IL]:"Illinois",[i._F.US_IN]:"Indiana",[i._F.US_IA]:"Iowa",[i._F.US_KS]:"Kansas",[i._F.US_KY]:"Kentucky",[i._F.US_LA]:"Louisiana",[i._F.US_ME]:"Maine",[i._F.US_MD]:"Maryland",[i._F.US_MA]:"Massachusetts",[i._F.US_MI]:"Michigan",[i._F.US_MN]:"Minnesota",[i._F.US_MS]:"Mississippi",[i._F.US_MO]:"Missouri",[i._F.US_MT]:"Montana",[i._F.US_NE]:"Nebraska",[i._F.US_NV]:"Nevada",[i._F.US_NH]:"New Hampshire",[i._F.US_NJ]:"New Jersey",[i._F.US_NM]:"New Mexico",[i._F.US_NY]:"New York",[i._F.US_NC]:"North Carolina",[i._F.US_ND]:"North Dakota",[i._F.US_OH]:"Ohio",[i._F.US_OK]:"Oklahoma",[i._F.US_OR]:"Oregon",[i._F.US_PA]:"Pennsylvania",[i._F.US_PR]:"Puerto Rico",[i._F.US_RI]:"Rhode Island",[i._F.US_SC]:"South Carolina",[i._F.US_SD]:"San Diego",[i._F.US_TN]:"Tennessee",[i._F.US_TX]:"Texas",[i._F.US_UT]:"Utah",[i._F.US_VA]:"Virginia",[i._F.US_VI]:"United States Virgin Islands",[i._F.US_VT]:"Vermon",[i._F.US_WA]:"Washington",[i._F.US_WV]:"West Virginia",[i._F.US_WI]:"Wisconsin",[i._F.US_WY]:"Wyoming",[i._F.CA_AB]:"Alberta",[i._F.CA_BC]:"British Columbia",[i._F.CA_MB]:"Manitoba",[i._F.CA_NB]:"New Brunswick",[i._F.CA_NL]:"Newfoundland and Labrador",[i._F.CA_NS]:"Nova Scotia",[i._F.CA_ON]:"Ontario",[i._F.CA_PE]:"Prince Edward Island",[i._F.CA_QC]:"Quebec",[i._F.CA_SK]:"Saskatchewan",[i._F.CA_NT]:"Northwest Territories",[i._F.CA_NU]:"Nunavut",[i._F.CA_YT]:"Yukon",[i._F.CA]:"Canada",[i._F.US]:"United States",[i._F.MEXICO_CENTRAL_AMERICA]:"Mexico and Central America",[i._F.CARIBBEAN]:"Caribbean",[i._F.EEA]:"European Economic Area (EEA)",[i._F.NON_EEA]:"Non European Economic Area"},o=new Map(Object.entries(t));Object.entries(t).map(e=>({value:e[0],label:e[1]}))},79494:function(e,a,n){"use strict";var i=n(24246),t=n(77181);a.Z=e=>{let{title:a,icon:n,type:o,...l}=e;return(0,i.jsx)(t.wpx,{size:"small",type:o,"data-testid":"action-".concat(a),icon:n,iconPosition:"start",...l,children:a})}},48515:function(e,a,n){"use strict";var i,t;n.d(a,{O:function(){return i}}),(t=i||(i={})).ACKNOWLEDGE="acknowledge",t.OPT_IN_OPT_OUT="opt_in_opt_out"},60325:function(e,a,n){"use strict";n.d(a,{DD:function(){return s},Go:function(){return d},TK:function(){return o},Uv:function(){return u},k1:function(){return l},y3:function(){return _}});var i=n(21702),t=n(48515);let o=e=>{var a;return null!==(a=null==e?void 0:e.filter(e=>e.selected).map(e=>e.id))&&void 0!==a?a:[]},l=e=>{var a;return null!==(a=null==e?void 0:e.filter(e=>e.selected))&&void 0!==a?a:[]},r=[{language:i.eU.EN,is_default:!0,title:"Title",description:"Description",accept_button_label:"Accept",reject_button_label:"Reject",save_button_label:"Save",acknowledge_button_label:"OK",privacy_preferences_link_label:"Privacy Preferences"}],s={name:"",disabled:!1,dismissable:!0,allow_language_selection:!1,show_layer1_notices:!1,layer1_button_options:t.O.OPT_IN_OPT_OUT,regions:[],translations:r,auto_detect_language:!0,auto_subdomain_cookie_deletion:!0},d=(e,a)=>{let n=a.find(a=>a.id===e.language);return n?n.name:e.language},c=e=>{var a,n,i,t,o,l,r,s,d;let{language:c,is_default:u,accept_button_label:_,reject_button_label:F}=e;return{language:c,is_default:u,accept_button_label:_,reject_button_label:F,title:e.title,description:e.description,acknowledge_button_label:null!==(a=e.acknowledge_button_label)&&void 0!==a?a:void 0,banner_title:null!==(n=e.banner_title)&&void 0!==n?n:void 0,banner_description:null!==(i=e.banner_description)&&void 0!==i?i:void 0,purpose_header:null!==(t=e.purpose_header)&&void 0!==t?t:void 0,privacy_policy_link_label:null!==(o=e.privacy_policy_link_label)&&void 0!==o?o:void 0,privacy_policy_url:null!==(l=e.privacy_policy_url)&&void 0!==l?l:void 0,privacy_preferences_link_label:null!==(r=e.privacy_preferences_link_label)&&void 0!==r?r:void 0,save_button_label:null!==(s=e.save_button_label)&&void 0!==s?s:void 0,modal_link_label:null!==(d=e.modal_link_label)&&void 0!==d?d:void 0}},u=e=>{let{created_at:a,updated_at:n,privacy_notices:i,origin:t,id:o,...l}=e;return{...l,privacy_notice_ids:i?i.map(e=>e.id):[],translations:e.translations?e.translations.map(e=>c(e)):[]}},_=e=>e===i.re.PRIVACY_CENTER?{title:{included:!0,required:!0},description:{included:!0,required:!0},save_button_label:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},modal_link_label:{included:!0}}:e===i.re.MODAL?{title:{included:!0,required:!0},description:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0},modal_link_label:{included:!0}}:e===i.re.BANNER_AND_MODAL?{title:{included:!0,required:!0},banner_title:{included:!0},description:{included:!0,required:!0},banner_description:{included:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}:e===i.re.TCF_OVERLAY?{title:{included:!0,required:!0},banner_title:{included:!0},description:{included:!0,required:!0},banner_description:{included:!0},purpose_header:{included:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}:{title:{included:!0,required:!0},description:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}},20495:function(e,a,n){"use strict";n.r(a),n.d(a,{default:function(){return eu}});var i=n(24246),t=n(77181),o=n(86677),l=n(7617),r=n(77213),s=n(77830),d=n(58754),c=n(94725),u=n(45216),_=n(7621),F=n(92222),m=n(59003),g=n(27378),p=n(18225);let b=(0,t.IUT)({displayName:"MonitorIcon",viewBox:"0 0 12 12",path:(0,i.jsx)("path",{d:"M1.33333 2.21875C1.15 2.21875 1 2.37344 1 2.5625V5.65625H3.66667C3.84167 5.65625 4.00417 5.75078 4.09583 5.90762L4.62708 6.8207L5.88542 4.22324C5.96667 4.05566 6.13125 3.94609 6.3125 3.93965C6.49375 3.9332 6.66667 4.02773 6.76042 4.18887L7.61458 5.65625H8.83333C9.11042 5.65625 9.33333 5.88613 9.33333 6.17188C9.33333 6.45762 9.11042 6.6875 8.83333 6.6875H7.33333C7.15833 6.6875 6.99583 6.59297 6.90417 6.43613L6.37292 5.52305L5.11458 8.12051C5.03333 8.28809 4.86875 8.39766 4.6875 8.4041C4.50625 8.41055 4.33333 8.31602 4.23958 8.15488L3.38542 6.6875H1V9.4375C1 9.62656 1.15 9.78125 1.33333 9.78125H10.6667C10.85 9.78125 11 9.62656 11 9.4375V2.5625C11 2.37344 10.85 2.21875 10.6667 2.21875H1.33333ZM0 2.5625C0 1.8041 0.597917 1.1875 1.33333 1.1875H10.6667C11.4021 1.1875 12 1.8041 12 2.5625V9.4375C12 10.1959 11.4021 10.8125 10.6667 10.8125H1.33333C0.597917 10.8125 0 10.1959 0 9.4375V2.5625Z",fill:"currentColor"})});var h=n(14481),x=n(72625),y=n(70675),v=n(812),S=e=>{let{defaultSuccessMsg:a,defaultErrorMsg:n}=e,i=(0,t.pmc)();return{toastResult:e=>{(0,v.D4)(e)?i({status:"error",description:(0,v.e$)(e.error,n)}):i({status:"success",description:a})}}},C=n(8133),f=n(46628),j=n(67991),k=n(91613);let M=(0,F.Cl)();var A=e=>{let{items:a,totalItemCount:n,selected:o,excluded:l,allSelected:r,someSelected:s,moreLoading:d,handleToggleSelection:c,handleToggleAll:u,onMoreClick:_}=e,b=a.map(e=>({id:e,isSelected:o.includes(e),isExcluded:l.includes(e)})),x=(0,g.useMemo)(()=>[M.display({id:"select",cell:e=>{let{row:a}=e;return(0,i.jsx)(h.k,{isChecked:a.original.isSelected||r&&!a.original.isExcluded,onChange:()=>c(a.original.id),dataTestId:"".concat(a.original.id,"-checkbox")})},header:()=>(0,i.jsx)(h.k,{isChecked:r,isIndeterminate:s,onChange:u,dataTestId:"select-all-checkbox"}),size:1}),M.accessor(e=>e.id,{id:"id",cell:e=>(0,i.jsx)(h.G3,{value:e.getValue()}),header:e=>(0,i.jsx)(h.Rr,{value:"Scope",...e})})],[c,u,r,s]),y=(0,m.b7)({getCoreRowModel:(0,F.sC)(),getRowId:e=>e.id,manualPagination:!0,data:b,columns:x,columnResizeMode:"onChange"});return(0,i.jsx)(t.kCb,{w:"full",direction:"column",maxH:"lg",children:(0,i.jsx)(h.ZK,{tableInstance:y,onRowClick:e=>c(e.id),footer:!!_&&(0,i.jsx)(h.vr,{totalColumns:2,children:(0,i.jsx)(t.kCb,{justify:"center",children:d?(0,i.jsx)(p.Z,{size:"xs"}):(0,i.jsxs)(t.kCb,{align:"center",children:[(0,i.jsxs)(t.xvT,{fontSize:"xs",mr:4,children:["Showing ",a.length," of ",n]}),(0,i.jsx)(t.wpx,{onClick:_,size:"small","data-testid":"load-more-btn",children:"Load more..."})]})})})})})};let T={items:[],total:1,page:1,size:50,pages:0};var N=(e,a)=>{let[n,i]=(0,g.useState)(2),{data:t,isLoading:o}=(0,y.oN)({page:1,size:25,connection_config_key:e}),l=(0,g.useRef)(o),{items:r,total:s}=null!=t?t:T,d=!!(null==t?void 0:t.pages)&&n>t.pages,[c,u]=(0,g.useState)(r);(0,g.useEffect)(()=>{l.current=o,u(r)},[o,r]),(0,g.useEffect)(()=>{let e=setTimeout(()=>{l.current&&a&&a()},5e3);return()=>clearTimeout(e)},[]);let[_,{isLoading:F,isFetching:m}]=(0,y.j3)(),p=F||m||o,b=async()=>{var a,t;if(d)return;let o=await _({connection_config_key:e,size:25,page:n+1});o.isError||(i(n+1),u([...c,...null!==(t=null===(a=o.data)||void 0===a?void 0:a.items)&&void 0!==t?t:[]]))};return{databases:c,totalDatabases:s,fetchMore:b,initialIsLoading:o,isLoading:p,reachedEnd:d}},w=e=>{var a;let{monitor:n,isEditing:o,isSubmitting:l,integrationKey:r,onSubmit:s,onClose:d}=e,c=(0,t.pmc)(),{databases:u,totalDatabases:_,fetchMore:F,reachedEnd:m,isLoading:g,initialIsLoading:b}=N(r,()=>{s({...n,databases:[]}),c({...f.MA,status:"info",description:"Loading resources is taking longer than expected. The monitor has been saved and is tracking all available resources. You can return later to limit its scope if needed"}),d()}),h=null!==(a=null==n?void 0:n.databases)&&void 0!==a?a:[],{selected:x,excluded:y,allSelected:v,someSelected:S,handleToggleItemSelected:C,handleToggleAll:M}=(0,j.Od)({initialSelected:h,initialExcluded:[],initialAllSelected:o&&!h.length,itemCount:_}),T=!v&&0===x.length;return b?(0,i.jsx)(p.Z,{my:12}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.kCb,{p:4,direction:"column",children:[(0,i.jsxs)(t.kCb,{direction:"row",mb:4,gap:1,align:"center",children:[(0,i.jsx)(t.xvT,{fontSize:"sm",children:"Select projects to monitor"}),(0,i.jsx)(k.Z,{label:"Selecting a project will monitor all current and future datasets within that project."})]}),(0,i.jsx)(A,{items:u,totalItemCount:_,selected:x,excluded:y,allSelected:v,someSelected:S,moreLoading:g,handleToggleSelection:C,handleToggleAll:M,onMoreClick:m?void 0:F})]}),(0,i.jsxs)("div",{className:"mt-4 flex w-full justify-between",children:[(0,i.jsx)(t.wpx,{onClick:d,children:"Cancel"}),(0,i.jsx)(t.ua7,{label:"Select one or more projects to save",isDisabled:!T,children:(0,i.jsx)(t.wpx,{onClick:()=>{s({...n,excluded_databases:y,databases:v?[]:x})},loading:l,type:"primary","data-testid":"save-btn",disabled:T,children:"Save"})})]})]})},E=n(19508),U=n(96063),I=n(34090),R=n(55484),L=n(97181),D=n(40324),q=n(21702),O=e=>{var a,n;let{monitor:l,integrationOption:r,isSubmitting:s,databasesAvailable:d,onClose:c,onAdvance:u,onSubmit:_}=e,F=!!l,{query:m}=(0,o.useRouter)(),g=Array.isArray(m.id)?m.id[0]:m.id,p=R.Ry().shape({name:R.Z_().required().label("Name"),execution_frequency:R.Z_().nullable().label("Execution frequency"),execution_start_date:R.hT().nullable().label("Execution start date")}),b=(null==l?void 0:l.execution_start_date)?(0,E.D)(l.execution_start_date):Date.now(),h={name:null!==(a=null==l?void 0:l.name)&&void 0!==a?a:"",execution_start_date:(0,U.WU)(b,"yyyy-MM-dd'T'HH:mm"),execution_frequency:null!==(n=null==l?void 0:l.execution_frequency)&&void 0!==n?n:q.hV.MONTHLY},x=(0,v.MM)(q.hV);return(0,i.jsx)(I.J9,{initialValues:h,enableReinitialize:!0,onSubmit:e=>{let a=e.execution_frequency!==q.hV.NOT_SCHEDULED?{execution_frequency:e.execution_frequency,execution_start_date:new Date(e.execution_start_date).toISOString()}:{execution_frequency:q.hV.NOT_SCHEDULED,execution_start_date:void 0},n=F?{...l,...a,name:e.name}:{...a,name:e.name,connection_config_key:g,classify_params:{num_samples:25,num_threads:1}};r.identifier===q.Rj.DYNAMODB&&(n.datasource_params={single_dataset:!1}),d?u(n):_(n)},validationSchema:p,children:e=>{let{values:a,isValid:n,resetForm:o}=e;return(0,i.jsx)(I.l0,{children:(0,i.jsxs)(t.gCW,{alignItems:"start",spacing:6,mt:4,children:[(0,i.jsx)(D.j0,{name:"name",id:"name",label:"Name",isRequired:!0,variant:"stacked"}),(0,i.jsx)(L.d,{name:"execution_frequency",id:"execution_frequency",tooltip:"Interval to run the monitor automatically after the start date",options:x,label:"Automatic execution frequency",layout:"stacked"}),(0,i.jsx)(D.YL,{name:"execution_start_date",label:"Automatic execution start time",disabled:a.execution_frequency===q.hV.NOT_SCHEDULED,id:"execution_start_date"}),(0,i.jsxs)("div",{className:"flex w-full justify-between",children:[(0,i.jsx)(t.wpx,{onClick:()=>{o(),c()},children:"Cancel"}),(0,i.jsx)(t.wpx,{htmlType:"submit",type:"primary",disabled:!n,loading:s,"data-testid":"next-btn",children:d?"Next":"Save"})]})]})})}})},B=n(90111),P=n(8411),G=n(3968),H=n(64781),V=n(60325);let Z=R.Ry().shape({name:R.Z_().required().label("Name"),execution_frequency:R.Z_().nullable().label("Execution frequency"),execution_start_date:R.hT().nullable().label("Execution start date"),datasource_params:R.Ry().shape({locations:R.IX().label("Locations"),exclude_domains:R.IX().label("Exclude domains"),sitemap_url:R.Z_().nullable().url().label("Sitemap URL")})});var K=e=>{var a,n,l;let{monitor:r,url:s,onClose:d,onSubmit:c}=e,{query:u}=(0,o.useRouter)(),_=Array.isArray(u.id)?u.id[0]:u.id,F=(null==r?void 0:r.execution_start_date)?(0,E.D)(r.execution_start_date):Date.now(),{data:m,isLoading:g}=(0,H.gT)(),p=[...(0,V.TK)(null!==(a=null==m?void 0:m.locations)&&void 0!==a?a:[]),...(0,V.TK)(null!==(n=null==m?void 0:m.location_groups)&&void 0!==n?n:[])].map(e=>({value:e,label:P.Z8[e]})),b={name:(null==r?void 0:r.name)||"",execution_frequency:(null==r?void 0:r.execution_frequency)||q.hV.MONTHLY,execution_start_date:(0,U.WU)(F,"yyyy-MM-dd'T'HH:mm"),url:s,connection_config_key:_,datasource_params:null!==(l=null==r?void 0:r.datasource_params)&&void 0!==l?l:{locations:[]}},h=async e=>{let a=e.execution_frequency!==q.hV.NOT_SCHEDULED?{execution_frequency:e.execution_frequency,execution_start_date:new Date(e.execution_start_date).toISOString()}:{execution_frequency:q.hV.NOT_SCHEDULED,execution_start_date:void 0};c({...r,...e,...a,key:(null==r?void 0:r.key)||(0,G.E)(e.name),classify_params:(null==r?void 0:r.classify_params)||{},datasource_params:e.datasource_params||{},connection_config_key:_})};return(0,i.jsxs)(t.jqI,{vertical:!0,className:"pt-4",children:[(0,i.jsx)(B.Z,{children:(0,i.jsx)(t.xvT,{fontSize:"sm",children:"This monitor allows you to simulate and verify user consent actions, such as 'accept,' 'reject,' or 'opt-out,' on consent experiences. For each detected activity, the monitor will record whether it occurred before or after the configured user actions, ensuring compliance with user consent choices."})}),(0,i.jsx)(I.J9,{initialValues:b,enableReinitialize:!0,onSubmit:h,validationSchema:Z,children:e=>{let{values:a,resetForm:n}=e;return(0,i.jsx)(I.l0,{children:(0,i.jsxs)(t.jqI,{vertical:!0,gap:"middle",children:[(0,i.jsx)(D.j0,{name:"name",id:"name",label:"Name",isRequired:!0,variant:"stacked"}),(0,i.jsx)(D.j0,{name:"datasource_params.sitemap_url",id:"sitemap_url",label:"Sitemap URL",variant:"stacked"}),(0,i.jsx)(L.d,{mode:"tags",name:"datasource_params.exclude_domains",placeholder:"Enter domains to exclude",id:"exclude_domains",label:"Exclude domains",options:[],open:!1,layout:"stacked"}),(0,i.jsx)(D.j0,{name:"url",id:"url",label:"URL",isRequired:!0,disabled:!0,variant:"stacked"}),(0,i.jsx)(L.d,{mode:"multiple",isRequired:!0,name:"datasource_params.locations",id:"locations",label:"Locations",loading:g,options:p,optionFilterProp:"label",tooltip:"Specify the region(s) to include in the scan. The monitor will scan the same URL across these locations to identify tracking technologies, such as cookies served by ad tech vendors.",layout:"stacked"}),(0,i.jsx)(L.d,{name:"execution_frequency",id:"execution_frequency",options:(0,v.MM)(q.hV),label:"Automatic execution frequency",layout:"stacked"}),(0,i.jsx)(D.YL,{name:"execution_start_date",label:"Automatic execution start time",disabled:a.execution_frequency===q.hV.NOT_SCHEDULED,id:"execution_start_date",tooltip:"Set the start time for the scan. For optimal performance and minimal disruption, schedule scans during periods of low traffic."}),(0,i.jsxs)(t.jqI,{className:"mt-2 justify-between",children:[(0,i.jsx)(t.wpx,{onClick:()=>{n(),d()},children:"Cancel"}),(0,i.jsx)(t.wpx,{type:"primary",htmlType:"submit","data-testid":"save-btn",children:"Save"})]})]})})}})]})},z=n(31883),W=e=>{let{isOpen:a,onClose:n,formStep:o,onAdvance:l,monitor:r,isEditing:s,integration:d,integrationOption:c}=e,[u,{isLoading:_}]=(0,y.Fy)(),{data:F}=(0,y.oN)({page:1,size:25,connection_config_key:d.key}),m=!!F&&!!F.total,g=(0,t.pmc)(),{toastResult:b}=S({defaultSuccessMsg:"Monitor ".concat(s?"updated":"created"," successfully"),defaultErrorMsg:"A problem occurred while ".concat(s?"updating":"creating"," this monitor")}),h=async e=>{let a;let i=setTimeout(()=>{a||(g({...f.MA,status:"info",description:"Saving this monitor is taking longer than expected. Fides will continue processing it in the background, and you can check back later to view the updates."}),n())},5e3);(a=await u(e))&&(clearTimeout(i),b(a),(0,z.D4)(a)||n())};return c.identifier===q.Rj.WEBSITE?(0,i.jsx)(C.Z,{title:(null==r?void 0:r.name)?"Configure ".concat(r.name):"Configure website monitor",isOpen:a,onClose:n,children:(0,i.jsx)(K,{monitor:r,url:d.secrets.url,onClose:n,onSubmit:h})}):(0,i.jsxs)(C.Z,{title:(null==r?void 0:r.name)?"Configure ".concat(r.name):"Configure discovery monitor",isOpen:a,onClose:n,children:[0===o&&(0,i.jsx)(O,{monitor:r,onClose:n,onAdvance:l,onSubmit:h,isSubmitting:_,databasesAvailable:m,integrationOption:c}),1===o&&(r?(0,i.jsx)(w,{monitor:r,isEditing:s,isSubmitting:_,onSubmit:h,onClose:n,integrationKey:d.key}):(0,i.jsx)(p.Z,{}))]})},Y=n(58452),J=n(79494),Q=e=>{let{monitorId:a,onEditClick:n}=e,[o]=(0,y.Sb)(),{toastResult:l}=S({defaultErrorMsg:"A problem occurred deleting this monitor",defaultSuccessMsg:"Monitor deleted successfully"}),[r,{isLoading:s}]=(0,y.V9)(),{toastResult:d}=S({defaultErrorMsg:"A problem occurred initiating monitor execution",defaultSuccessMsg:"Monitor execution successfully started"}),c=async()=>{l(await o({monitor_config_id:a}))},{isOpen:u,onOpen:_,onClose:F}=(0,t.qY0)(),m=async()=>{d(await r({monitor_config_id:a}))};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Y.Z,{isOpen:u,onClose:F,onConfirm:c,title:"Delete monitor",message:"Are you sure you want to delete this discovery monitor?",continueButtonText:"Delete",isCentered:!0}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(t.ua7,{label:"Edit",children:(0,i.jsx)(t.wpx,{onClick:n,size:"small",icon:(0,i.jsx)(t.dY8,{}),"data-testid":"edit-monitor-btn","aria-label":"Edit monitor"})}),(0,i.jsx)(t.ua7,{label:"Delete",children:(0,i.jsx)(t.wpx,{onClick:_,size:"small",icon:(0,i.jsx)(t.pJl,{}),"aria-label":"Delete monitor","data-testid":"delete-monitor-btn"})}),(0,i.jsx)(J.Z,{onClick:m,title:"Scan",loading:s})]})]})};let X=e=>{let{row:a,getValue:n}=e,[t]=(0,y.Fy)(),o=async e=>t({...a.original,enabled:e}),l=n();return(0,i.jsx)(x.S1,{enabled:l,onToggle:o,title:"Disabling monitor",message:"You are about to disable this monitor. If you continue, it will no longer scan automatically."})},$={items:[],total:0,page:1,size:50,pages:0},ee=(0,F.Cl)(),ea=e=>{let{onAddClick:a}=e;return(0,i.jsx)(t.gCW,{mt:6,p:10,spacing:4,borderRadius:"base",maxW:"70%","data-testid":"no-results-notice",alignSelf:"center",margin:"auto",children:(0,i.jsxs)(t.gCW,{children:[(0,i.jsx)(t.xvT,{fontSize:"md",fontWeight:"600",children:"No monitors"}),(0,i.jsx)(t.xvT,{fontSize:"sm",children:'You have not configured any data discovery monitors. Click "Add monitor" to configure data discovery now.'}),(0,i.jsx)(t.wpx,{onClick:a,type:"primary",children:"Add monitor"})]})})};var en=e=>{let{integration:a,integrationOption:n}=e,{PAGE_SIZES:o,pageSize:l,setPageSize:r,onPreviousPageClick:s,isPreviousPageDisabled:d,onNextPageClick:c,isNextPageDisabled:u,startRange:_,endRange:v,pageIndex:S,setTotalPages:C}=(0,h.oi)(),{isLoading:f,isFetching:j,data:k}=(0,y.Fu)({page:S,size:l,connection_config_key:a.key}),M=(0,t.qY0)(),[A,T]=(0,g.useState)(void 0),[N,w]=(0,g.useState)(!1),[E,U]=(0,g.useState)(0),I=e=>{T(e),w(!0),M.onOpen()},R=null!=k?k:$,{items:L,total:D,pages:O}=(0,g.useMemo)(()=>R,[R]);(0,g.useEffect)(()=>{C(O)},[O,C]);let B=(0,g.useMemo)(()=>[ee.accessor(e=>e.name,{id:"name",cell:e=>(0,i.jsx)(h.G3,{value:e.getValue()}),header:e=>(0,i.jsx)(h.Rr,{value:"Name",...e})}),ee.accessor(e=>e.databases,{id:"projects",cell:e=>0===e.getValue().length?(0,i.jsx)(h.G3,{value:"All projects"}):(0,i.jsx)(h.WP,{suffix:"Projects",value:e.getValue(),...e,cellState:{isExpanded:!0}}),header:e=>(0,i.jsx)(h.Rr,{value:"Scope",...e})}),ee.accessor(e=>e.execution_frequency,{id:"frequency",cell:e=>{var a;return(0,i.jsx)(h.G3,{value:null!==(a=e.getValue())&&void 0!==a?a:"Not scheduled"})},header:e=>(0,i.jsx)(h.Rr,{value:"Scan frequency",...e})}),ee.accessor(e=>e.last_monitored,{id:"last_monitored",cell:e=>(0,i.jsx)(x.Cy,{time:e.getValue()}),header:e=>(0,i.jsx)(h.Rr,{value:"Last scan",...e})}),ee.accessor(e=>e.enabled,{id:"status",cell:X,header:e=>(0,i.jsx)(h.Rr,{value:"Status",...e}),size:0,meta:{disableRowClick:!0}}),ee.display({id:"action",cell:e=>(0,i.jsx)(Q,{onEditClick:()=>I(e.row.original),monitorId:e.row.original.key}),header:"Actions",meta:{disableRowClick:!0}})],[]),P=(0,m.b7)({getCoreRowModel:(0,F.sC)(),getGroupedRowModel:(0,F.qe)(),getExpandedRowModel:(0,F.rV)(),getRowId:e=>e.name,manualPagination:!0,data:L,columns:B,columnResizeMode:"onChange"});return f?(0,i.jsx)(p.Z,{}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.xvT,{maxW:"720px",mb:6,fontSize:"sm","data-testid":"monitor-description",children:(null==n?void 0:n.identifier)===q.Rj.WEBSITE?"Configure your website monitor to identify active ad tech vendors and tracking technologies across your site. This monitor will analyze selected pages for vendor activity, compliance with privacy requirements, and data collection practices. Set your preferences below to customize the monitor frequency and scan locations.":"A data discovery monitor observes configured systems for data model changes to proactively discover and classify data risks. Monitors can observe part or all of a project, dataset, table, or API for changes and each can be assigned to a different data steward."}),(0,i.jsxs)(h.Q$,{children:[(0,i.jsx)(t.LZC,{}),(0,i.jsx)(t.wpx,{onClick:M.onOpen,icon:(0,i.jsx)(b,{}),iconPosition:"end","data-testid":"add-monitor-btn",children:"Add monitor"}),(0,i.jsx)(W,{isOpen:M.isOpen,onClose:()=>{T(void 0),w(!1),U(0),M.onClose()},formStep:E,onAdvance:e=>{T(e),U(1)},monitor:A,isEditing:N,integration:a,integrationOption:n})]}),(0,i.jsx)(h.ZK,{tableInstance:P,onRowClick:I,emptyTableNotice:(0,i.jsx)(ea,{onAddClick:M.onOpen})}),(0,i.jsx)(h.s8,{totalRows:D||0,pageSizes:o,setPageSize:r,onPreviousPageClick:s,isPreviousPageDisabled:d||j,onNextPageClick:c,isNextPageDisabled:u||j,startRange:_,endRange:v})]})},ei=n(41966),et=n(32885),eo=e=>{let{integration:a}=e,{data:n}=(0,c.Eg)(a.key),{data:o}=(0,ei.LH)({minimal:!0,connection_type:q.Rj.BIGQUERY}),[l,{isLoading:r}]=(0,et.Qd)(),s=(0,t.pmc)(),d=async()=>{try{var e,i,t,r,d;let c=null!==(t=null==n?void 0:null===(e=n.items)||void 0===e?void 0:e.map(e=>e.fides_key))&&void 0!==t?t:[],u=null!==(r=null==o?void 0:o.map(e=>e.fides_key))&&void 0!==r?r:[],_=c.length>0?c:u,F=await l({connectionKey:a.key,datasetIds:_}),m=null!==(d=null===(i=F.data)||void 0===i?void 0:i.succeeded.length)&&void 0!==d?d:0,g="Fides has begun syncing with DataHub. There ".concat(1===m?"is":"are"," ").concat(m," dataset").concat(1===m?"":"s"," queued for syncing.");s((0,f.t5)(g))}catch(e){s({title:"Error syncing datasets",description:"There was an error syncing your datasets with DataHub. Please try again.",status:"error",duration:5e3,isClosable:!0})}};return(0,i.jsxs)(t.gCW,{spacing:6,align:"stretch",children:[(0,i.jsxs)(t.gCW,{spacing:4,align:"stretch",children:[(0,i.jsx)(t.xvT,{maxW:"720px",fontSize:"sm","data-testid":"scan-description-1",children:"If you're using DataHub for metadata management, select sync datasets to push data categories from Fides to your DataHub datasets."}),(0,i.jsxs)(t.xvT,{maxW:"720px",fontSize:"sm","data-testid":"scan-description-2",children:["Fides assigns data categories to datasets based on your privacy taxonomy. With this integration, those categories can be added as glossary terms to matching datasets in DataHub-keeping your labeling consistent across systems. To learn more about our DataHub integration, view our docs ",(0,i.jsx)(t.rUS,{href:"https://ethyca.com/docs/user-guides/integrations/saas-integrations/datahub",isExternal:!0,color:"blue.500",textDecoration:"underline",children:"here"}),"."]})]}),(0,i.jsx)(t.zxk,{colorScheme:"primary",onClick:d,"data-testid":"sync-button",width:"fit-content",isLoading:r,loadingText:"Syncing datasets...",children:"Sync Datasets"})]})},el=n(15987),er=n(64176),es=e=>{let{isOpen:a,onClose:n,connection:t}=e,o=(0,er.Z)(t.connection_type);return(0,i.jsx)(C.Z,{title:"Manage integration secret",isOpen:a,onClose:n,children:(0,i.jsx)(el.Z,{connection:t,connectionOption:o,onCancel:n})})},ed=n(41553),ec=n(75595),eu=()=>{var e,a;let{query:n}=(0,o.useRouter)(),F=Array.isArray(n.id)?n.id[0]:n.id,{data:m,isLoading:g}=(0,c.jA)(null!=F?F:""),p=(0,er.Z)(null==m?void 0:m.connection_type),{testConnection:b,isLoading:h,testData:x}=(0,u.Z)(m),{onOpen:y,isOpen:v,onClose:S}=(0,t.qY0)(),{overview:C,instructions:f}=(0,_.ZP)(null==m?void 0:m.connection_type),j=(0,o.useRouter)();m&&!_.jq.includes(m.connection_type)&&j.push(s.KH);let k=[{label:"Connection",content:(0,i.jsxs)(t.xuv,{maxW:"720px",children:[(0,i.jsxs)(t.kCb,{borderRadius:"md",outline:"1px solid",outlineColor:"gray.100",align:"center",p:3,children:[(0,i.jsx)(t.kCb,{flexDirection:"column",children:(0,i.jsx)(ed.Z,{testData:x})}),(0,i.jsx)(t.LZC,{}),(0,i.jsxs)("div",{className:"flex gap-4",children:[(0,i.jsx)(t.wpx,{onClick:b,loading:h,"data-testid":"test-connection-btn",children:"Test connection"}),(0,i.jsx)(t.wpx,{onClick:y,"data-testid":"manage-btn",children:"Manage"})]})]}),(0,i.jsx)(es,{isOpen:v,onClose:S,connection:m}),C,f]})}];return(null==m?void 0:m.connection_type)===q.Rj.DATAHUB?k.push({label:"Data sync",content:(0,i.jsx)(eo,{integration:m})}):k.push({label:"Data discovery",content:(0,i.jsx)(en,{integration:m,integrationOption:p})}),(0,i.jsx)(r.Z,{title:"Integrations",children:(0,i.jsxs)(d.Z,{heading:"Integrations",breadcrumbItems:[{title:"All integrations",href:s.KH},{title:null!==(a=null!==(e=null==m?void 0:m.name)&&void 0!==e?e:null==m?void 0:m.key)&&void 0!==a?a:""}],children:[(0,i.jsx)(ec.Z,{integration:m,showDeleteButton:!0}),g?(0,i.jsx)(t.$jN,{}):!!m&&(0,i.jsx)(l.Z,{data:k,isLazy:!0})]})})}}},function(e){e.O(0,[8033,6060,2858,2866,9278,9255,4481,5973,2888,9774,179],function(){return e(e.s=50697)}),_N_E=e.O()}]);