ethyca-fides 2.57.1b0__py2.py3-none-any.whl → 2.57.1b2__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 (125) hide show
  1. {ethyca_fides-2.57.1b0.dist-info → ethyca_fides-2.57.1b2.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.57.1b0.dist-info → ethyca_fides-2.57.1b2.dist-info}/RECORD +120 -119
  3. fides/_version.py +3 -3
  4. fides/api/alembic/migrations/versions/7c3fbee90c78_add_user_assigned_data_uses_and_system_.py +54 -0
  5. fides/api/api/v1/endpoints/generic_overrides.py +5 -0
  6. fides/api/models/detection_discovery.py +12 -0
  7. fides/api/models/location_regulation_selections.py +1 -0
  8. fides/api/models/sql_models.py +28 -5
  9. fides/api/schemas/saas/strategy_configuration.py +1 -0
  10. fides/api/service/pagination/pagination_strategy_cursor.py +15 -1
  11. fides/api/service/pagination/pagination_strategy_link.py +1 -1
  12. fides/data/language/languages.yml +2 -0
  13. fides/data/location/locations.yml +244 -1
  14. fides/ui-build/static/admin/404.html +1 -1
  15. fides/ui-build/static/admin/_next/static/{7v-H0NGW-LcEPEo86bsrZ → GEhqjcjbK3ZJvllGHPFpc}/_buildManifest.js +1 -1
  16. fides/ui-build/static/admin/_next/static/chunks/3215-c8c683b93919e0a5.js +1 -0
  17. fides/ui-build/static/admin/_next/static/chunks/4481-0500c40ed13000c0.js +1 -0
  18. fides/ui-build/static/admin/_next/static/chunks/5973-3226fe183b48668b.js +1 -0
  19. fides/ui-build/static/admin/_next/static/chunks/7044-dc0de38581720a6f.js +1 -0
  20. fides/ui-build/static/admin/_next/static/chunks/{9767-4c591bd478c72650.js → 9767-9af77524ed1648c1.js} +1 -1
  21. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-c580f4c12ff5a438.js → _app-ef2643f4e3bede71.js} +1 -1
  22. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-d7f60624cbc12217.js → manual-05ab19822a7e9f80.js} +1 -1
  23. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/{[systemId]-00526324583139ab.js → [systemId]-b9fe0f7ef05fd12c.js} +1 -1
  24. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a8e08ecb0c6c3a7c.js +1 -0
  25. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-c685d19a131d6960.js → [id]-bbe5854b7d19b7e9.js} +1 -1
  26. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-82d9af34546adaa2.js → [id]-ca753b60ca1745c5.js} +1 -1
  27. fides/ui-build/static/admin/_next/static/css/{b8dbda131f8d4c05.css → 957d0e4fea846ff0.css} +1 -1
  28. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  29. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  30. fides/ui-build/static/admin/add-systems.html +1 -1
  31. fides/ui-build/static/admin/ant-poc.html +1 -1
  32. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  33. fides/ui-build/static/admin/consent/configure.html +1 -1
  34. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  35. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  36. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  37. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  38. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  39. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  40. fides/ui-build/static/admin/consent/properties.html +1 -1
  41. fides/ui-build/static/admin/consent/reporting.html +1 -1
  42. fides/ui-build/static/admin/consent.html +1 -1
  43. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  44. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  45. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  46. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  47. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  48. fides/ui-build/static/admin/data-catalog.html +1 -1
  49. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  50. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  51. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  52. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  53. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  54. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  55. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  56. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  57. fides/ui-build/static/admin/datamap.html +1 -1
  58. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  59. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  60. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  61. fides/ui-build/static/admin/dataset/new.html +1 -1
  62. fides/ui-build/static/admin/dataset.html +1 -1
  63. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  64. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  65. fides/ui-build/static/admin/datastore-connection.html +1 -1
  66. fides/ui-build/static/admin/index.html +1 -1
  67. fides/ui-build/static/admin/integrations/[id].html +1 -1
  68. fides/ui-build/static/admin/integrations.html +1 -1
  69. fides/ui-build/static/admin/lib/fides-ext-gpp.js +1 -1
  70. fides/ui-build/static/admin/lib/fides-tcf.js +3 -3
  71. fides/ui-build/static/admin/login/[provider].html +1 -1
  72. fides/ui-build/static/admin/login.html +1 -1
  73. fides/ui-build/static/admin/messaging/[id].html +1 -1
  74. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  75. fides/ui-build/static/admin/messaging.html +1 -1
  76. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  77. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  78. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  79. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  80. fides/ui-build/static/admin/privacy-requests.html +1 -1
  81. fides/ui-build/static/admin/properties/[id].html +1 -1
  82. fides/ui-build/static/admin/properties/add-property.html +1 -1
  83. fides/ui-build/static/admin/properties.html +1 -1
  84. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  85. fides/ui-build/static/admin/settings/about.html +1 -1
  86. fides/ui-build/static/admin/settings/consent.html +1 -1
  87. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  88. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  89. fides/ui-build/static/admin/settings/domains.html +1 -1
  90. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  91. fides/ui-build/static/admin/settings/locations.html +1 -1
  92. fides/ui-build/static/admin/settings/organization.html +1 -1
  93. fides/ui-build/static/admin/settings/regulations.html +1 -1
  94. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  95. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  96. fides/ui-build/static/admin/systems.html +1 -1
  97. fides/ui-build/static/admin/taxonomy.html +1 -1
  98. fides/ui-build/static/admin/user-management/new.html +1 -1
  99. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  100. fides/ui-build/static/admin/user-management.html +1 -1
  101. fides/ui-build/static/admin/_next/static/chunks/3627-fb83adac32c128e6.js +0 -1
  102. fides/ui-build/static/admin/_next/static/chunks/4481-ca8d2c75d634b6bc.js +0 -1
  103. fides/ui-build/static/admin/_next/static/chunks/5973-67c7562997f7d5cb.js +0 -1
  104. fides/ui-build/static/admin/_next/static/chunks/7044-9dc90893067f38ae.js +0 -1
  105. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a6448ce6ba7f0cf5.js +0 -1
  106. {ethyca_fides-2.57.1b0.dist-info → ethyca_fides-2.57.1b2.dist-info}/LICENSE +0 -0
  107. {ethyca_fides-2.57.1b0.dist-info → ethyca_fides-2.57.1b2.dist-info}/WHEEL +0 -0
  108. {ethyca_fides-2.57.1b0.dist-info → ethyca_fides-2.57.1b2.dist-info}/entry_points.txt +0 -0
  109. {ethyca_fides-2.57.1b0.dist-info → ethyca_fides-2.57.1b2.dist-info}/top_level.txt +0 -0
  110. /fides/ui-build/static/admin/_next/static/{7v-H0NGW-LcEPEo86bsrZ → GEhqjcjbK3ZJvllGHPFpc}/_ssgManifest.js +0 -0
  111. /fides/ui-build/static/admin/_next/static/chunks/{2397-7177ecf4ebe68feb.js → 2397-d8161100e3634f2c.js} +0 -0
  112. /fides/ui-build/static/admin/_next/static/chunks/{3855-5c7b11871f59e0e0.js → 3855-386aec4f0e0e89f1.js} +0 -0
  113. /fides/ui-build/static/admin/_next/static/chunks/{3872-f3d5054bdc584eaa.js → 3872-0da2c6a790542bd6.js} +0 -0
  114. /fides/ui-build/static/admin/_next/static/chunks/{6277-515c922445b8edc5.js → 6277-cad7c7c8cf48dbec.js} +0 -0
  115. /fides/ui-build/static/admin/_next/static/chunks/{6853-cacea421af3bfc26.js → 6853-2777b5ab5717fada.js} +0 -0
  116. /fides/ui-build/static/admin/_next/static/chunks/{9046-80f1ea44f89fe32c.js → 9046-b18572b89f0aaa92.js} +0 -0
  117. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-35e9df60b21e21a6.js → privacy-experience-8b9f75fc0f131240.js} +0 -0
  118. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-97fea4ac45093cbd.js → reporting-81ca1ac6f52ec342.js} +0 -0
  119. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-1f965b9c496071d1.js → projects-742849f39b646a2f.js} +0 -0
  120. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-f0ab51d0d5f995de.js → [monitorId]-deec7b789ef30dc4.js} +0 -0
  121. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-1d7936f05d23097f.js → activity-0cfa8a9caf7c75c3.js} +0 -0
  122. /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-a3fa3ad77730a03b.js → datamap-449ad3b08750bfc2.js} +0 -0
  123. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-744e7bbc200557e7.js → custom-fields-ce9305fa04fecbb8.js} +0 -0
  124. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-45e33ba111f8f8b0.js → locations-f35bd2d0c10aa58c.js} +0 -0
  125. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-94975aeab348528e.js → regulations-ba8c25b63bbf7dc2.js} +0 -0
@@ -295,15 +295,38 @@ class Dataset(Base, FidesBase):
295
295
  collections = Column(JSON)
296
296
  fides_meta = Column(JSON)
297
297
 
298
+ @classmethod
299
+ def create(
300
+ cls: Type["Dataset"],
301
+ db: Session,
302
+ *,
303
+ data: dict[str, Any],
304
+ check_name: bool = False,
305
+ ) -> "Dataset":
306
+ """
307
+ Override create to check for existing datasets with the same fides_key.
308
+ Duplicate names are allowed.
309
+ """
310
+ # Check if dataset with same fides_key already exists
311
+ if "fides_key" in data:
312
+ existing_by_key = (
313
+ db.query(cls).filter(cls.fides_key == data["fides_key"]).first()
314
+ )
315
+ if existing_by_key:
316
+ raise KeyOrNameAlreadyExists(
317
+ f'Dataset with fides_key "{data["fides_key"]}" already exists.'
318
+ )
319
+
320
+ # Create the dataset using the parent class's method
321
+ db_obj = cls(**data)
322
+ return cls.persist_obj(db, db_obj)
323
+
298
324
  @classmethod
299
325
  def create_from_dataset_dict(cls, db: Session, dataset: dict) -> "Dataset":
300
326
  """Add a method to create directly using a synchronous session"""
301
327
  validated_dataset: FideslangDataset = FideslangDataset(**dataset)
302
- ctl_dataset = cls(**validated_dataset.model_dump(mode="json"))
303
- db.add(ctl_dataset)
304
- db.commit()
305
- db.refresh(ctl_dataset)
306
- return ctl_dataset
328
+ data_dict = validated_dataset.model_dump(mode="json")
329
+ return cls.create(db=db, data=data_dict)
307
330
 
308
331
  @property
309
332
  def field_data_categories(self) -> Set[str]:
@@ -89,6 +89,7 @@ class CursorPaginationConfiguration(StrategyConfiguration):
89
89
 
90
90
  cursor_param: str
91
91
  field: str
92
+ has_next: Optional[str] = None
92
93
 
93
94
 
94
95
  class ApiKeyAuthenticationConfiguration(StrategyConfiguration):
@@ -1,6 +1,7 @@
1
1
  from typing import Any, Dict, Optional
2
2
 
3
3
  import pydash
4
+ from loguru import logger
4
5
  from requests import Response
5
6
 
6
7
  from fides.api.schemas.saas.shared_schemas import SaaSRequestParams
@@ -15,6 +16,7 @@ class CursorPaginationStrategy(PaginationStrategy):
15
16
  def __init__(self, configuration: CursorPaginationConfiguration):
16
17
  self.cursor_param = configuration.cursor_param
17
18
  self.field = configuration.field
19
+ self.has_next = configuration.has_next
18
20
 
19
21
  def get_next_request(
20
22
  self,
@@ -27,11 +29,15 @@ class CursorPaginationStrategy(PaginationStrategy):
27
29
 
28
30
  # get the last object in the array and read the cursor value
29
31
  cursor = None
32
+ has_next = None
30
33
  object_list = (
31
34
  pydash.get(response.json(), data_path) if data_path else response.json()
32
35
  )
33
36
  if object_list and isinstance(object_list, list):
34
- cursor = pydash.get(object_list.pop(), self.field)
37
+ last_object = object_list.pop()
38
+ cursor = pydash.get(last_object, self.field)
39
+ if self.has_next:
40
+ has_next = pydash.get(last_object, self.has_next)
35
41
 
36
42
  # If the cursor value isn't found, try to find the value in response.json() using the field value
37
43
  if cursor is None:
@@ -41,6 +47,14 @@ class CursorPaginationStrategy(PaginationStrategy):
41
47
  if cursor is None:
42
48
  return None
43
49
 
50
+ if self.has_next and has_next is None:
51
+ has_next = pydash.get(response.json(), self.has_next)
52
+
53
+ if self.has_next:
54
+ logger.debug(f"The {self.has_next} field has a value of {has_next}")
55
+ if str(has_next).lower() != "true":
56
+ return None
57
+
44
58
  # add or replace cursor_param with new cursor value
45
59
  request_params.query_params[self.cursor_param] = cursor
46
60
 
@@ -43,7 +43,7 @@ class LinkPaginationStrategy(PaginationStrategy):
43
43
 
44
44
  if self.has_next:
45
45
  has_next = pydash.get(response.json(), self.has_next)
46
- logger.info(f"The {self.has_next} field has a value of {has_next}")
46
+ logger.debug(f"The {self.has_next} field has a value of {has_next}")
47
47
  if str(has_next).lower() != "true":
48
48
  return None
49
49
 
@@ -45,6 +45,8 @@ languages:
45
45
  name: Italian
46
46
  - id: ja
47
47
  name: Japanese
48
+ - id: ko
49
+ name: Korean
48
50
  - id: lt
49
51
  name: Lithuanian
50
52
  - id: lv