Skip to content

Commit

Permalink
Disable editing fields for GVL vendors (#4327)
Browse files Browse the repository at this point in the history
  • Loading branch information
jpople committed Nov 9, 2023
1 parent ddc755d commit c9a465d
Show file tree
Hide file tree
Showing 13 changed files with 278 additions and 54 deletions.
29 changes: 26 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ The types of changes are:
- Erasure support for Ada Chatbot [#4382](https://github.com/ethyca/fides/pull/4382)
- Erasure support for Typeform [#4366](https://github.com/ethyca/fides/pull/4366)

## Added

- Added notice that a system is GVL when adding/editing from system form [#4327](https://github.com/ethyca/fides/pull/4327)

### Changed
- Add filtering and pagination to bulk vendor add table [#4351](https://github.com/ethyca/fides/pull/4351)
- Determine if the TCF overlay needs to surface based on backend calculated version hash [#4356](https://github.com/ethyca/fides/pull/4356)
Expand Down Expand Up @@ -62,6 +66,7 @@ The types of changes are:
- Updated double toggle styling in favor of single toggles with a radio group to select legal basis [#4376](https://github.com/ethyca/fides/pull/4376)

### Fixed

- Handle invalid `fides_string` when passed in as an override [#4350](https://github.com/ethyca/fides/pull/4350)
- Bug where vendor opt-ins would not initialize properly based on a `fides_string` in the TCF overlay [#4368](https://github.com/ethyca/fides/pull/4368)

Expand Down Expand Up @@ -97,6 +102,7 @@ The types of changes are:
- Removes overflow styling for embedded modal in Fides.js [#4345](https://github.com/ethyca/fides/pull/4345)

### Changed

- Derive cookie storage info, privacy policy and legitimate interest disclosure URLs, and data retention data from the data map instead of directly from gvl.json [#4286](https://github.com/ethyca/fides/pull/4286)
- Updated TCF Version for backend consent reporting [#4305](https://github.com/ethyca/fides/pull/4305)
- Update Version Hash Contents [#4313](https://github.com/ethyca/fides/pull/4313)
Expand All @@ -106,16 +112,19 @@ The types of changes are:
## [2.22.1](https://github.com/ethyca/fides/compare/2.22.0...2.22.1)

### Added

- Custom fields are now included in system history change tracking [#4294](https://github.com/ethyca/fides/pull/4294)

### Security

- Added hostname checks for external SaaS connector URLs [CVE-2023-46124](https://github.com/ethyca/fides/security/advisories/GHSA-jq3w-9mgf-43m4)
- Use a Pydantic URL type for privacy policy URLs [CVE-2023-46126](https://github.com/ethyca/fides/security/advisories/GHSA-fgjj-5jmr-gh83)
- Remove the CONFIG_READ scope from the Viewer role [CVE-2023-46125](https://github.com/ethyca/fides/security/advisories/GHSA-rjxg-rpg3-9r89)

## [2.22.0](https://github.com/ethyca/fides/compare/2.21.0...2.22.0)

### Added

- Added an option to link to vendor tab from an experience config description [#4191](https://github.com/ethyca/fides/pull/4191)
- Added two toggles for vendors in the TCF overlay, one for Consent, and one for Legitimate Interest [#4189](https://github.com/ethyca/fides/pull/4189)
- Added two toggles for purposes in the TCF overlay, one for Consent, and one for Legitimate Interest [#4234](https://github.com/ethyca/fides/pull/4234)
Expand All @@ -124,6 +133,7 @@ The types of changes are:
- Support for `gvl` prefixed vendor IDs [#4247](https://github.com/ethyca/fides/pull/4247)

### Changed

- Removed `TCF_ENABLED` environment variable from the privacy center in favor of dynamically figuring out which `fides-js` bundle to send [#4131](https://github.com/ethyca/fides/pull/4131)
- Updated copy of info boxes on each TCF tab [#4191](https://github.com/ethyca/fides/pull/4191)
- Clarified messages for error messages presented during connector upload [#4198](https://github.com/ethyca/fides/pull/4198)
Expand All @@ -143,6 +153,7 @@ The types of changes are:
- Changed naming convention "fides_string" instead of "tc_string" for developer friendly consent API's [#4267](https://github.com/ethyca/fides/pull/4267)

### Fixed

- TCF overlay can initialize its consent preferences from a cookie [#4124](https://github.com/ethyca/fides/pull/4124)
- Various improvements to the TCF modal such as vendor storage disclosures, vendor counts, privacy policies, etc. [#4167](https://github.com/ethyca/fides/pull/4167)
- An issue where Braze could not mask an email due to formatting [#4187](https://github.com/ethyca/fides/pull/4187)
Expand All @@ -157,6 +168,7 @@ The types of changes are:
## [2.21.0](https://github.com/ethyca/fides/compare/2.20.2...2.21.0)

### Added

- "Add a vendor" flow to configuring consent page [#4107](https://github.com/ethyca/fides/pull/4107)
- Initial TCF Backend Support [#3804](https://github.com/ethyca/fides/pull/3804)
- Add initial layer to TCF modal [#3956](https://github.com/ethyca/fides/pull/3956)
Expand All @@ -174,6 +186,7 @@ The types of changes are:
- Added fides.css customization for Plus users [#4136](https://github.com/ethyca/fides/pull/4136)

### Changed

- Added further config options to customize the privacy center [#4090](https://github.com/ethyca/fides/pull/4090)
- CORS configuration page [#4073](https://github.com/ethyca/fides/pull/4073)
- Refactored `fides.js` components so that they can take data structures that are not necessarily privacy notices [#3870](https://github.com/ethyca/fides/pull/3870)
Expand All @@ -183,12 +196,14 @@ The types of changes are:
- Misc copy changes for the system history table and modal [#4146](https://github.com/ethyca/fides/pull/4146)

### Fixed
- Allows CDN to cache empty experience responses from fides.js API [#4113](https://github.com/ethyca/fides/pull/4113)

- Allows CDN to cache empty experience responses from fides.js API [#4113](https://github.com/ethyca/fides/pull/4113)
- Fixed `identity_special_purpose` unique constraint definition [#4174](https://github.com/ethyca/fides/pull/4174/files)

## [2.20.2](https://github.com/ethyca/fides/compare/2.20.1...2.20.2)

### Fixed

- added version_added, version_deprecated, and replaced_by to data use, data subject, and data category APIs [#4135](https://github.com/ethyca/fides/pull/4135)
- Update fides.js to not fetch experience client-side if pre-fetched experience is empty [#4149](https://github.com/ethyca/fides/pull/4149)
- Erasure privacy requests now pause for input if there are any manual process integrations [#4115](https://github.com/ethyca/fides/pull/4115)
Expand All @@ -203,6 +218,7 @@ The types of changes are:
## [2.20.0](https://github.com/ethyca/fides/compare/2.19.1...2.20.0)

### Added

- Initial page for configuring consent [#4069](https://github.com/ethyca/fides/pull/4069)
- Vendor cookie table for configuring consent [#4082](https://github.com/ethyca/fides/pull/4082)

Expand Down Expand Up @@ -239,7 +255,6 @@ The types of changes are:
- System history UI with diff modal [#4021](https://github.com/ethyca/fides/pull/4021)
- Relax system legal basis for transfers to be any string [#4049](https://github.com/ethyca/fides/pull/4049)


## [2.19.0](https://github.com/ethyca/fides/compare/2.18.0...2.19.0)

### Added
Expand All @@ -258,7 +273,7 @@ The types of changes are:
- Fixed dataset issue that was preventing the Vend connector from loading during server startup [#3923](https://github.com/ethyca/fides/pull/3923)
- Adding version check to version-dependent migration script [#3951](https://github.com/ethyca/fides/pull/3951)
- Fixed a bug where some fields were not saving correctly on the system form [#3975](https://github.com/ethyca/fides/pull/3975)
- Changed "retention period" field in privacy declaration form from number input to text input [#3980](https://github.com/ethyca/fides/pull/3980)
- Changed "retention period" field in privacy declaration form from number input to text input [#3980](https://github.com/ethyca/fides/pull/3980)
- Fixed issue where unsaved changes modal appears incorrectly [#4005](https://github.com/ethyca/fides/pull/4005)
- Fixed banner resurfacing after user consent for pre-fetch experience [#4009](https://github.com/ethyca/fides/pull/4009)

Expand All @@ -272,6 +287,7 @@ The types of changes are:
- Admin ui supports fides cloud config API [#4034](https://github.com/ethyca/fides/pull/4034)

### Security

- Resolve custom integration upload RCE vulnerability [CVE-2023-41319](https://github.com/ethyca/fides/security/advisories/GHSA-p6p2-qq95-vq5h)

## [2.18.0](https://github.com/ethyca/fides/compare/2.17.0...2.18.0)
Expand All @@ -286,6 +302,7 @@ The types of changes are:
- Changes in the `data` directory now trigger a server reload (for local development) [#3874](https://github.com/ethyca/fides/pull/3874)

### Fixed

- Fix datamap zoom for low system counts [#3835](https://github.com/ethyca/fides/pull/3835)
- Fixed connector forms with external dataset reference fields [#3873](https://github.com/ethyca/fides/pull/3873)
- Fix ability to make server side API calls from privacy-center [#3895](https://github.com/ethyca/fides/pull/3895)
Expand Down Expand Up @@ -332,6 +349,7 @@ The types of changes are:
- Erasure support for Heap [#3599](https://github.com/ethyca/fides/pull/3599)

### Fixed

- Privacy notice UI's list of possible regions now matches the backend's list [#3787](https://github.com/ethyca/fides/pull/3787)
- Admin UI "property does not existing" build issue [#3831](https://github.com/ethyca/fides/pull/3831)
- Flagging sensitive inputs as passwords to mask values during entry [#3843](https://github.com/ethyca/fides/pull/3843)
Expand Down Expand Up @@ -376,23 +394,28 @@ The types of changes are:
- Enable privacy notice and privacy experience feature flags by default [#3773](https://github.com/ethyca/fides/pull/3773)

### Security

- Resolve Zip bomb file upload vulnerability [CVE-2023-37480](https://github.com/ethyca/fides/security/advisories/GHSA-g95c-2jgm-hqc6)
- Resolve SVG bomb (billion laughs) file upload vulnerability [CVE-2023-37481](https://github.com/ethyca/fides/security/advisories/GHSA-3rw2-wfc8-wmj5)

## [2.15.1](https://github.com/ethyca/fides/compare/2.15.0...2.15.1)

### Added

- Set `sslmode` to `prefer` if connecting to Redshift via ssh [#3685](https://github.com/ethyca/fides/pull/3685)

### Changed

- Privacy center action cards are now able to expand to accommodate longer text [#3669](https://github.com/ethyca/fides/pull/3669)
- Update integration endpoint permissions [#3707](https://github.com/ethyca/fides/pull/3707)

### Fixed

- Handle names with a double underscore when processing access and erasure requests [#3688](https://github.com/ethyca/fides/pull/3688)
- Allow Privacy Notices banner and modal to scroll as needed [#3713](https://github.com/ethyca/fides/pull/3713)

### Security

- Resolve path traversal vulnerability in webserver API [CVE-2023-36827](https://github.com/ethyca/fides/security/advisories/GHSA-r25m-cr6v-p9hq)

## [2.15.0](https://github.com/ethyca/fides/compare/2.14.1...2.15.0)
Expand Down
5 changes: 5 additions & 0 deletions clients/admin-ui/cypress/e2e/systems-plus.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ describe("System management with Plus features", () => {
);
});

it("locks editing for a GVL vendor when TCF is enabled", () => {
cy.getSelectValueContainer("input-vendor_id").type("Aniview{enter}");
cy.getByTestId("locked-for-GVL-notice");
});

// some DictSuggestionTextInputs don't get populated right, causing
// the form to be mistakenly marked as dirty and the "unsaved changes"
// modal to pop up incorrectly when switching tabs
Expand Down
1 change: 1 addition & 0 deletions clients/admin-ui/src/features/plus/plus.slice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ export const {
useGetAllDictionaryEntriesQuery,
useGetFidesCloudConfigQuery,
useGetDictionaryDataUsesQuery,
useLazyGetDictionaryDataUsesQuery,
useGetAllSystemVendorsQuery,
usePostSystemVendorsMutation,
useGetSystemHistoryQuery,
Expand Down
28 changes: 28 additions & 0 deletions clients/admin-ui/src/features/system/GVLNotice.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { Box, Link } from "@fidesui/react";

import EmptyTableState from "~/features/common/table/EmptyTableState";

const GVLNotice = () => (
<Box mb="6" maxW="720px" data-testid="locked-for-GVL-notice">
<EmptyTableState
title="This system is part of the TCF Global Vendor List (GVL)"
description={
<>
As a result, the system fields are not editable as they come directly
from Fides Compass and the Global Vendor List (GVL). In some cases
where the legal basis has been declared to be flexible, you may update
the legal basis for particular data uses.{" "}
<Link
href="https://fid.es/tcf_gvl"
isExternal
color="complimentary.500"
>
For more information on the Global Vendor List, click here.
</Link>
</>
}
/>
</Box>
);

export default GVLNotice;
6 changes: 6 additions & 0 deletions clients/admin-ui/src/features/system/SystemFormTabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ import {
import { useSystemOrDatamapRoute } from "~/features/common/hooks/useSystemOrDatamapRoute";
import { DEFAULT_TOAST_PARAMS } from "~/features/common/toast";
import ConnectionForm from "~/features/datastore-connections/system_portal_config/ConnectionForm";
import {
setLockedForGVL,
setSuggestions,
} from "~/features/system/dictionary-form/dict-suggestion.slice";
import PrivacyDeclarationStep from "~/features/system/privacy-declarations/PrivacyDeclarationStep";
import { SystemResponse } from "~/types/api";

Expand Down Expand Up @@ -145,6 +149,8 @@ const SystemFormTabs = ({
*/
if (isCreate) {
dispatch(setActiveSystem(undefined));
dispatch(setSuggestions("initial"));
dispatch(setLockedForGVL(false));
}
return () => {
// on unmount, unset the active system
Expand Down
Loading

0 comments on commit c9a465d

Please sign in to comment.