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

New integration options for D&D #5000

Merged
merged 23 commits into from
Jun 19, 2024
Merged

Conversation

jpople
Copy link
Contributor

@jpople jpople commented Jun 18, 2024

Closes PROD-2155

Description Of Changes

Adds UI to configure integrations and add discovery monitors for S3, Scylla, and DynamoDB to admin UI.

Screenshot 2024-06-18 at 14 51 32
Screenshot 2024-06-18 at 14 51 41
Screenshot 2024-06-18 at 14 51 56
Screenshot 2024-06-18 at 14 52 17

(Note these screenshots don't show the correct logo for S3, but I've fixed that!)

Code Changes

  • Refactors to new integrations UI to handle arbitrary integration types rather than specifically BigQuery
  • Changes new integration detail view to force redirect if an integration not supported for D&D is opened
  • Adds tab-based filtering to integrations index and integration type selection screen
  • Refactors "show more/less" button in copy to ShowMoreContent component
  • Adds new FidesSpinner component to ensure spinners are centered in their containers rather than top-left-aligned
  • Re-generates OpenAPI types

Steps to Confirm

In new integrations UI:

  • Create a Scylla, DynamoDB, and S3 integration and add a discovery monitor for each
  • View integrations of those types on the list view and each of their detail pages
  • Forms should be populated with appropriate parameters per integration type and appropriate copy (lorem ipsum for now)

Pre-Merge Checklist

  • Issue Requirements are Met
  • Relevant Follow-Up Issues Created
  • Update CHANGELOG.md

Copy link

vercel bot commented Jun 18, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
fides-plus-nightly ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jun 19, 2024 7:42pm

@@ -14,7 +14,7 @@ import {
import type { RootState } from "../../app/store";
import {
ConnectionTypeParams,
ConnectionTypeSecretSchemaReponse,
ConnectionTypeSecretSchemaResponse,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was just a typo that got preserved from way back when.

const onChangeFilter = (newIndex: number) => {
setIsFiltering(true);
setTabIndex(newIndex);
setTimeout(() => setIsFiltering(false), 100);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Putting in a fake "loading" state for a short period makes the change in contents feel less jarring to me-- not married to this if we're against it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think small artificial delays are valid if it improves the UX. We can keep it.

Copy link

cypress bot commented Jun 18, 2024

Passing run #8413 ↗︎

0 4 0 0 Flakiness 0
⚠️ You've recorded test results over your free plan limit.
Upgrade your plan to view test results.

Details:

Merge 072515d into 39d23e1...
Project: fides Commit: c68d31fcf1 ℹ️
Status: Passed Duration: 00:34 💡
Started: Jun 19, 2024 7:51 PM Ended: Jun 19, 2024 7:51 PM

Review all test suite changes for PR #5000 ↗︎

@jpople jpople marked this pull request as ready for review June 18, 2024 19:49
@jpople jpople requested a review from lucanovera June 19, 2024 15:11
Copy link
Contributor

@lucanovera lucanovera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall the code looks very good! Great work. Just a question about the missing copies for some integrations.

And two UI bugs:

  1. This cancel button seems to be much bigger than all of the other ones, I think it should be the same size
Captura de pantalla 2024-06-19 a la(s) 4 15 04 p  m
  1. The active tab highlight. I think there may be a separate issue for this, but if there's a quick fix for it, it would be nice to add it. It's very explicit because when you open the modal the first tab already has the highlight rectangle.
Captura de pantalla 2024-06-19 a la(s) 4 14 30 p  m

@@ -0,0 +1,9 @@
import { Flex, Spinner, SpinnerProps } from "fidesui";

const FidesSpinner = ({ ...props }: SpinnerProps) => (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good one making this reusable

import { Collapse, Text, useDisclosure } from "fidesui";
import { ReactNode } from "react";

const ShowMoreContent = ({ children }: { children: ReactNode }) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, reusability!

@@ -1,7 +1,8 @@
import { UseDisclosureReturn } from "fidesui";

import AddModal from "~/features/configure-consent/AddModal";
import ConfigureIntegrationForm from "~/features/integrations/ConfigureIntegrationForm";
import ConfigureIntegrationForm from "~/features/integrations/add-integration/ConfigureIntegrationForm";
import useIntegrationOption from "~/features/integrations/useIntegrationOption";
import { ConnectionConfigurationResponse } from "~/types/api";

const ConfigureIntegrationModal = ({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

composition for the win!

<>
<InfoHeading text="Overview" />
<InfoText>
Here&apos;s some example copy talking about Amazon S3. Lorem ipsum dolor
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the real copies ready?

<>
<InfoHeading text="Overview" />
<InfoText>
Here&apos;s some example copy talking about DynamoDB. Lorem ipsum dolor
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have the final copy?

const onChangeFilter = (newIndex: number) => {
setIsFiltering(true);
setTabIndex(newIndex);
setTimeout(() => setIsFiltering(false), 100);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think small artificial delays are valid if it improves the UX. We can keep it.

Copy link
Contributor

@lucanovera lucanovera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the button fix. approve

@jpople jpople merged commit a48183e into main Jun 19, 2024
13 checks passed
@jpople jpople deleted the jpople/prod-2155/new-integration-options branch June 19, 2024 20:16
Copy link

cypress bot commented Jun 19, 2024

Passing run #8417 ↗︎

0 4 0 0 Flakiness 0
⚠️ You've recorded test results over your free plan limit.
Upgrade your plan to view test results.

Details:

New integration options for D&D (#5000)
Project: fides Commit: a48183e055
Status: Passed Duration: 00:35 💡
Started: Jun 19, 2024 8:28 PM Ended: Jun 19, 2024 8:29 PM

Review all test suite changes for PR #5000 ↗︎

@jpople jpople mentioned this pull request Jun 24, 2024
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants