Skip to content

Commit

Permalink
fix changelog conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
RobertKeyser committed Feb 16, 2023
2 parents c056e37 + 8d445e8 commit e8700bc
Show file tree
Hide file tree
Showing 329 changed files with 12,218 additions and 1,350 deletions.
3 changes: 3 additions & 0 deletions .fides/db_dataset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1313,6 +1313,9 @@ dataset:
- name: consent_preferences
data_categories: [ system.operations ]
data_qualifier: aggregated.anonymized.unlinked_pseudonymized.pseudonymized.identified
- name: awaiting_consent_email_send_at
data_categories: [ system.operations ]
data_qualifier: aggregated.anonymized.unlinked_pseudonymized.pseudonymized.identified
- name: privacyrequesterror
data_categories: []
data_qualifier: aggregated.anonymized.unlinked_pseudonymized.pseudonymized.identified
Expand Down
2 changes: 1 addition & 1 deletion .fides/fides.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ task_default_queue = "fides"
task_always_eager = true

[notifications]
notification_service_type = "mailgun"
notification_service_type = "mailgun"
54 changes: 54 additions & 0 deletions .github/workflows/cypress_e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Cypress E2E Tests

on:
pull_request:
paths-ignore:
- "**.md"
push:
branches:
- "main"

env:
CI: true

jobs:
Cypress-E2E:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install Nox
run: pip install nox>=2022

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}

- name: Start test environment in the background
run: nox -s "fides_env(test)" -- keep_alive

- name: Install dependencies
run: |
cd clients/cypress-e2e
npm install
- name: Cypress E2E tests
uses: cypress-io/github-action@v5
with:
working-directory: clients/cypress-e2e
install: false
wait-on: "http://localhost:8080, http://localhost:3001"
record: true
env:
# pass the Cypress Cloud record key as an environment variable
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# pass GitHub token to allow accurately detecting a build vs a re-run build
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Teardown
run: nox -s teardown
65 changes: 51 additions & 14 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,39 +14,77 @@ The types of changes are:
* `Fixed` for any bug fixes.
* `Security` in case of vulnerabilities.

## [Unreleased](https://github.com/ethyca/fides/compare/2.6.4...main)

### Added

* Added config properties to override database Engine parameters [#2511](https://github.com/ethyca/fides/pull/2511)
* Increased default pool_size and max_overflow to 50 [#2560](https://github.com/ethyca/fides/pull/2560)
* Log Fides version at startup [#2566](https://github.com/ethyca/fides/pull/2566)
## [Unreleased](https://github.com/ethyca/fides/compare/2.6.6...main)

* Fides API
* Access and erasure support for Braintree [#2223](https://github.com/ethyca/fides/pull/2223)
* Added route to send a test message [#2585](https://github.com/ethyca/fides/pull/2585)

* Admin UI
* Create custom fields from a resource screen - Button to Trigger modal [#524](https://github.com/ethyca/fides/pull/2536)
* Create Custom Lists [#525](https://github.com/ethyca/fides/pull/2536)
* Create Custom Field Definition [#526](https://github.com/ethyca/fides/pull/2536)
* Provide a custom field value in a resource [#528](https://github.com/ethyca/fides/pull/2536)

* Custom Metadata [#2536](https://github.com/ethyca/fides/pull/2536)
* Create Custom Lists
* Create Custom Field Definition
* Create custom fields from a the taxonomy editor
* Provide a custom field value in a resource
* Bulk edit custom field values [#2612](https://github.com/ethyca/fides/issues/2612)
* Privacy Center
* The consent config default value can depend on whether Global Privacy Control is enabled. [#2341](https://github.com/ethyca/fides/pull/2341)
* `inspectForBrowserIdentities` now also looks for `ljt_readerID`

### Added
* Added new Wunderkind Consent Saas Connector [#2600](https://github.com/ethyca/fides/pull/2600)
* Added new Sovrn Email Consent Connector [#2543](https://github.com/ethyca/fides/pull/2543/)
* Log Fides version at startup [#2566](https://github.com/ethyca/fides/pull/2566)
### Changed

* Update Admin UI to show all action types (access, erasure, consent, update) [#2523](https://github.com/ethyca/fides/pull/2523)
* Removes legacy `verify_oauth_client` function [#2527](https://github.com/ethyca/fides/pull/2527)
* Updated the UI for adding systems to a new design [#2490](https://github.com/ethyca/fides/pull/2490)
* Minor logging improvements [#2566](https://github.com/ethyca/fides/pull/2566)
* Various form components now take a `stacked` or `inline` variant [#2542](https://github.com/ethyca/fides/pull/2542)
* UX fixes for user management [#2537](https://github.com/ethyca/fides/pull/2537)
* Replaced pickle with json for storing cache [#2577](https://github.com/ethyca/fides/pull/2577)
* Updating Firebase Auth connector to mask the user with a delete instead of an update [#2602](https://github.com/ethyca/fides/pull/2602)

### Fixed

* Fixed bug where refreshing a page in the UI would result in a 404 [#2502](https://github.com/ethyca/fides/pull/2502)
* Usernames are case insensitive now and prevent all duplicates [#2487](https://github.com/ethyca/fides/pull/2487)
* This PR contains a migration that deletes duplicate users and keeps the oldest original account.
* Update Logos for shipped connectors [#2464](https://github.com/ethyca/fides/pull/2587)
* Search field on privacy request page isn't working [#2270](https://github.com/ethyca/fides/pull/2595)

### Developer Experience

* Added new Cypress E2E smoke tests [#2241](https://github.com/ethyca/fides/pull/2241)
* New command `nox -s e2e_test` which will spin up the test environment and run true E2E Cypress tests against it [#2417](https://github.com/ethyca/fides/pull/2417)
* Cypress E2E tests now run in CI and are reported to Cypress Cloud [#2417](https://github.com/ethyca/fides/pull/2417)
* Change from `randomint` to `uuid` in mongodb tests to reduce flakiness. [#2591](https://github.com/ethyca/fides/pull/2591)

### Removed

* Remove feature flagged config wizard stepper from Admin UI [#2553](https://github.com/ethyca/fides/pull/2553)

## [2.6.6](https://github.com/ethyca/fides/compare/2.6.5...2.6.6)

### Changed

* Improve Readability for Custom Masking Override Exceptions [#2593](https://github.com/ethyca/fides/pull/2593)

## [2.6.5](https://github.com/ethyca/fides/compare/2.6.4...2.6.5)

### Added

* Added config properties to override database Engine parameters [#2511](https://github.com/ethyca/fides/pull/2511)
* Increased default pool_size and max_overflow to 50 [#2560](https://github.com/ethyca/fides/pull/2560)

## [2.6.4](https://github.com/ethyca/fides/compare/2.6.3...2.6.4)

### Fixed

* Fixed bug for SMS completion notification not being sent [#2526](https://github.com/ethyca/fides/issues/2526)
* Fixed bug where refreshing a page in the UI would result in a 404 [#2502](https://github.com/ethyca/fides/pull/2502)

## [2.6.3](https://github.com/ethyca/fides/compare/2.6.2...2.6.3)

Expand All @@ -63,7 +101,6 @@ The types of changes are:
### Added
* Add default storage configuration functionality and associated APIs [#2438](https://github.com/ethyca/fides/pull/2438)


## [2.6.1](https://github.com/ethyca/fides/compare/2.6.0...2.6.1)

### Fixed
Expand Down Expand Up @@ -115,8 +152,8 @@ The types of changes are:

### Developer Experience

* `nox -s test_env` has been replaced with `nox -s fides_env(dev)`
* New command `nox -s fides_env(test)` creates a complete test environment with seed data (similar to `fides_env(dev)`) but with the production fides image so the built UI can be accessed at `localhost:8080` [#2399](https://github.com/ethyca/fides/pull/2399)
* `nox -s test_env` has been replaced with `nox -s "fides_env(dev)"`
* New command `nox -s "fides_env(test)"` creates a complete test environment with seed data (similar to `fides_env(dev)`) but with the production fides image so the built UI can be accessed at `localhost:8080` [#2399](https://github.com/ethyca/fides/pull/2399)
* Change from code climate to codecov for coverage reporting [#2402](https://github.com/ethyca/fides/pull/2402)

### Fixed
Expand Down
1 change: 0 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ include LICENSE
include README.md
include requirements.txt
include dev-requirements.txt
include optional-requirements.txt
include dangerous-requirements.txt
include versioneer.py
include src/fides/api/ctl/alembic.ini
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Navigate to the Fides Privacy Center (<http://localhost:3001>), submit a "Downlo

Then, navigate to the Fides Admin UI (<http://localhost:8080>) to review the pending privacy request.

Use username `fidestest` and password `Apassword1!` to login, approve the request, and review the resulting package in your `./fides_uploads` folder!
Use username `root_user` and password `Testpassword1!` to login, approve the request, and review the resulting package in your `./fides_uploads` folder!

### Next Steps

Expand Down
12 changes: 0 additions & 12 deletions clients/admin-ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,6 @@ Admin UI for managing Fides privacy requests. A web application built in Next.js
1. In a new shell, `cd` into `clients/admin-ui`, then run `npm run dev`.
1. Nav to `http://localhost:3000/` and log in using the created user. The `email` field is simply the `user` that was created, not a valid email address.

## Testing Entire Request Flow

1. Run the fides server with `nox -s dev`.
2. Create a policy key through the API (using the Postman collection).
3. Configure the `clients/privacy-center` application to use that policy by adding it to the appropriate request config in `config/config.json`.
4. Run the Privacy Request center using `npm run dev`.
5. Submit a privacy request through the Privacy Request center.
6. View that request in the Admin UI and either approve or deny it.

## Unit test locations

Unless otherwise specified below, all unit tests should be colocated in the directory with the file(s) they are testing, in a `__tests__` subfolder.
Expand All @@ -30,7 +21,6 @@ within [flags.json](./src/flags.json).
You can toggle flags at runtime by opening the features panel, which can be accessed under the user menu in the top-right
of the page header. These changes will be saved per-browser, per-environment, until you log out or reset them from the menu.


### Environments

Feature flags can be configured independently for the development, test, and production environments:
Expand All @@ -48,8 +38,6 @@ running the app, for example:

Or you can configure the environment using `env.local` as described by the [Next.js docs](https://nextjs.org/docs/basic-features/environment-variables#loading-environment-variables).



## Preparing for production

To view a production version of this site, including the backend:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import { fillInDefaults } from "~/features/datastore-connections/add-connection/forms/helpers";

describe("connector form helpers", () => {
describe("fill in defaults", () => {
const baseDefaultValues = {
description: "",
name: "",
instance_key: "",
};

const baseSchema = {
title: "name",
type: "string",
};

const baseResponse = {
additionalProperties: false,
description: "Schema to...",
properties: {},
required: ["name"],
title: "BaseSchema",
type: "object",
};

it("can fill in string defaults", () => {
const properties = {
name: baseSchema,
description: {
...baseSchema,
title: "description",
default: "default",
},
instance_key: { ...baseSchema, title: "instance_key" },
};
const schema = { ...baseResponse, properties };
expect(fillInDefaults(baseDefaultValues, schema)).toEqual({
description: "default",
name: "",
instance_key: "",
});
});

it("can fill in int defaults", () => {
const properties = {
name: baseSchema,
description: {
...baseSchema,
title: "description",
default: "default",
},
instance_key: { ...baseSchema, title: "instance_key" },
port: { title: "port", default: "8080", type: "integer" },
};
const defaultValues = { ...baseDefaultValues, port: "" };
const schema = { ...baseResponse, properties };
expect(fillInDefaults(defaultValues, schema)).toEqual({
description: "default",
name: "",
instance_key: "",
port: 8080,
});
});
});
});
73 changes: 67 additions & 6 deletions clients/admin-ui/cypress/e2e/connectors.cy.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
describe("Connectors", () => {
beforeEach(() => {
cy.login();
cy.intercept("GET", "/api/v1/connection*", {
fixture: "connectors/list.json",
}).as("getConnectors");
cy.intercept("GET", "/api/v1/connection_type*", {
fixture: "connectors/connection_types.json",
}).as("getConnectionTypes");
});
describe("Configuring connectors", () => {
beforeEach(() => {
cy.intercept("GET", "/api/v1/connection*", {
fixture: "connectors/list.json",
}).as("getConnectors");
cy.intercept("GET", "/api/v1/connection_type*", {
fixture: "connectors/connection_types.json",
}).as("getConnectionTypes");
cy.intercept("GET", "/api/v1/connection/postgres_connector", {
fixture: "connectors/postgres_connector.json",
}).as("getPostgresConnector");
Expand Down Expand Up @@ -128,4 +128,65 @@ describe("Connectors", () => {
cy.getByTestId("dataset-selector-section").should("not.exist");
});
});

describe("Email connector", () => {
beforeEach(() => {
cy.intercept("GET", "/api/v1/connection_type/sovrn/secret", {
fixture: "connectors/sovrn_secret.json",
}).as("getSovrnSecret");
cy.intercept("PATCH", "/api/v1/connection", {
fixture: "connectors/patch_connection.json",
}).as("patchSovrn");
cy.intercept("PUT", "/api/v1/connection/sovrn-test/secret*", {
fixture: "connectors/put_secret.json",
}).as("putSovrnSecret");
});

it("allows the user to add an email connector", () => {
cy.visit("/datastore-connection/new");
cy.getByTestId("select-dropdown-btn").click();
cy.getByTestId("select-dropdown-list").contains("Email connectors");
cy.getByTestId("select-dropdown-btn").click();
cy.getByTestId("sovrn-item").click();
cy.url().should("contain", "/new?step=2");

// fill out the form
const identifier = "sovrn-test";
const recipientEmailAddress = "sovrn-test";
cy.get("input").get(`[name='name']`).type(identifier);
cy.get("input").get(`[name='instance_key']`).type(identifier);
cy.get("input")
.get(`[name='recipient_email_address']`)
.type(recipientEmailAddress);
cy.get("button").contains("Save").click();
cy.wait("@patchSovrn").then((interception) => {
const { body } = interception.request;
expect(body).to.eql([
{
access: "write",
connection_type: "sovrn",
description: "",
disabled: false,
key: identifier,
name: identifier,
},
]);
});
cy.wait("@putSovrnSecret").then((interception) => {
const { body } = interception.request;
expect(body).to.eql({
third_party_vendor_name: "Sovrn",
recipient_email_address: recipientEmailAddress,
test_email_address: "",
advanced_settings: {
identity_types: {
email: false,
phone_number: false,
cookie_ids: [],
},
},
});
});
});
});
});
Loading

0 comments on commit e8700bc

Please sign in to comment.