From 8fcadbceb6eadbdf864339b5c08ff841f5df4b3c Mon Sep 17 00:00:00 2001 From: Cole Isaac Date: Tue, 3 May 2022 09:14:32 -0400 Subject: [PATCH 1/8] update saas connector docs layout and stub in connectors guides (#450, #427) --- .../example_configs/saas_connectors.md} | 0 .../docs/{guides => saas_connectors}/saas_config.md | 13 ++++++------- .../{guides => saas_connectors}/saas_connectors.md | 2 +- .../{guides => saas_connectors}/saas_pagination.md | 0 .../saas_postprocessors.md | 0 docs/fidesops/mkdocs.yml | 11 +++++++---- 6 files changed, 14 insertions(+), 12 deletions(-) rename docs/fidesops/docs/{sass_connectors.md => saas_connectors/example_configs/saas_connectors.md} (100%) rename docs/fidesops/docs/{guides => saas_connectors}/saas_config.md (91%) rename docs/fidesops/docs/{guides => saas_connectors}/saas_connectors.md (92%) rename docs/fidesops/docs/{guides => saas_connectors}/saas_pagination.md (100%) rename docs/fidesops/docs/{guides => saas_connectors}/saas_postprocessors.md (100%) diff --git a/docs/fidesops/docs/sass_connectors.md b/docs/fidesops/docs/saas_connectors/example_configs/saas_connectors.md similarity index 100% rename from docs/fidesops/docs/sass_connectors.md rename to docs/fidesops/docs/saas_connectors/example_configs/saas_connectors.md diff --git a/docs/fidesops/docs/guides/saas_config.md b/docs/fidesops/docs/saas_connectors/saas_config.md similarity index 91% rename from docs/fidesops/docs/guides/saas_config.md rename to docs/fidesops/docs/saas_connectors/saas_config.md index acb57f4b5..ecd187d49 100644 --- a/docs/fidesops/docs/guides/saas_config.md +++ b/docs/fidesops/docs/saas_connectors/saas_config.md @@ -1,6 +1,6 @@ ## What is a SaaS configuration schema? -A SaaS connector is defined in two parts, the [Dataset](datasets.md) and the SaaS config. The Dataset describes the data that is available from the connector and the SaaS config describes how to connect and retrieve/update the data in the connector. If you contrast this to a [database connector](database_connectors.md), the ways to retrieve/update data conform to a specification (such as SQL) and are consistent. When accessing data from APIs, each application or even different endpoints within the same application can follow different patterns. It was necessary to have a flexible configuration to be able to define the different access/update patterns. Keep in mind that SaaS configs are only applicable to SaaS connectors, not database connectors. +A SaaS connector is defined in two parts, the [Dataset](../guides/datasets.md) and the SaaS config. The Dataset describes the data that is available from the connector and the SaaS config describes how to connect and retrieve/update the data in the connector. If you contrast this to a [database connector](../guides/database_connectors.md), the ways to retrieve/update data conform to a specification (such as SQL) and are consistent. When accessing data from APIs, each application or even different endpoints within the same application can follow different patterns. It was necessary to have a flexible configuration to be able to define the different access/update patterns. Keep in mind that SaaS configs are only applicable to SaaS connectors, not database connectors. In short, you can think of the Dataset as the "what" (what data is available from this API) and the SaaS config as the "how" (how to access and update the data). #### An example SaaS config @@ -128,7 +128,7 @@ And the following complex fields which we will cover in detail below: - `data_protection_request` #### Connector params -The `connector_params` field is used to describe a list of settings which a user must configure as part of the setup. This section should just include the name of the parameter but not the actual value. These are added as part of the ConnectionConfig [secrets](database_connectors.md#set-the-connectionconfigs-secrets). +The `connector_params` field is used to describe a list of settings which a user must configure as part of the setup. This section should just include the name of the parameter but not the actual value. These are added as part of the ConnectionConfig [secrets](/docs/fidesops/docs/guides/database_connectors.md#set-the-connectionconfigs-secrets). ```yaml connector_params: @@ -164,8 +164,7 @@ authentication: ``` #### Test request -Once the base client is defined we can use a `test_request` to verify our hostname and credentials. This is in the form of an idempotent request (usually a read). The testing approach is the same for any [ConnectionConfig test](database_connectors.md#testing-your-connection). -```yaml +Once the base client is defined we can use a `test_request` to verify our hostname and credentials. This is in the form of an idempotent request (usually a read). The testing approach is the same for any [ConnectionConfig test](../guides/database_connectors.md#testing-your-connection). test_request: method: GET path: /3.0/lists @@ -469,7 +468,7 @@ PUT /3.0/lists/123/members/456 } } ``` -and the contents of the body would be masked according to the configured [policy](policies.md). +and the contents of the body would be masked according to the configured [policy](../guides/policies.md). #### Data update with a dynamic HTTP body @@ -511,7 +510,7 @@ PUT /crm/v3/objects/contacts ## How does this relate to graph traversal? -Fidesops uses the available Datasets to [generate a graph](query_execution.md) of all reachable data and the dependencies between Datasets. For SaaS connectors, all the references and identities are stored in the `param_values`, therefore we must merge both the SaaS config and Dataset to provide a complete picture for the graph traversal. Using Mailchimp as an example the Dataset collection and SaaS config endpoints for `messages` looks like this: +Fidesops uses the available Datasets to [generate a graph](../guides/query_execution.md) of all reachable data and the dependencies between Datasets. For SaaS connectors, all the references and identities are stored in the `param_values`, therefore we must merge both the SaaS config and Dataset to provide a complete picture for the graph traversal. Using Mailchimp as an example the Dataset collection and SaaS config endpoints for `messages` looks like this: ```yaml collections: @@ -606,4 +605,4 @@ endpoints: - name: placeholder identity: email ``` -Some endpoints might not have any external dependencies on `identity` or Dataset `reference` values. The way the Fidesops [graph traversal](query_execution.md) interprets this is as an unreachable collection. At this time, the way to mark this as reachable is to include a `request_param` with an identity or a reference. In the future we plan on having collections like these still be considered reachable even without this placeholder (the request_param name is not relevant, we just chose placeholder for this example). \ No newline at end of file +Some endpoints might not have any external dependencies on `identity` or Dataset `reference` values. The way the Fidesops [graph traversal](../guides/query_execution.md) interprets this is as an unreachable collection. At this time, the way to mark this as reachable is to include a `request_param` with an identity or a reference. In the future we plan on having collections like these still be considered reachable even without this placeholder (the request_param name is not relevant, we just chose placeholder for this example). \ No newline at end of file diff --git a/docs/fidesops/docs/guides/saas_connectors.md b/docs/fidesops/docs/saas_connectors/saas_connectors.md similarity index 92% rename from docs/fidesops/docs/guides/saas_connectors.md rename to docs/fidesops/docs/saas_connectors/saas_connectors.md index dba342d3c..0c92366fd 100644 --- a/docs/fidesops/docs/guides/saas_connectors.md +++ b/docs/fidesops/docs/saas_connectors/saas_connectors.md @@ -2,7 +2,7 @@ ## What is a SaaS connection? -A SaaS (Software as a Service) connection is a connection type within Fidesops that allows a user to connect to a SaaS application (e.g., Mailchimp, Stripe, Slack, etc.) and execute data access and erasure requests against that application. These connections use functionality introduced in earlier sections ([ConnectionConfigs](database_connectors.md#creating-a-connectionconfig-object) and [Datasets](datasets.md)) but also use a new [SaaS configuration](saas_config.md) specification to define how to connect to specific SaaS applications. +A SaaS (Software as a Service) connection is a connection type within Fidesops that allows a user to connect to a SaaS application (e.g., Mailchimp, Stripe, Slack, etc.) and execute data access and erasure requests against that application. These connections use functionality introduced in earlier sections ([ConnectionConfigs](/guides/database_connectors.md#creating-a-connectionconfig-object) and [Datasets](/guides/datasets.md)) but also use a new [SaaS configuration](saas_config.md) specification to define how to connect to specific SaaS applications. ## Supported SaaS applications diff --git a/docs/fidesops/docs/guides/saas_pagination.md b/docs/fidesops/docs/saas_connectors/saas_pagination.md similarity index 100% rename from docs/fidesops/docs/guides/saas_pagination.md rename to docs/fidesops/docs/saas_connectors/saas_pagination.md diff --git a/docs/fidesops/docs/guides/saas_postprocessors.md b/docs/fidesops/docs/saas_connectors/saas_postprocessors.md similarity index 100% rename from docs/fidesops/docs/guides/saas_postprocessors.md rename to docs/fidesops/docs/saas_connectors/saas_postprocessors.md diff --git a/docs/fidesops/mkdocs.yml b/docs/fidesops/mkdocs.yml index f3c71615e..1aafa2090 100644 --- a/docs/fidesops/mkdocs.yml +++ b/docs/fidesops/mkdocs.yml @@ -18,10 +18,6 @@ nav: - Authenticate with OAuth: guides/oauth.md - Connect SQL and NoSQL Databases: guides/database_connectors.md - Configure Datasets: guides/datasets.md - - Connect to SaaS Applications: guides/saas_connectors.md - - SaaS Configuration: guides/saas_config.md - - SaaS Post-Processors: guides/saas_postprocessors.md - - SaaS Pagination: guides/saas_pagination.md - Annotate Complex Fields: guides/complex_fields.md - Preview Query Execution: guides/query_execution.md - Create Request Policies: guides/policies.md @@ -34,6 +30,13 @@ nav: - Configuration Reference: guides/configuration_reference.md - Admin UI: guides/admin_ui.md - Postman Collection: postman/using_postman.md + - SaaS Connectors: + - Connect to SaaS Applications: saas_connectors/saas_connectors.md + - SaaS Configuration: saas_connectors/saas_config.md + - SaaS Post-Processors: saas_connectors/saas_postprocessors.md + - SaaS Pagination: saas_connectors/saas_pagination.md + - Connection Examples: + - Mailchimp: saas_connectors/example_configs/saas_connectors.md - Deployment Guide: deployment.md - Glossary: glossary.md - API: api/index.md From 8f3caf06d0a57982cb80b30813564a0e8a22f131 Mon Sep 17 00:00:00 2001 From: Cole Isaac Date: Mon, 9 May 2022 08:41:16 -0400 Subject: [PATCH 2/8] ia restructuring, stub in connector guides --- .../example_configs/hubspot.md | 113 ++++++++++++++++++ .../example_configs/mailchimp.md | 111 +++++++++++++++++ .../example_configs/segment.md | 113 ++++++++++++++++++ .../saas_connectors/example_configs/sentry.md | 113 ++++++++++++++++++ .../saas_connectors/example_configs/stripe.md | 113 ++++++++++++++++++ 5 files changed, 563 insertions(+) create mode 100644 docs/fidesops/docs/saas_connectors/example_configs/hubspot.md create mode 100644 docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md create mode 100644 docs/fidesops/docs/saas_connectors/example_configs/segment.md create mode 100644 docs/fidesops/docs/saas_connectors/example_configs/sentry.md create mode 100644 docs/fidesops/docs/saas_connectors/example_configs/stripe.md diff --git a/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md b/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md new file mode 100644 index 000000000..dec6cf70b --- /dev/null +++ b/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md @@ -0,0 +1,113 @@ + +# Hubspot + +## Implementation Summary +You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). + +This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget + +|Endpoint | Right to Access | Right to Delete | +|----|----|----| +|[Messages](docs/link) | Yes/No | Yes/No | +|[Conversations](docs/link) | Yes/No | Yes/No | +|[Members](docs/link) | Yes/No | Yes/No | + + +## Connection Settings +To retrieve +x +## Example SaaS Configuration +```yaml +saas_config: + fides_key: mailchimp_connector_example + name: Mailchimp SaaS Config + description: A sample schema representing the Mailchimp connector for Fidesops + version: 0.0.1 + + connector_params: + - name: domain + - name: username + - name: api_key + + client_config: + protocol: https + host: + connector_param: domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: username + password: + connector_param: api_key + + test_request: + method: GET + path: /3.0/lists + + endpoints: + - name: messages + requests: + read: + method: GET + path: /3.0/conversations//messages + param_values: + - name: conversation_id + references: + - dataset: mailchimp_connector_example + field: conversations.id + direction: from + data_path: conversation_messages + postprocessors: + - strategy: filter + configuration: + field: from_email + value: + identity: email + - name: conversations + requests: + read: + method: GET + path: /3.0/conversations + query_params: + - name: count + value: 1000 + - name: offset + value: 0 + param_values: + - name: placeholder + identity: email + data_path: conversations + pagination: + strategy: offset + configuration: + incremental_param: offset + increment_by: 1000 + limit: 10000 + - name: member + requests: + read: + method: GET + path: /3.0/search-members + query_params: + - name: query + value: + param_values: + - name: email + identity: email + data_path: exact_matches.members + update: + method: PUT + path: /3.0/lists//members/ + param_values: + - name: list_id + references: + - dataset: mailchimp_connector_example + field: member.list_id + direction: from + - name: subscriber_hash + references: + - dataset: mailchimp_connector_example + field: member.id + direction: from +``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md new file mode 100644 index 000000000..967887bc9 --- /dev/null +++ b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md @@ -0,0 +1,111 @@ + +# Mailchimp + +## Implementation Summary +Fidesops uses the following Mailchimp endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) capabilities for each endpoint are noted below. + +|Endpoint | Right to Access | Right to Delete | +|----|----|----| +|[Messages](docs/link) | Yes/No | Yes/No | +|[Conversations](docs/link) | Yes/No | Yes/No | +|[Members](docs/link) | Yes/No | Yes/No | + + +## Connection Settings +The provided [Postman collection](../../postman/Fidesops.postman_collection.json) can assist in establishing + +## Example SaaS Configuration +```yaml +saas_config: + fides_key: mailchimp_connector_example + name: Mailchimp SaaS Config + description: A sample schema representing the Mailchimp connector for Fidesops + version: 0.0.1 + + connector_params: + - name: domain + - name: username + - name: api_key + + client_config: + protocol: https + host: + connector_param: domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: username + password: + connector_param: api_key + + test_request: + method: GET + path: /3.0/lists + + endpoints: + - name: messages + requests: + read: + method: GET + path: /3.0/conversations//messages + param_values: + - name: conversation_id + references: + - dataset: mailchimp_connector_example + field: conversations.id + direction: from + data_path: conversation_messages + postprocessors: + - strategy: filter + configuration: + field: from_email + value: + identity: email + - name: conversations + requests: + read: + method: GET + path: /3.0/conversations + query_params: + - name: count + value: 1000 + - name: offset + value: 0 + param_values: + - name: placeholder + identity: email + data_path: conversations + pagination: + strategy: offset + configuration: + incremental_param: offset + increment_by: 1000 + limit: 10000 + - name: member + requests: + read: + method: GET + path: /3.0/search-members + query_params: + - name: query + value: + param_values: + - name: email + identity: email + data_path: exact_matches.members + update: + method: PUT + path: /3.0/lists//members/ + param_values: + - name: list_id + references: + - dataset: mailchimp_connector_example + field: member.list_id + direction: from + - name: subscriber_hash + references: + - dataset: mailchimp_connector_example + field: member.id + direction: from +``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/segment.md b/docs/fidesops/docs/saas_connectors/example_configs/segment.md new file mode 100644 index 000000000..28bff984c --- /dev/null +++ b/docs/fidesops/docs/saas_connectors/example_configs/segment.md @@ -0,0 +1,113 @@ + +# Mailchimp + +## Implementation Summary +You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). + +This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget + +|Endpoint | Right to Access | Right to Delete | +|----|----|----| +|[Messages](docs/link) | Yes/No | Yes/No | +|[Conversations](docs/link) | Yes/No | Yes/No | +|[Members](docs/link) | Yes/No | Yes/No | + + +## Connection Settings +To retrieve +x +## Example SaaS Configuration +```yaml +saas_config: + fides_key: mailchimp_connector_example + name: Mailchimp SaaS Config + description: A sample schema representing the Mailchimp connector for Fidesops + version: 0.0.1 + + connector_params: + - name: domain + - name: username + - name: api_key + + client_config: + protocol: https + host: + connector_param: domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: username + password: + connector_param: api_key + + test_request: + method: GET + path: /3.0/lists + + endpoints: + - name: messages + requests: + read: + method: GET + path: /3.0/conversations//messages + param_values: + - name: conversation_id + references: + - dataset: mailchimp_connector_example + field: conversations.id + direction: from + data_path: conversation_messages + postprocessors: + - strategy: filter + configuration: + field: from_email + value: + identity: email + - name: conversations + requests: + read: + method: GET + path: /3.0/conversations + query_params: + - name: count + value: 1000 + - name: offset + value: 0 + param_values: + - name: placeholder + identity: email + data_path: conversations + pagination: + strategy: offset + configuration: + incremental_param: offset + increment_by: 1000 + limit: 10000 + - name: member + requests: + read: + method: GET + path: /3.0/search-members + query_params: + - name: query + value: + param_values: + - name: email + identity: email + data_path: exact_matches.members + update: + method: PUT + path: /3.0/lists//members/ + param_values: + - name: list_id + references: + - dataset: mailchimp_connector_example + field: member.list_id + direction: from + - name: subscriber_hash + references: + - dataset: mailchimp_connector_example + field: member.id + direction: from +``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/sentry.md b/docs/fidesops/docs/saas_connectors/example_configs/sentry.md new file mode 100644 index 000000000..28bff984c --- /dev/null +++ b/docs/fidesops/docs/saas_connectors/example_configs/sentry.md @@ -0,0 +1,113 @@ + +# Mailchimp + +## Implementation Summary +You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). + +This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget + +|Endpoint | Right to Access | Right to Delete | +|----|----|----| +|[Messages](docs/link) | Yes/No | Yes/No | +|[Conversations](docs/link) | Yes/No | Yes/No | +|[Members](docs/link) | Yes/No | Yes/No | + + +## Connection Settings +To retrieve +x +## Example SaaS Configuration +```yaml +saas_config: + fides_key: mailchimp_connector_example + name: Mailchimp SaaS Config + description: A sample schema representing the Mailchimp connector for Fidesops + version: 0.0.1 + + connector_params: + - name: domain + - name: username + - name: api_key + + client_config: + protocol: https + host: + connector_param: domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: username + password: + connector_param: api_key + + test_request: + method: GET + path: /3.0/lists + + endpoints: + - name: messages + requests: + read: + method: GET + path: /3.0/conversations//messages + param_values: + - name: conversation_id + references: + - dataset: mailchimp_connector_example + field: conversations.id + direction: from + data_path: conversation_messages + postprocessors: + - strategy: filter + configuration: + field: from_email + value: + identity: email + - name: conversations + requests: + read: + method: GET + path: /3.0/conversations + query_params: + - name: count + value: 1000 + - name: offset + value: 0 + param_values: + - name: placeholder + identity: email + data_path: conversations + pagination: + strategy: offset + configuration: + incremental_param: offset + increment_by: 1000 + limit: 10000 + - name: member + requests: + read: + method: GET + path: /3.0/search-members + query_params: + - name: query + value: + param_values: + - name: email + identity: email + data_path: exact_matches.members + update: + method: PUT + path: /3.0/lists//members/ + param_values: + - name: list_id + references: + - dataset: mailchimp_connector_example + field: member.list_id + direction: from + - name: subscriber_hash + references: + - dataset: mailchimp_connector_example + field: member.id + direction: from +``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/stripe.md b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md new file mode 100644 index 000000000..28bff984c --- /dev/null +++ b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md @@ -0,0 +1,113 @@ + +# Mailchimp + +## Implementation Summary +You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). + +This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget + +|Endpoint | Right to Access | Right to Delete | +|----|----|----| +|[Messages](docs/link) | Yes/No | Yes/No | +|[Conversations](docs/link) | Yes/No | Yes/No | +|[Members](docs/link) | Yes/No | Yes/No | + + +## Connection Settings +To retrieve +x +## Example SaaS Configuration +```yaml +saas_config: + fides_key: mailchimp_connector_example + name: Mailchimp SaaS Config + description: A sample schema representing the Mailchimp connector for Fidesops + version: 0.0.1 + + connector_params: + - name: domain + - name: username + - name: api_key + + client_config: + protocol: https + host: + connector_param: domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: username + password: + connector_param: api_key + + test_request: + method: GET + path: /3.0/lists + + endpoints: + - name: messages + requests: + read: + method: GET + path: /3.0/conversations//messages + param_values: + - name: conversation_id + references: + - dataset: mailchimp_connector_example + field: conversations.id + direction: from + data_path: conversation_messages + postprocessors: + - strategy: filter + configuration: + field: from_email + value: + identity: email + - name: conversations + requests: + read: + method: GET + path: /3.0/conversations + query_params: + - name: count + value: 1000 + - name: offset + value: 0 + param_values: + - name: placeholder + identity: email + data_path: conversations + pagination: + strategy: offset + configuration: + incremental_param: offset + increment_by: 1000 + limit: 10000 + - name: member + requests: + read: + method: GET + path: /3.0/search-members + query_params: + - name: query + value: + param_values: + - name: email + identity: email + data_path: exact_matches.members + update: + method: PUT + path: /3.0/lists//members/ + param_values: + - name: list_id + references: + - dataset: mailchimp_connector_example + field: member.list_id + direction: from + - name: subscriber_hash + references: + - dataset: mailchimp_connector_example + field: member.id + direction: from +``` \ No newline at end of file From ae074a6f2107609232cdcb0080503abeb745ced1 Mon Sep 17 00:00:00 2001 From: Cole Isaac Date: Mon, 9 May 2022 10:48:31 -0400 Subject: [PATCH 3/8] update docs ia [#427] and provide visible SaaS connector examples [#450] --- .../example_configs/hubspot.md | 268 +++++++--- .../example_configs/mailchimp.md | 242 ++++++--- .../example_configs/saas_connectors.md | 113 ----- .../example_configs/segment.md | 197 ++++--- .../saas_connectors/example_configs/sentry.md | 247 +++++---- .../saas_connectors/example_configs/stripe.md | 479 +++++++++++++++--- docs/fidesops/mkdocs.yml | 6 +- 7 files changed, 1056 insertions(+), 496 deletions(-) delete mode 100644 docs/fidesops/docs/saas_connectors/example_configs/saas_connectors.md diff --git a/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md b/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md index dec6cf70b..ad71c696d 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md @@ -2,112 +2,214 @@ # Hubspot ## Implementation Summary -You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). - -This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget +Fidesops uses the following Hubspot endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. |Endpoint | Right to Access | Right to Delete | |----|----|----| -|[Messages](docs/link) | Yes/No | Yes/No | -|[Conversations](docs/link) | Yes/No | Yes/No | -|[Members](docs/link) | Yes/No | Yes/No | +|[Search](https://developers.hubspot.com/docs/api/crm/search) | Yes | No | +|[Contacts](https://developers.hubspot.com/docs/api/crm/contacts) | Yes | Yes | +|[Owners](https://developers.hubspot.com/docs/api/crm/owners) | Yes | No | +|[Marketing Emails](https://developers.hubspot.com/docs/api/marketing/marketing-emails) | Yes | No | +|[Communication Preferences](https://developers.hubspot.com/docs/api/marketing-api/subscriptions-preferences#endpoint?spec=POST-/communication-preferences/v3/unsubscribe) | Yes | Yes | +|[Users](https://developers.hubspot.com/docs/api/settings/user-provisioning) | Yes | No | + ## Connection Settings -To retrieve -x -## Example SaaS Configuration +Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). + +## Example Hubspot Configuration ```yaml saas_config: - fides_key: mailchimp_connector_example - name: Mailchimp SaaS Config - description: A sample schema representing the Mailchimp connector for Fidesops + fides_key: hubspot_connector_example + name: Hubspot SaaS Config + description: A sample schema representing the Hubspot connector for Fidesops version: 0.0.1 connector_params: - name: domain - - name: username - - name: api_key + - name: hapikey client_config: protocol: https host: connector_param: domain authentication: - strategy: basic_authentication + strategy: query_param configuration: - username: - connector_param: username - password: - connector_param: api_key + token: + connector_param: hapikey test_request: method: GET - path: /3.0/lists + path: /companies/v2/companies/paged endpoints: - - name: messages - requests: - read: - method: GET - path: /3.0/conversations//messages - param_values: - - name: conversation_id - references: - - dataset: mailchimp_connector_example - field: conversations.id - direction: from - data_path: conversation_messages - postprocessors: - - strategy: filter + - name: contacts + requests: + read: + path: /crm/v3/objects/contacts/search + method: POST + body: '{ + "filterGroups": [{ + "filters": [{ + "value": "", + "propertyName": "email", + "operator": "EQ" + }] + }] + }' + query_params: + - name: limit + value: 100 + param_values: + - name: email + identity: email + postprocessors: + - strategy: unwrap + configuration: + data_path: results + pagination: + strategy: link + configuration: + source: body + path: paging.next.link + update: + path: /crm/v3/objects/contacts/ + method: PATCH + body: '{ + + }' + param_values: + - name: contactId + references: + - dataset: hubspot_connector_example + field: contacts.id + direction: from + - name: owners + requests: + read: + path: /crm/v3/owners + method: GET + query_params: + - name: email + value: + - name: limit + value: 100 + param_values: + - name: email + identity: email + postprocessors: + - strategy: unwrap + configuration: + data_path: results + pagination: + strategy: link configuration: - field: from_email - value: - identity: email - - name: conversations - requests: - read: - method: GET - path: /3.0/conversations - query_params: - - name: count - value: 1000 - - name: offset - value: 0 - param_values: - - name: placeholder - identity: email - data_path: conversations - pagination: - strategy: offset - configuration: - incremental_param: offset - increment_by: 1000 - limit: 10000 - - name: member - requests: - read: - method: GET - path: /3.0/search-members - query_params: - - name: query - value: - param_values: - - name: email - identity: email - data_path: exact_matches.members - update: - method: PUT - path: /3.0/lists//members/ - param_values: - - name: list_id - references: - - dataset: mailchimp_connector_example - field: member.list_id - direction: from - - name: subscriber_hash - references: - - dataset: mailchimp_connector_example - field: member.id - direction: from + source: body + path: paging.next.link +# - name: marketing_emails +# requests: +# read: +# path: /marketing-emails/v1/emails +# method: GET +# query_params: +# - name: limit +# value: 100 +# - name: offset +# value: 0 +# param_values: +# - name: placeholder +# identity: email +# data_path: objects +# postprocessors: +# - strategy: filter +# configuration: +# field: authorEmail # or email? +# value: +# identity: email +# pagination: +# strategy: offset +# configuration: +# incremental_param: offset +# increment_by: 100 +# limit: 10000 +# update: +# path: marketing-emails/v1/emails/ +# method: PUT +# param_values: +# - name: emailId +# references: +# - dataset: hubspot_connector_example +# field: marketing_emails.id +# direction: from + - name: subscription_preferences + requests: + read: + path: /communication-preferences/v3/status/email/ + method: GET + param_values: + - name: email + identity: email + update: + path: /communication-preferences/v3/unsubscribe + method: POST + body: '{ + "emailAddress": "", + "subscriptionId": "", + "legalBasis": "LEGITIMATE_INTEREST_CLIENT", + "legalBasisExplanation": "At users request, we opted them out" + }' + data_path: subscriptionStatuses + param_values: + - name: email + identity: email + - name: subscriptionId + references: + - dataset: hubspot_connector_example + field: subscription_preferences.id + direction: from + postprocessors: + - strategy: filter + configuration: + field: status + value: SUBSCRIBED +# - name: users +# requests: +# read: +# path: /settings/v3/users/ +# method: GET +# query_params: +# - name: limit +# value: 100 +# param_values: +# - name: placeholder +# identity: email +# pagination: +# strategy: link +# configuration: +# source: body +# path: paging.next.link +# postprocessors: +# - strategy: unwrap +# configuration: +# data_path: results +# - strategy: filter +# configuration: +# field: email +# value: +# identity: email +# - name: user_provisioning +# requests: +# read: +# path: /settings/v3/users/ +# method: GET +# param_values: +# - name: userId +# references: +# - dataset: hubspot_connector_example +# field: users.id +# direction: from +# - name: placeholder +# identity: email ``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md index 967887bc9..0eef2e370 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md @@ -1,111 +1,187 @@ -# Mailchimp +# Sentry ## Implementation Summary -Fidesops uses the following Mailchimp endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) capabilities for each endpoint are noted below. +Fidesops uses the following Sentry endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. |Endpoint | Right to Access | Right to Delete | |----|----|----| -|[Messages](docs/link) | Yes/No | Yes/No | -|[Conversations](docs/link) | Yes/No | Yes/No | -|[Members](docs/link) | Yes/No | Yes/No | +|[Organizations](https://docs.sentry.io/api/organizations/list-your-organizations/) | Yes | No | +|[Users](https://docs.sentry.io/api/organizations/list-an-organizations-users/) | Yes | No | +|[Projects](https://docs.sentry.io/api/organizations/list-an-organizations-projects/) | Yes | No | +|[Issues](https://docs.sentry.io/api/events/list-a-projects-issues/) | Yes | No | +|[User Feedback](https://docs.sentry.io/api/projects/list-a-projects-user-feedback/) | Yes | No | + ## Connection Settings -The provided [Postman collection](../../postman/Fidesops.postman_collection.json) can assist in establishing +Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). -## Example SaaS Configuration +## Example Sentry Configuration ```yaml saas_config: - fides_key: mailchimp_connector_example - name: Mailchimp SaaS Config - description: A sample schema representing the Mailchimp connector for Fidesops + fides_key: sentry_connector + name: Sentry SaaS Config + description: A sample schema representing the Sentry connector for Fidesops version: 0.0.1 connector_params: - - name: domain - - name: username - - name: api_key + - name: host + - name: access_token client_config: protocol: https host: - connector_param: domain + connector_param: host authentication: - strategy: basic_authentication + strategy: bearer_authentication configuration: - username: - connector_param: username - password: - connector_param: api_key + token: + connector_param: access_token test_request: method: GET - path: /3.0/lists + path: /api/0/organizations/ endpoints: - - name: messages - requests: - read: - method: GET - path: /3.0/conversations//messages - param_values: - - name: conversation_id - references: - - dataset: mailchimp_connector_example - field: conversations.id - direction: from - data_path: conversation_messages - postprocessors: - - strategy: filter + - name: organizations + requests: + read: + method: GET + path: /api/0/organizations/ + param_values: + - name: placeholder + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: employees + requests: + read: + method: GET + path: /api/0/organizations//users/ + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: organizations.slug + direction: from + postprocessors: + - strategy: filter + configuration: + field: email + value: + identity: email + - name: projects + requests: + read: + method: GET + path: /api/0/projects/ + param_values: + - name: placeholder + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: issues + requests: + update: + method: PUT + path: /api/0/issues// + headers: + - name: Content-Type + value: application/json + param_values: + - name: issue_id + references: + - dataset: sentry_connector + field: issues.id + direction: from + body: '{"assignedTo": ""}' + read: + method: GET + path: /api/0/projects///issues/ + grouped_inputs: [organization_slug, project_slug, query] + query_params: + - name: query + value: assigned: + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: projects.organization.slug + direction: from + - name: project_slug + references: + - dataset: sentry_connector + field: projects.slug + direction: from + - name: query + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: user_feedback + requests: + read: + method: GET + path: /api/0/projects///user-feedback/ + grouped_inputs: [organization_slug, project_slug] + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: projects.organization.slug + direction: from + - name: project_slug + references: + - dataset: sentry_connector + field: projects.slug + direction: from + postprocessors: + - strategy: filter + configuration: + field: email + value: + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: person + after: [sentry_connector.projects] + requests: + read: + method: GET + ignore_errors: true + path: /api/0/projects///users/ + grouped_inputs: [organization_slug, project_slug, query] + query_params: + - name: query + value: email: + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: projects.organization.slug + direction: from + - name: project_slug + references: + - dataset: sentry_connector + field: projects.slug + direction: from + - name: query + identity: email + pagination: + strategy: link configuration: - field: from_email - value: - identity: email - - name: conversations - requests: - read: - method: GET - path: /3.0/conversations - query_params: - - name: count - value: 1000 - - name: offset - value: 0 - param_values: - - name: placeholder - identity: email - data_path: conversations - pagination: - strategy: offset - configuration: - incremental_param: offset - increment_by: 1000 - limit: 10000 - - name: member - requests: - read: - method: GET - path: /3.0/search-members - query_params: - - name: query - value: - param_values: - - name: email - identity: email - data_path: exact_matches.members - update: - method: PUT - path: /3.0/lists//members/ - param_values: - - name: list_id - references: - - dataset: mailchimp_connector_example - field: member.list_id - direction: from - - name: subscriber_hash - references: - - dataset: mailchimp_connector_example - field: member.id - direction: from + source: headers + rel: next ``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/saas_connectors.md b/docs/fidesops/docs/saas_connectors/example_configs/saas_connectors.md deleted file mode 100644 index 67683b8ae..000000000 --- a/docs/fidesops/docs/saas_connectors/example_configs/saas_connectors.md +++ /dev/null @@ -1,113 +0,0 @@ - -# Mailchimp - -## Implementation Summary -You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). - -This table summarizes whether or not each available endpoint supports Right to Access and Right to Delete/Right to Forget - -|Endpoint | Right to Access | Right to Delete | -|----|----|----| -|[Messages](docs/link) | Yes/No | Yes/No | -|[Conversations](docs/link) | Yes/No | Yes/No | -|[Members](docs/link) | Yes/No | Yes/No | - - -## Connection Settings -To retrieve - -## Example SaaS Configuration -```yaml -saas_config: - fides_key: mailchimp_connector_example - name: Mailchimp SaaS Config - description: A sample schema representing the Mailchimp connector for Fidesops - version: 0.0.1 - - connector_params: - - name: domain - - name: username - - name: api_key - - client_config: - protocol: https - host: - connector_param: domain - authentication: - strategy: basic_authentication - configuration: - username: - connector_param: username - password: - connector_param: api_key - - test_request: - method: GET - path: /3.0/lists - - endpoints: - - name: messages - requests: - read: - method: GET - path: /3.0/conversations//messages - param_values: - - name: conversation_id - references: - - dataset: mailchimp_connector_example - field: conversations.id - direction: from - data_path: conversation_messages - postprocessors: - - strategy: filter - configuration: - field: from_email - value: - identity: email - - name: conversations - requests: - read: - method: GET - path: /3.0/conversations - query_params: - - name: count - value: 1000 - - name: offset - value: 0 - param_values: - - name: placeholder - identity: email - data_path: conversations - pagination: - strategy: offset - configuration: - incremental_param: offset - increment_by: 1000 - limit: 10000 - - name: member - requests: - read: - method: GET - path: /3.0/search-members - query_params: - - name: query - value: - param_values: - - name: email - identity: email - data_path: exact_matches.members - update: - method: PUT - path: /3.0/lists//members/ - param_values: - - name: list_id - references: - - dataset: mailchimp_connector_example - field: member.list_id - direction: from - - name: subscriber_hash - references: - - dataset: mailchimp_connector_example - field: member.id - direction: from -``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/segment.md b/docs/fidesops/docs/saas_connectors/example_configs/segment.md index 28bff984c..5df6f2a19 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/segment.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/segment.md @@ -1,113 +1,178 @@ -# Mailchimp +# Segment ## Implementation Summary -You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). - -This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget +Fidesops uses the following Segment endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. |Endpoint | Right to Access | Right to Delete | |----|----|----| -|[Messages](docs/link) | Yes/No | Yes/No | -|[Conversations](docs/link) | Yes/No | Yes/No | -|[Members](docs/link) | Yes/No | Yes/No | - +|[Users](https://segment.com/docs/personas/profile-api/#api-reference) | Yes | No | +|[Events](https://segment.com/docs/personas/profile-api/#api-reference) | Yes | No | +|[Traits](https://segment.com/docs/personas/profile-api/#api-reference) | Yes | No | +|[External IDs](https://segment.com/docs/personas/profile-api/#api-reference) | Yes | No | +|[Regulations](https://segment.com/docs/privacy/user-deletion-and-suppression/#overview) | Yes | Yes | ## Connection Settings -To retrieve -x -## Example SaaS Configuration +Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). + +## Example Segment Configuration ```yaml saas_config: - fides_key: mailchimp_connector_example - name: Mailchimp SaaS Config - description: A sample schema representing the Mailchimp connector for Fidesops + fides_key: segment_connector_example + name: Segment SaaS Config + description: A sample schema representing the Segment connector for Fidesops version: 0.0.1 connector_params: - name: domain - - name: username - - name: api_key + - name: personas_domain + - name: workspace + - name: access_token + - name: namespace_id + - name: access_secret + client_config: protocol: https host: connector_param: domain authentication: - strategy: basic_authentication + strategy: bearer_authentication configuration: - username: - connector_param: username - password: - connector_param: api_key + token: + connector_param: access_token test_request: method: GET - path: /3.0/lists + path: /v1beta/workspaces/ endpoints: - - name: messages + - name: segment_user requests: read: method: GET - path: /3.0/conversations//messages + path: /v1/spaces//collections/users/profiles/user_id:/metadata param_values: - - name: conversation_id - references: - - dataset: mailchimp_connector_example - field: conversations.id - direction: from - data_path: conversation_messages - postprocessors: - - strategy: filter + - name: namespace_id + connector_param: namespace_id + - name: user_id + identity: email + client_config: + protocol: https + host: + connector_param: personas_domain + authentication: + strategy: basic_authentication configuration: - field: from_email - value: - identity: email - - name: conversations + username: + connector_param: access_secret + - name: track_events requests: read: method: GET - path: /3.0/conversations - query_params: - - name: count - value: 1000 - - name: offset - value: 0 + path: /v1/spaces//collections/users/profiles//events param_values: - - name: placeholder - identity: email - data_path: conversations + - name: namespace_id + connector_param: namespace_id + - name: segment_id + references: + - dataset: segment_connector_example + field: segment_user.segment_id + direction: from + data_path: data pagination: - strategy: offset + strategy: link configuration: - incremental_param: offset - increment_by: 1000 - limit: 10000 - - name: member + source: body + path: cursor.url + client_config: + protocol: https + host: + connector_param: personas_domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: access_secret + - name: traits requests: read: method: GET - path: /3.0/search-members + path: /v1/spaces//collections/users/profiles//traits query_params: - - name: query - value: + - name: limit + value: 17 param_values: - - name: email - identity: email - data_path: exact_matches.members - update: - method: PUT - path: /3.0/lists//members/ - param_values: - - name: list_id + - name: namespace_id + connector_param: namespace_id + - name: segment_id references: - - dataset: mailchimp_connector_example - field: member.list_id + - dataset: segment_connector_example + field: segment_user.segment_id direction: from - - name: subscriber_hash + data_path: traits + pagination: + strategy: link + configuration: + source: body + path: cursor.url + client_config: + protocol: https + host: + connector_param: personas_domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: access_secret + - name: external_ids + requests: + read: + method: GET + path: /v1/spaces//collections/users/profiles//external_ids + param_values: + - name: namespace_id + connector_param: namespace_id + - name: segment_id references: - - dataset: mailchimp_connector_example - field: member.id + - dataset: segment_connector_example + field: segment_user.segment_id direction: from + data_path: data + pagination: + strategy: link + configuration: + source: body + path: cursor.url + client_config: + protocol: https + host: + connector_param: personas_domain + authentication: + strategy: basic_authentication + configuration: + username: + connector_param: access_secret + + data_protection_request: + method: POST + path: /v1beta/workspaces//regulations + headers: + - name: Content-Type + value: application/json + param_values: + - name: workspace_name + connector_param: workspace + - name: user_id + identity: email + body: '{"regulation_type": "Suppress_With_Delete", "attributes": {"name": "userId", "values": [""]}}' + client_config: + protocol: https + host: + connector_param: domain + authentication: + strategy: bearer_authentication + configuration: + token: + connector_param: access_token ``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/sentry.md b/docs/fidesops/docs/saas_connectors/example_configs/sentry.md index 28bff984c..10c5aba55 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/sentry.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/sentry.md @@ -1,113 +1,186 @@ - -# Mailchimp +# Sentry ## Implementation Summary -You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). - -This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget +Fidesops uses the following Sentry endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. |Endpoint | Right to Access | Right to Delete | |----|----|----| -|[Messages](docs/link) | Yes/No | Yes/No | -|[Conversations](docs/link) | Yes/No | Yes/No | -|[Members](docs/link) | Yes/No | Yes/No | +|[Organizations](https://docs.sentry.io/api/organizations/list-your-organizations/) | Yes | No | +|[Users](https://docs.sentry.io/api/organizations/list-an-organizations-users/) | Yes | No | +|[Projects](https://docs.sentry.io/api/organizations/list-an-organizations-projects/) | Yes | No | +|[Issues](https://docs.sentry.io/api/events/list-a-projects-issues/) | Yes | No | +|[User Feedback](https://docs.sentry.io/api/projects/list-a-projects-user-feedback/) | Yes | No | + ## Connection Settings -To retrieve -x -## Example SaaS Configuration +Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). + +## Example Sentry Configuration ```yaml saas_config: - fides_key: mailchimp_connector_example - name: Mailchimp SaaS Config - description: A sample schema representing the Mailchimp connector for Fidesops + fides_key: sentry_connector + name: Sentry SaaS Config + description: A sample schema representing the Sentry connector for Fidesops version: 0.0.1 connector_params: - - name: domain - - name: username - - name: api_key + - name: host + - name: access_token client_config: protocol: https host: - connector_param: domain + connector_param: host authentication: - strategy: basic_authentication + strategy: bearer_authentication configuration: - username: - connector_param: username - password: - connector_param: api_key + token: + connector_param: access_token test_request: method: GET - path: /3.0/lists + path: /api/0/organizations/ endpoints: - - name: messages - requests: - read: - method: GET - path: /3.0/conversations//messages - param_values: - - name: conversation_id - references: - - dataset: mailchimp_connector_example - field: conversations.id - direction: from - data_path: conversation_messages - postprocessors: - - strategy: filter + - name: organizations + requests: + read: + method: GET + path: /api/0/organizations/ + param_values: + - name: placeholder + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: employees + requests: + read: + method: GET + path: /api/0/organizations//users/ + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: organizations.slug + direction: from + postprocessors: + - strategy: filter + configuration: + field: email + value: + identity: email + - name: projects + requests: + read: + method: GET + path: /api/0/projects/ + param_values: + - name: placeholder + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: issues + requests: + update: + method: PUT + path: /api/0/issues// + headers: + - name: Content-Type + value: application/json + param_values: + - name: issue_id + references: + - dataset: sentry_connector + field: issues.id + direction: from + body: '{"assignedTo": ""}' + read: + method: GET + path: /api/0/projects///issues/ + grouped_inputs: [organization_slug, project_slug, query] + query_params: + - name: query + value: assigned: + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: projects.organization.slug + direction: from + - name: project_slug + references: + - dataset: sentry_connector + field: projects.slug + direction: from + - name: query + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: user_feedback + requests: + read: + method: GET + path: /api/0/projects///user-feedback/ + grouped_inputs: [organization_slug, project_slug] + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: projects.organization.slug + direction: from + - name: project_slug + references: + - dataset: sentry_connector + field: projects.slug + direction: from + postprocessors: + - strategy: filter + configuration: + field: email + value: + identity: email + pagination: + strategy: link + configuration: + source: headers + rel: next + - name: person + after: [sentry_connector.projects] + requests: + read: + method: GET + ignore_errors: true + path: /api/0/projects///users/ + grouped_inputs: [organization_slug, project_slug, query] + query_params: + - name: query + value: email: + param_values: + - name: organization_slug + references: + - dataset: sentry_connector + field: projects.organization.slug + direction: from + - name: project_slug + references: + - dataset: sentry_connector + field: projects.slug + direction: from + - name: query + identity: email + pagination: + strategy: link configuration: - field: from_email - value: - identity: email - - name: conversations - requests: - read: - method: GET - path: /3.0/conversations - query_params: - - name: count - value: 1000 - - name: offset - value: 0 - param_values: - - name: placeholder - identity: email - data_path: conversations - pagination: - strategy: offset - configuration: - incremental_param: offset - increment_by: 1000 - limit: 10000 - - name: member - requests: - read: - method: GET - path: /3.0/search-members - query_params: - - name: query - value: - param_values: - - name: email - identity: email - data_path: exact_matches.members - update: - method: PUT - path: /3.0/lists//members/ - param_values: - - name: list_id - references: - - dataset: mailchimp_connector_example - field: member.list_id - direction: from - - name: subscriber_hash - references: - - dataset: mailchimp_connector_example - field: member.id - direction: from + source: headers + rel: next ``` \ No newline at end of file diff --git a/docs/fidesops/docs/saas_connectors/example_configs/stripe.md b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md index 28bff984c..c2cb87f12 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/stripe.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md @@ -1,113 +1,466 @@ -# Mailchimp +# Stripe ## Implementation Summary -You may use the following endpoints in Mailchimp to retrieve and delete Personally Identifiable Information (PII) when a user submits a Data Subject Request (DSR). - -This table summarizes whether each available endpoint supports Right to Access and Right to Delete/Right to Forget +Fidesops uses the following Stripe endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. |Endpoint | Right to Access | Right to Delete | |----|----|----| -|[Messages](docs/link) | Yes/No | Yes/No | -|[Conversations](docs/link) | Yes/No | Yes/No | -|[Members](docs/link) | Yes/No | Yes/No | - +|[Customers](https://stripe.com/docs/api/customers/update) | Yes | No | +|[Charges](https://stripe.com/docs/api/charges/list) | Yes | No | +|[Disputes](https://stripe.com/docs/api/disputes/list) | Yes | No | +|[PaymentIntents](https://stripe.com/docs/api/payment_intents/list) | Yes | No | +|[PaymentMethods](https://stripe.com/docs/api/payment_methods/list) | Yes | No | +|[BankAccounts](https://stripe.com/docs/api/customer_bank_accounts/list) | Yes | No | +|[BankAccounts](https://stripe.com/docs/api/customer_bank_accounts/list) | Yes | No | +|[Cards](https://stripe.com/docs/api/cards/list) | Yes | No | +|[Credit Notes](https://stripe.com/docs/api/credit_notes/list) | Yes | No | +|[Customer Balance Transaction](https://stripe.com/docs/api/customer_balance_transactions/list) | Yes | No | +|[Tax IDs](https://stripe.com/docs/api/customer_tax_ids/list) | Yes | Yes | +|[Invoices](https://stripe.com/docs/api/invoices/list) | Yes | Yes | +|[Invoice Item](https://stripe.com/docs/api/invoiceitems/list) | Yes | Yes | +|[Subscriptions](https://stripe.com/docs/api/subscriptions/list) | Yes | Yes | ## Connection Settings -To retrieve -x -## Example SaaS Configuration +Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). + +## Example Stripe Configuration ```yaml saas_config: - fides_key: mailchimp_connector_example - name: Mailchimp SaaS Config - description: A sample schema representing the Mailchimp connector for Fidesops + fides_key: stripe_connector_example + name: Stripe SaaS Config + description: A sample schema representing the Stripe connector for Fidesops version: 0.0.1 connector_params: - - name: domain - - name: username + - name: host - name: api_key + - name: payment_types + - name: items_per_page client_config: protocol: https host: - connector_param: domain + connector_param: host authentication: - strategy: basic_authentication + strategy: bearer_authentication configuration: - username: - connector_param: username - password: + token: connector_param: api_key test_request: method: GET - path: /3.0/lists - + path: /v1/customers + endpoints: - - name: messages + - name: customer requests: read: method: GET - path: /3.0/conversations//messages + path: /v1/customers + query_params: + - name: email + value: + param_values: + - name: email + identity: email + data_path: data + update: + method: POST + path: /v1/customers/ + headers: + - name: Content-Type + value: application/x-www-form-urlencoded + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + body: '{}' + - name: charge + requests: + read: + method: GET + path: /v1/charges + query_params: + - name: customer + value: + - name: limit + value: param_values: - - name: conversation_id + - name: customer_id references: - - dataset: mailchimp_connector_example - field: conversations.id + - dataset: stripe_connector_example + field: customer.id direction: from - data_path: conversation_messages - postprocessors: - - strategy: filter - configuration: - field: from_email - value: - identity: email - - name: conversations + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + - name: dispute requests: read: method: GET - path: /3.0/conversations + path: /v1/disputes query_params: - - name: count - value: 1000 - - name: offset - value: 0 + - name: charge + value: + - name: payment_intent + value: + - name: limit + value: param_values: - - name: placeholder - identity: email - data_path: conversations + - name: charge_id + references: + - dataset: stripe_connector_example + field: charge.id + direction: from + - name: payment_intent_id + references: + - dataset: stripe_connector_example + field: payment_intent.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data pagination: - strategy: offset + strategy: cursor configuration: - incremental_param: offset - increment_by: 1000 - limit: 10000 - - name: member + cursor_param: starting_after + field: id + - name: payment_intent requests: read: method: GET - path: /3.0/search-members + path: /v1/payment_intents query_params: - - name: query - value: + - name: customer + value: + - name: limit + value: param_values: - - name: email - identity: email - data_path: exact_matches.members + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + - name: payment_method + requests: + read: + method: GET + path: /v1/customers//payment_methods + query_params: + - name: type + value: + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: type + connector_param: payment_types + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + update: + method: POST + path: /v1/payment_methods/ + headers: + - name: Content-Type + value: application/x-www-form-urlencoded + param_values: + - name: payment_method_id + references: + - dataset: stripe_connector_example + field: payment_method.id + direction: from + body: '{}' + - name: bank_account + requests: + read: + method: GET + path: /v1/customers//sources + query_params: + - name: object + value: bank_account + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + update: + method: POST + path: /v1/customers//sources/ + headers: + - name: Content-Type + value: application/x-www-form-urlencoded + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: bank_account.customer + direction: from + - name: bank_account_id + references: + - dataset: stripe_connector_example + field: bank_account.id + direction: from + body: '{}' + - name: card + requests: + read: + method: GET + path: /v1/customers//sources + query_params: + - name: object + value: card + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id update: - method: PUT - path: /3.0/lists//members/ + method: POST + path: /v1/customers//sources/ + headers: + - name: Content-Type + value: application/x-www-form-urlencoded param_values: - - name: list_id + - name: customer_id references: - - dataset: mailchimp_connector_example - field: member.list_id + - dataset: stripe_connector_example + field: card.customer direction: from - - name: subscriber_hash + - name: card_id + references: + - dataset: stripe_connector_example + field: card.id + direction: from + body: '{}' + - name: credit_note + requests: + read: + method: GET + path: /v1/credit_notes + query_params: + - name: customer + value: + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + - name: customer_balance_transaction + requests: + read: + method: GET + path: /v1/customers//balance_transactions + query_params: + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + - name: tax_id + requests: + read: + method: GET + path: /v1/customers//tax_ids + query_params: + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + delete: + method: DELETE + path: /v1/customers//tax_ids/ + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: tax_id.customer + direction: from + - name: tax_id + references: + - dataset: stripe_connector_example + field: tax_id.id + direction: from + - name: invoice + requests: + read: + method: GET + path: /v1/invoices + query_params: + - name: customer + value: + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + delete: + method: DELETE + ignore_errors: true # You can only delete draft invoices. You can't delete invoices created by subscriptions. + path: /v1/invoices/ + param_values: + - name: invoice_id + references: + - dataset: stripe_connector_example + field: invoice.id + direction: from + - name: invoice_item + requests: + read: + method: GET + path: /v1/invoiceitems + query_params: + - name: customer + value: + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + delete: + method: DELETE + ignore_errors: true # Can't delete an invoice item that is attached to an invoice that is no longer editable + path: /v1/invoiceitems/ + param_values: + - name: invoice_item_id + references: + - dataset: stripe_connector_example + field: invoice_item.id + direction: from + - name: subscription + requests: + read: + method: GET + path: /v1/subscriptions + query_params: + - name: customer + value: + - name: limit + value: + param_values: + - name: customer_id + references: + - dataset: stripe_connector_example + field: customer.id + direction: from + - name: limit + connector_param: items_per_page + data_path: data + pagination: + strategy: cursor + configuration: + cursor_param: starting_after + field: id + delete: + method: DELETE + path: /v1/subscriptions/ + param_values: + - name: subscription_id references: - - dataset: mailchimp_connector_example - field: member.id + - dataset: stripe_connector_example + field: subscription.id direction: from ``` \ No newline at end of file diff --git a/docs/fidesops/mkdocs.yml b/docs/fidesops/mkdocs.yml index 1aafa2090..39eedc24d 100644 --- a/docs/fidesops/mkdocs.yml +++ b/docs/fidesops/mkdocs.yml @@ -36,7 +36,11 @@ nav: - SaaS Post-Processors: saas_connectors/saas_postprocessors.md - SaaS Pagination: saas_connectors/saas_pagination.md - Connection Examples: - - Mailchimp: saas_connectors/example_configs/saas_connectors.md + - Hubspot: saas_connectors/example_configs/hubspot.md + - Mailchimp: saas_connectors/example_configs/mailchimp.md + - Segment: saas_connectors/example_configs/segment.md + - Sentry: saas_connectors/example_configs/sentry.md + - Stripe: saas_connectors/example_configs/stripe.md - Deployment Guide: deployment.md - Glossary: glossary.md - API: api/index.md From 85dce6a1d526eaf0de9d860c4335d4e870418156 Mon Sep 17 00:00:00 2001 From: Cole Isaac Date: Mon, 9 May 2022 10:57:31 -0400 Subject: [PATCH 4/8] update mailchimp docs --- .../example_configs/mailchimp.md | 241 ++++++------------ 1 file changed, 82 insertions(+), 159 deletions(-) diff --git a/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md index 0eef2e370..dc8fe3e2b 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md @@ -1,187 +1,110 @@ - -# Sentry +# Mailchimp ## Implementation Summary -Fidesops uses the following Sentry endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. +Fidesops uses the following Mailchimp endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. |Endpoint | Right to Access | Right to Delete | |----|----|----| -|[Organizations](https://docs.sentry.io/api/organizations/list-your-organizations/) | Yes | No | -|[Users](https://docs.sentry.io/api/organizations/list-an-organizations-users/) | Yes | No | -|[Projects](https://docs.sentry.io/api/organizations/list-an-organizations-projects/) | Yes | No | -|[Issues](https://docs.sentry.io/api/events/list-a-projects-issues/) | Yes | No | -|[User Feedback](https://docs.sentry.io/api/projects/list-a-projects-user-feedback/) | Yes | No | - +|[Messages](https://mailchimp.com/developer/marketing/api/conversation-messages/list-messages/) | Yes | No | +|[Conversations](https://mailchimp.com/developer/marketing/api/conversation-messages/) | Yes | No | +|[Members](https://mailchimp.com/developer/marketing/api/list-members/get-member-info/) | Yes | Yes | ## Connection Settings Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). -## Example Sentry Configuration +## Example Mailchimp Configuration ```yaml saas_config: - fides_key: sentry_connector - name: Sentry SaaS Config - description: A sample schema representing the Sentry connector for Fidesops + fides_key: mailchimp_connector_example + name: Mailchimp SaaS Config + description: A sample schema representing the Mailchimp connector for Fidesops version: 0.0.1 connector_params: - - name: host - - name: access_token + - name: domain + - name: username + - name: api_key client_config: protocol: https host: - connector_param: host + connector_param: domain authentication: - strategy: bearer_authentication + strategy: basic_authentication configuration: - token: - connector_param: access_token + username: + connector_param: username + password: + connector_param: api_key test_request: method: GET - path: /api/0/organizations/ + path: /3.0/lists endpoints: - - name: organizations - requests: - read: - method: GET - path: /api/0/organizations/ - param_values: - - name: placeholder - identity: email - pagination: - strategy: link - configuration: - source: headers - rel: next - - name: employees - requests: - read: - method: GET - path: /api/0/organizations//users/ - param_values: - - name: organization_slug - references: - - dataset: sentry_connector - field: organizations.slug - direction: from - postprocessors: - - strategy: filter - configuration: - field: email - value: - identity: email - - name: projects - requests: - read: - method: GET - path: /api/0/projects/ - param_values: - - name: placeholder - identity: email - pagination: - strategy: link - configuration: - source: headers - rel: next - - name: issues - requests: - update: - method: PUT - path: /api/0/issues// - headers: - - name: Content-Type - value: application/json - param_values: - - name: issue_id - references: - - dataset: sentry_connector - field: issues.id - direction: from - body: '{"assignedTo": ""}' - read: - method: GET - path: /api/0/projects///issues/ - grouped_inputs: [organization_slug, project_slug, query] - query_params: - - name: query - value: assigned: - param_values: - - name: organization_slug - references: - - dataset: sentry_connector - field: projects.organization.slug - direction: from - - name: project_slug - references: - - dataset: sentry_connector - field: projects.slug - direction: from - - name: query - identity: email - pagination: - strategy: link - configuration: - source: headers - rel: next - - name: user_feedback - requests: - read: - method: GET - path: /api/0/projects///user-feedback/ - grouped_inputs: [organization_slug, project_slug] - param_values: - - name: organization_slug - references: - - dataset: sentry_connector - field: projects.organization.slug - direction: from - - name: project_slug - references: - - dataset: sentry_connector - field: projects.slug - direction: from - postprocessors: - - strategy: filter - configuration: - field: email - value: - identity: email - pagination: - strategy: link - configuration: - source: headers - rel: next - - name: person - after: [sentry_connector.projects] - requests: - read: - method: GET - ignore_errors: true - path: /api/0/projects///users/ - grouped_inputs: [organization_slug, project_slug, query] - query_params: - - name: query - value: email: - param_values: - - name: organization_slug - references: - - dataset: sentry_connector - field: projects.organization.slug - direction: from - - name: project_slug - references: - - dataset: sentry_connector - field: projects.slug - direction: from - - name: query - identity: email - pagination: - strategy: link + - name: messages + requests: + read: + method: GET + path: /3.0/conversations//messages + param_values: + - name: conversation_id + references: + - dataset: mailchimp_connector_example + field: conversations.id + direction: from + data_path: conversation_messages + postprocessors: + - strategy: filter configuration: - source: headers - rel: next + field: from_email + value: + identity: email + - name: conversations + requests: + read: + method: GET + path: /3.0/conversations + query_params: + - name: count + value: 1000 + - name: offset + value: 0 + param_values: + - name: placeholder + identity: email + data_path: conversations + pagination: + strategy: offset + configuration: + incremental_param: offset + increment_by: 1000 + limit: 10000 + - name: member + requests: + read: + method: GET + path: /3.0/search-members + query_params: + - name: query + value: + param_values: + - name: email + identity: email + data_path: exact_matches.members + update: + method: PUT + path: /3.0/lists//members/ + param_values: + - name: list_id + references: + - dataset: mailchimp_connector_example + field: member.list_id + direction: from + - name: subscriber_hash + references: + - dataset: mailchimp_connector_example + field: member.id + direction: from ``` \ No newline at end of file From 8d8295677388fe896d6f2c8562ba91869e639536 Mon Sep 17 00:00:00 2001 From: Adrian Galvan Date: Mon, 9 May 2022 22:21:46 -0700 Subject: [PATCH 5/8] Fixing minor typos --- .../docs/saas_connectors/example_configs/stripe.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/fidesops/docs/saas_connectors/example_configs/stripe.md b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md index c2cb87f12..3e3557395 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/stripe.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md @@ -9,16 +9,15 @@ Fidesops uses the following Stripe endpoints to retrieve and delete Personally I |[Customers](https://stripe.com/docs/api/customers/update) | Yes | No | |[Charges](https://stripe.com/docs/api/charges/list) | Yes | No | |[Disputes](https://stripe.com/docs/api/disputes/list) | Yes | No | -|[PaymentIntents](https://stripe.com/docs/api/payment_intents/list) | Yes | No | -|[PaymentMethods](https://stripe.com/docs/api/payment_methods/list) | Yes | No | -|[BankAccounts](https://stripe.com/docs/api/customer_bank_accounts/list) | Yes | No | -|[BankAccounts](https://stripe.com/docs/api/customer_bank_accounts/list) | Yes | No | +|[Payment Intents](https://stripe.com/docs/api/payment_intents/list) | Yes | No | +|[Payment Methods](https://stripe.com/docs/api/payment_methods/list) | Yes | No | +|[Bank Accounts](https://stripe.com/docs/api/customer_bank_accounts/list) | Yes | No | |[Cards](https://stripe.com/docs/api/cards/list) | Yes | No | |[Credit Notes](https://stripe.com/docs/api/credit_notes/list) | Yes | No | -|[Customer Balance Transaction](https://stripe.com/docs/api/customer_balance_transactions/list) | Yes | No | +|[Customer Balance Transactions](https://stripe.com/docs/api/customer_balance_transactions/list) | Yes | No | |[Tax IDs](https://stripe.com/docs/api/customer_tax_ids/list) | Yes | Yes | |[Invoices](https://stripe.com/docs/api/invoices/list) | Yes | Yes | -|[Invoice Item](https://stripe.com/docs/api/invoiceitems/list) | Yes | Yes | +|[Invoice Items](https://stripe.com/docs/api/invoiceitems/list) | Yes | Yes | |[Subscriptions](https://stripe.com/docs/api/subscriptions/list) | Yes | Yes | ## Connection Settings From 5d16fdba13ea1e9995dd34768b5e0f9f1a3fb18b Mon Sep 17 00:00:00 2001 From: Cole Isaac Date: Fri, 13 May 2022 14:56:21 -0400 Subject: [PATCH 6/8] Feedback updates --- .../docs/saas_connectors/example_configs/hubspot.md | 2 ++ .../docs/saas_connectors/example_configs/segment.md | 2 ++ .../docs/saas_connectors/example_configs/sentry.md | 4 +++- .../docs/saas_connectors/example_configs/stripe.md | 12 +++++++----- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md b/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md index ad71c696d..cb6a070e4 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/hubspot.md @@ -18,6 +18,8 @@ Fidesops uses the following Hubspot endpoints to retrieve and delete Personally ## Connection Settings Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). +**Deletion requests** are fulfilled by masking PII via `UPDATE` endpoints. To [give Fidesops permission](../../guides/configuration_reference.md#configuration-variable-reference) to remove PII using `DELETE` endpoints, ensure the `MASKING_STRICT` variable in your `fidesops.toml` file is set to `FALSE`. + ## Example Hubspot Configuration ```yaml saas_config: diff --git a/docs/fidesops/docs/saas_connectors/example_configs/segment.md b/docs/fidesops/docs/saas_connectors/example_configs/segment.md index 5df6f2a19..c0df7e99f 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/segment.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/segment.md @@ -15,6 +15,8 @@ Fidesops uses the following Segment endpoints to retrieve and delete Personally ## Connection Settings Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). +**Deletion requests** are fulfilled by masking PII via `UPDATE` endpoints. To [give Fidesops permission](../../guides/configuration_reference.md#configuration-variable-reference) to remove PII using `DELETE` endpoints, ensure the `MASKING_STRICT` variable in your `fidesops.toml` file is set to `FALSE`. + ## Example Segment Configuration ```yaml saas_config: diff --git a/docs/fidesops/docs/saas_connectors/example_configs/sentry.md b/docs/fidesops/docs/saas_connectors/example_configs/sentry.md index 10c5aba55..94152a250 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/sentry.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/sentry.md @@ -7,7 +7,7 @@ Fidesops uses the following Sentry endpoints to retrieve and delete Personally I |----|----|----| |[Organizations](https://docs.sentry.io/api/organizations/list-your-organizations/) | Yes | No | |[Users](https://docs.sentry.io/api/organizations/list-an-organizations-users/) | Yes | No | -|[Projects](https://docs.sentry.io/api/organizations/list-an-organizations-projects/) | Yes | No | +|[Projects](https://docs.sentry.io/api/organizations/list-an-organizations-projects/) | Yes | Yes | |[Issues](https://docs.sentry.io/api/events/list-a-projects-issues/) | Yes | No | |[User Feedback](https://docs.sentry.io/api/projects/list-a-projects-user-feedback/) | Yes | No | @@ -16,6 +16,8 @@ Fidesops uses the following Sentry endpoints to retrieve and delete Personally I ## Connection Settings Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). +**Deletion requests** are fulfilled by masking PII via `UPDATE` endpoints. To [give Fidesops permission](../../guides/configuration_reference.md#configuration-variable-reference) to remove PII using `DELETE` endpoints, ensure the `MASKING_STRICT` variable in your `fidesops.toml` file is set to `FALSE`. + ## Example Sentry Configuration ```yaml saas_config: diff --git a/docs/fidesops/docs/saas_connectors/example_configs/stripe.md b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md index 3e3557395..f696200dc 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/stripe.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/stripe.md @@ -2,17 +2,17 @@ # Stripe ## Implementation Summary -Fidesops uses the following Stripe endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. +Fidesops uses the following Stripe endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below. |Endpoint | Right to Access | Right to Delete | |----|----|----| -|[Customers](https://stripe.com/docs/api/customers/update) | Yes | No | +|[Customers](https://stripe.com/docs/api/customers/update) | Yes | Yes | |[Charges](https://stripe.com/docs/api/charges/list) | Yes | No | |[Disputes](https://stripe.com/docs/api/disputes/list) | Yes | No | -|[Payment Intents](https://stripe.com/docs/api/payment_intents/list) | Yes | No | +|[Payment Intents](https://stripe.com/docs/api/payment_intents/list) | Yes | Yes | |[Payment Methods](https://stripe.com/docs/api/payment_methods/list) | Yes | No | -|[Bank Accounts](https://stripe.com/docs/api/customer_bank_accounts/list) | Yes | No | -|[Cards](https://stripe.com/docs/api/cards/list) | Yes | No | +|[Bank Accounts](https://stripe.com/docs/api/customer_bank_accounts/list) | Yes | Yes | +|[Cards](https://stripe.com/docs/api/cards/list) | Yes | Yes | |[Credit Notes](https://stripe.com/docs/api/credit_notes/list) | Yes | No | |[Customer Balance Transactions](https://stripe.com/docs/api/customer_balance_transactions/list) | Yes | No | |[Tax IDs](https://stripe.com/docs/api/customer_tax_ids/list) | Yes | Yes | @@ -23,6 +23,8 @@ Fidesops uses the following Stripe endpoints to retrieve and delete Personally I ## Connection Settings Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). +**Deletion requests** are fulfilled by masking PII via `UPDATE` endpoints. To [give Fidesops permission](../../guides/configuration_reference.md#configuration-variable-reference) to remove PII using `DELETE` endpoints, ensure the `MASKING_STRICT` variable in your `fidesops.toml` file is set to `FALSE`. + ## Example Stripe Configuration ```yaml saas_config: From 2d825994b66b9e10baabc05f5409c70719a4d418 Mon Sep 17 00:00:00 2001 From: Cole Isaac Date: Fri, 13 May 2022 14:56:38 -0400 Subject: [PATCH 7/8] Feedback updates --- data/saas/config/hubspot_config.yml | 2 +- docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/data/saas/config/hubspot_config.yml b/data/saas/config/hubspot_config.yml index d7e7f1285..2e99c227e 100644 --- a/data/saas/config/hubspot_config.yml +++ b/data/saas/config/hubspot_config.yml @@ -129,7 +129,7 @@ saas_config: param_values: - name: email identity: email - update: + giç: path: /communication-preferences/v3/unsubscribe method: POST body: '{ diff --git a/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md index dc8fe3e2b..518cb2cda 100644 --- a/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md +++ b/docs/fidesops/docs/saas_connectors/example_configs/mailchimp.md @@ -13,6 +13,8 @@ Fidesops uses the following Mailchimp endpoints to retrieve and delete Personall ## Connection Settings Fidesops provides as [Postman collection](../../postman/using_postman.md) for easily establishing connections to your third party applications. Additional connection instructions may be found in the [configuration guide](../saas_config.md). +**Deletion requests** are fulfilled by masking PII via `UPDATE` endpoints. To [give Fidesops permission](../../guides/configuration_reference.md#configuration-variable-reference) to remove PII using `DELETE` endpoints, ensure the `MASKING_STRICT` variable in your `fidesops.toml` file is set to `FALSE`. + ## Example Mailchimp Configuration ```yaml saas_config: From 62effcf2597192a451a0a4528eaaa7fbf4c107a3 Mon Sep 17 00:00:00 2001 From: Cole Isaac Date: Mon, 16 May 2022 12:44:45 -0400 Subject: [PATCH 8/8] fix typo --- data/saas/config/hubspot_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/saas/config/hubspot_config.yml b/data/saas/config/hubspot_config.yml index 2e99c227e..d7e7f1285 100644 --- a/data/saas/config/hubspot_config.yml +++ b/data/saas/config/hubspot_config.yml @@ -129,7 +129,7 @@ saas_config: param_values: - name: email identity: email - giç: + update: path: /communication-preferences/v3/unsubscribe method: POST body: '{