Skip to content

Commit 7a666e1

Browse files
authored
Merge branch 'main' into johnewart/python3.13
2 parents a89735d + f6ed3ee commit 7a666e1

File tree

111 files changed

+5800
-1397
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+5800
-1397
lines changed

.fides/db_dataset.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,6 +1538,16 @@ dataset:
15381538
data_categories: [system.operations]
15391539
- name: dismissable
15401540
data_categories: [system.operations]
1541+
- name: gpc_description
1542+
data_categories: [system.operations]
1543+
- name: gpc_label
1544+
data_categories: [system.operations]
1545+
- name: gpc_status_applied_label
1546+
data_categories: [system.operations]
1547+
- name: gpc_status_overridden_label
1548+
data_categories: [system.operations]
1549+
- name: gpc_title
1550+
data_categories: [system.operations]
15411551
- name: show_layer1_notices
15421552
data_categories: [ system.operations ]
15431553
- name: layer1_button_options
@@ -2404,6 +2414,16 @@ dataset:
24042414
data_categories: [system.operations]
24052415
- name: experience_config_id
24062416
data_categories: [system.operations]
2417+
- name: gpc_description
2418+
data_categories: [system.operations]
2419+
- name: gpc_label
2420+
data_categories: [system.operations]
2421+
- name: gpc_status_applied_label
2422+
data_categories: [system.operations]
2423+
- name: gpc_status_overridden_label
2424+
data_categories: [system.operations]
2425+
- name: gpc_title
2426+
data_categories: [system.operations]
24072427
- name: id
24082428
data_categories: [system.operations]
24092429
- name: is_default

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,31 @@ Changes can also be flagged with a GitHub label for tracking purposes. The URL o
2323

2424
### Added
2525
- Supports multi-select for the data explorer in the Action Center [#7093](https://github.com/ethyca/fides/pull/7093)
26+
- Support for preserving customer field changes to SaaS datasets [#7002](https://github.com/ethyca/fides/pull/7002)
27+
- Added location filter to new request manager screen [#7132](https://github.com/ethyca/fides/pull/7132)
28+
- Added handling for "page-level" errors [#7144](https://github.com/ethyca/fides/pull/7144)
29+
- Added sorting to new request manager screen [#7138](https://github.com/ethyca/fides/pull/7138)
30+
2631

2732
### Changed
2833
- Bulk privacy request actions now accept filter sets as well as lists, enables select all functionality. [#7027](https://github.com/ethyca/fides/pull/7027)
34+
- Improvements to the UI/UX of the new request manager screen [#7128](https://github.com/ethyca/fides/pull/7128)
35+
- Increasing default async DB pool size to 50 pooled connections and 50 overflow connections [#7126](https://github.com/ethyca/fides/pull/7126)
36+
- Track active taxonomy in URL in taxonomy screen [#7113](https://github.com/ethyca/fides/pull/7113)
37+
- Updated status labels for the Action Center [#7098](https://github.com/ethyca/fides/pull/7098)
38+
- Extending read-only DB configuration [#7139](https://github.com/ethyca/fides/pull/7139)
2939

3040
### Developer Experience
3141
- Migrated consent settings tables to Ant Design [#7084](https://github.com/ethyca/fides/pull/7084)
42+
- Migrated privacy notices table to Ant Design [#7087](https://github.com/ethyca/fides/pull/7087)
43+
- Update Ant modal hook usage [#7086](https://github.com/ethyca/fides/pull/7086)
44+
- Added reusable animation components to FidesUI [#7125](https://github.com/ethyca/fides/pull/7125)
3245

3346
### Fixed
3447
- Fixed layout issues in Action Center and Monitor Configuration UI [#7092](https://github.com/ethyca/fides/pull/7092)
48+
- Fixed incorrect date format string [#7143](https://github.com/ethyca/fides/pull/7143)
49+
- Fixed dsr error toast staying while navigating [#7149](https://github.com/ethyca/fides/pull/7149)
50+
- Fixed repeatedly clicking "Delete" on custom fields causing multiple errors [#7115](https://github.com/ethyca/fides/pull/7115)
3551

3652

3753
## [2.76.1](https://github.com/ethyca/fides/compare/2.76.0..2.76.1)
@@ -40,6 +56,9 @@ Changes can also be flagged with a GitHub label for tracking purposes. The URL o
4056
- Added options to use privacy request fields as manual task conditions [#7089](https://github.com/ethyca/fides/pull/7089)
4157
- Added new indexes on privacy requests and provided identities to speed up duplicate detection. [#7095](https://github.com/ethyca/fides/pull/7095) https://github.com/ethyca/fides/labels/db-migration
4258

59+
### Security
60+
- Upgraded NextJS and React dependencies in Privacy Center to fix new vulnerabilities [#7112](https://github.com/ethyca/fides/pull/7112)
61+
4362

4463
## [2.76.0](https://github.com/ethyca/fides/compare/2.75.2..2.76.0)
4564

clients/.cursor/rules/frontend.mdc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Follow these rules when you write code:
2828
- Generally prefer TS `interface` over `type` when it makes sense to do so.
2929
- Avoid `any` types and `@ts-expect-error`, especially when it's related to the current task. Suggest ways to get the typing correct instead.
3030
- Never omit curly braces around blocks.
31-
- Only use tailwindcss for layout classes, no colors, fonts, borders, etc.
31+
- Only use tailwindcss for layout and animation classes, no colors, fonts, borders, etc.
3232
- FidesDebugger is a global that never needs to be imported; It should never be used for error handling.
3333
- Any time we import an Ant component with prefix "Ant" we should import "as" the suffix: For example "AntSelect as Select".
3434
- Titles, heading text, and buttons in the HTML/JSX should be sentence-cased, not title-cased.

clients/admin-ui/cypress/e2e/action-center/aggregate-results.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ describe("Action center", () => {
6969
.find(".ant-list-item-meta-description")
7070
.should(
7171
"have.text",
72-
"216 Unlabeled, 22 Classifying, 13 In review, 2 Removals",
72+
"216 Unlabeled, 22 Classifying, 13 Classified, 2 Removals",
7373
);
7474
// date tooltip
7575
cy.getByTestId(`monitor-result-${results[0].key}`).within(() => {

clients/admin-ui/cypress/e2e/config-wizard.cy.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ describe("Config Wizard", () => {
100100
beforeEach(() => {
101101
stubSystemCrud();
102102
stubTaxonomyEntities();
103+
cy.overrideFeatureFlag("oktaMonitor", false);
103104

104105
cy.visit(ADD_SYSTEMS_ROUTE);
105106
// Select Okta to move to form step.

clients/admin-ui/cypress/e2e/custom-fields.cy.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { getByRole } from "@testing-library/dom";
12
import { stubCustomFields, stubPlus } from "cypress/support/stubs";
23

34
import { RoleRegistryEnum } from "~/types/api";
@@ -169,7 +170,9 @@ describe("Custom Fields V2", () => {
169170
cy.contains("Are you sure you want to delete").should("be.visible");
170171

171172
// Confirm deletion
172-
cy.getByTestId("continue-btn").click();
173+
cy.get(".ant-modal-confirm-btns").within(() => {
174+
cy.contains("Delete").click();
175+
});
173176
cy.wait("@deleteCustomFieldDefinition")
174177
.its("response.statusCode")
175178
.should("eq", 204);

clients/admin-ui/cypress/e2e/data-catalog.cy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,10 @@ describe("data catalog", () => {
9292
).should("contain", "Classifying");
9393
cy.getByTestId(
9494
"row-bigquery_monitor.prj-bigquery-333333-col-status",
95-
).should("contain", "In review");
95+
).should("contain", "Classified");
9696
cy.getByTestId(
9797
"row-bigquery_monitor.prj-bigquery-444444-col-status",
98-
).should("contain", "Approved");
98+
).should("contain", "Reviewed");
9999
});
100100

101101
it("should navigate to dataset view on click", () => {

clients/admin-ui/cypress/e2e/privacy-notices.cy.ts

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,11 @@ describe("Privacy notices", () => {
105105
cy.get("tbody > tr").first().should("contain", "Functional");
106106
});
107107

108-
it("can click a row to go to the notice page", () => {
108+
it("can click a link to go to the notice page", () => {
109109
cy.intercept("GET", "/api/v1/privacy-notice/pri*", {
110110
fixture: "privacy-notices/notice.json",
111111
}).as("getNoticeDetail");
112-
cy.get("table").contains("td", "Essential").click();
112+
cy.getByTestId("notice-name").contains("Essential").click();
113113
cy.wait("@getNoticeDetail");
114114
cy.getByTestId("privacy-notice-detail-page");
115115
cy.url().should("contain", ESSENTIAL_NOTICE_ID);
@@ -201,24 +201,6 @@ describe("Privacy notices", () => {
201201
cy.getByTestId("status-badge").contains("inactive");
202202
});
203203
});
204-
205-
it("can show an error if disable toggle fails", () => {
206-
cy.intercept("PATCH", "/api/v1/privacy-notice/*/limited_update*", {
207-
statusCode: 422,
208-
body: {
209-
detail:
210-
"Privacy Notice 'Analytics test' has already assigned notice key 'analytics' to region 'PrivacyNoticeRegion.ie'",
211-
},
212-
}).as("patchNoticesError");
213-
cy.get("table")
214-
.contains("tr", "Data Sales")
215-
.within(() => {
216-
cy.get('[data-testid="toggle-switch"]').click();
217-
});
218-
cy.wait("@patchNoticesError").then(() => {
219-
cy.getByTestId("toast-error-msg");
220-
});
221-
});
222204
});
223205
});
224206

clients/admin-ui/cypress/e2e/taxonomies-plus.cy.ts

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,6 @@ describe("Taxonomy management with Plus features", () => {
128128

129129
describe("System groups", () => {
130130
describe("With Plus enabled", () => {
131-
beforeEach(() => {
132-
cy.visit("/taxonomy");
133-
});
134-
135131
it("Shows system groups as a taxonomy option", () => {
136132
cy.getByTestId("taxonomy-type-selector").click();
137133

@@ -142,11 +138,12 @@ describe("Taxonomy management with Plus features", () => {
142138
cy.contains("Data subjects").should("exist");
143139
});
144140

145-
it("Can navigate to system groups taxonomy", () => {
141+
it("Can navigate to system groups taxonomy by clicking on the taxonomy type selector", () => {
146142
cy.getByTestId("taxonomy-type-selector").selectAntMenuOption(
147143
"System groups",
148144
);
149145
cy.wait("@getSystemGroups");
146+
cy.url().should("include", "system_group");
150147

151148
// Should show system groups root with proper label
152149
cy.getByTestId("taxonomy-node-root")
@@ -159,24 +156,32 @@ describe("Taxonomy management with Plus features", () => {
159156
cy.contains("Red Group").should("exist");
160157
});
161158

162-
it("Displays human-readable root node label", () => {
163-
cy.getByTestId("taxonomy-type-selector").selectAntMenuOption(
164-
"System groups",
165-
);
159+
it("Can navigate to system groups taxonomy directly via URL", () => {
160+
cy.visit("/taxonomy/system_group");
166161
cy.wait("@getSystemGroups");
167162

168-
// Root node should show "System groups" not "system_group"
169-
cy.getByTestId("taxonomy-node-root").should("contain", "System groups");
163+
// Should show system groups root with proper label
164+
cy.getByTestId("taxonomy-node-root")
165+
.should("contain", "System groups")
166+
.should("not.contain", "system_group");
170167
});
171168

172-
it("Can interact with system group nodes", () => {
173-
cy.getByTestId("taxonomy-type-selector").selectAntMenuOption(
174-
"System groups",
175-
);
176-
cy.wait("@getSystemGroups");
177-
178-
// Should be able to click on system group nodes
179-
cy.getByTestId("taxonomy-node-blue_group").should("exist").click();
169+
describe("System group nodes", () => {
170+
beforeEach(() => {
171+
cy.visit("/taxonomy/system_group");
172+
cy.wait("@getSystemGroups");
173+
});
174+
175+
it("Displays human-readable root node label", () => {
176+
cy.getByTestId("taxonomy-node-root").should(
177+
"contain",
178+
"System groups",
179+
);
180+
});
181+
182+
it("Can interact with system group nodes", () => {
183+
cy.getByTestId("taxonomy-node-blue_group").should("exist").click();
184+
});
180185
});
181186
});
182187
});

0 commit comments

Comments
 (0)