Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scaffold taxonomy page #902

Merged
merged 7 commits into from
Jul 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ The types of changes are:
* Add db support to `/generate` endpoint [849](https://github.com/ethyca/fides/pull/849)
* Added OpenAPI TypeScript client generation for the UI app. See the [README](/clients/admin-ui/src/types/api/README.md) for more details.
* Standardized API error parsing under `~/types/errors`
* Added taxonomy page to UI [#902](https://github.com/ethyca/fides/pull/902)

### Changed

Expand Down
2 changes: 1 addition & 1 deletion clients/admin-ui/cypress/e2e/datasets.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ describe("Dataset", () => {
"getDataset"
);
cy.intercept("GET", "/api/v1/data_category", {
fixture: "data_category.json",
fixture: "data_categories.json",
}).as("getDataCategory");
});

Expand Down
40 changes: 40 additions & 0 deletions clients/admin-ui/cypress/e2e/taxonomy.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
describe("Taxonomy management page", () => {
beforeEach(() => {
cy.intercept("GET", "/api/v1/data_category", {
fixture: "data_categories.json",
}).as("getDataCategories");
cy.intercept("GET", "/api/v1/data_use", { fixture: "data_uses.json" }).as(
"getDataUses"
);
cy.intercept("GET", "/api/v1/data_subject", {
fixture: "data_subjects.json",
}).as("getDataSubjects");
cy.intercept("GET", "/api/v1/data_qualifier", {
fixture: "data_qualifiers.json",
}).as("getDataQualifiers");
});

it("Can navigate to the taxonomy page", () => {
cy.visit("/");
cy.getByTestId("nav-link-Taxonomy").click();
cy.getByTestId("taxonomy-tabs");
cy.getByTestId("tab-Data Categories");
cy.getByTestId("tab-Data Uses");
cy.getByTestId("tab-Data Subjects");
cy.getByTestId("tab-Identifiability");
});

describe("Can view data", () => {
it("Can navigate between tabs and load data", () => {
cy.visit("/taxonomy");
cy.getByTestId("tab-Data Uses").click();
cy.wait("@getDataUses");
cy.getByTestId("tab-Data Subjects").click();
cy.wait("@getDataSubjects");
cy.getByTestId("tab-Identifiability").click();
cy.wait("@getDataQualifiers");
cy.getByTestId("tab-Data Categories").click();
cy.wait("@getDataCategories");
});
});
});
42 changes: 42 additions & 0 deletions clients/admin-ui/cypress/fixtures/data_qualifiers.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[
{
"fides_key": "aggregated",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Aggregated Data",
"description": "Statistical data that does not contain individually identifying information but includes information about groups of individuals that renders individual identification impossible.",
"parent_key": null
},
{
"fides_key": "aggregated.anonymized",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Anonymized Data",
"description": "Data where all attributes have been sufficiently altered that the individaul cannot be reidentified by this data or in combination with other datasets.",
"parent_key": "aggregated"
},
{
"fides_key": "aggregated.anonymized.unlinked_pseudonymized",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Unlinked Pseudonymized Data",
"description": "Data for which all identifiers have been substituted with unrelated values and linkages broken such that it may not be reversed, even by the party that performed the pseudonymization.",
"parent_key": "aggregated.anonymized"
},
{
"fides_key": "aggregated.anonymized.unlinked_pseudonymized.pseudonymized",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Pseudonymized Data",
"description": "Data for which all identifiers have been substituted with unrelated values, rendering the individual unidentifiable and cannot be reasonably reversed other than by the party that performed the pseudonymization.",
"parent_key": "aggregated.anonymized.unlinked_pseudonymized"
},
{
"fides_key": "aggregated.anonymized.unlinked_pseudonymized.pseudonymized.identified",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Identified Data",
"description": "Data that directly identifies an individual.",
"parent_key": "aggregated.anonymized.unlinked_pseudonymized.pseudonymized"
}
]
137 changes: 137 additions & 0 deletions clients/admin-ui/cypress/fixtures/data_subjects.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
[
{
"fides_key": "anonymous_user",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Anonymous User",
"description": "An individual that is unidentifiable to the systems. Note - This should only be applied to truly anonymous users where there is no risk of re-identification",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "citizen_voter",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Citizen Voter",
"description": "An individual registered to voter with a state or authority.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "commuter",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Commuter",
"description": "An individual that is traveling or transiting in the context of location tracking.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "consultant",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Consultant",
"description": "An individual employed in a consultative/temporary capacity by the organization.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "customer",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Customer",
"description": "An individual or other organization that purchases goods or services from the organization.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "employee",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Employee",
"description": "An individual employed by the organization.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "job_applicant",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Job Applicant",
"description": "An individual applying for employment to the organization.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "next_of_kin",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Next of Kin",
"description": "A relative of any other individual subject where such a relationship is known.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "passenger",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Passenger",
"description": "An individual traveling on some means of provided transport.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "patient",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Patient",
"description": "An individual identified for the purposes of any medical care.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "prospect",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Prospect",
"description": "An individual or organization to whom an organization is selling goods or services.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "shareholder",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Shareholder",
"description": "An individual or organization that holds equity in the organization.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "supplier_vendor",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Supplier/Vendor",
"description": "An individual or organization that provides services or goods to the organization.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "trainee",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Trainee",
"description": "An individual undergoing training by the organization.",
"rights": null,
"automated_decisions_or_profiling": null
},
{
"fides_key": "visitor",
"organization_fides_key": "default_organization",
"tags": null,
"name": "Visitor",
"description": "An individual visiting a location.",
"rights": null,
"automated_decisions_or_profiling": null
}
]
Loading