Skip to content

Commit

Permalink
[#927, #929, #930] sendgrid, adobe, outreach connector docs (#951)
Browse files Browse the repository at this point in the history
  • Loading branch information
conceptualshark authored Jul 28, 2022
1 parent 4b72d84 commit 9eb0994
Show file tree
Hide file tree
Showing 4 changed files with 364 additions and 0 deletions.
120 changes: 120 additions & 0 deletions docs/fidesops/docs/saas_connectors/example_configs/adobe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@

# Adobe Campaign

## Implementation Summary
Fidesops uses the following Adobe Campaign 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 |
|----|----|----|
|[Profile](https://experienceleague.adobe.com/docs/campaign-standard/using/working-with-apis/global-concepts/endpoints.html?lang=en) | Yes | Yes |
|[History](https://experienceleague.adobe.com/docs/campaign-standard/using/working-with-apis/global-concepts/endpoints.html?lang=en) | Yes | Yes |
|[Privacy Tool](https://experienceleague.adobe.com/docs/campaign-standard/using/working-with-apis/global-concepts/endpoints.html?lang=en) | Yes | Yes |

## Connection Settings
Fidesops provides a [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 Adobe Configuration
```yaml
saas_config:
fides_key: adobe_campaign_connector_example
name: Adobe Campaign SaaS Config
type: adobe_campaign
description: A schema representing the Adobe Campaign connector for Fidesops
version: 0.0.1

connector_params:
- name: domain
default_value: mc.adobe.io
- name: organization_id
- name: namespace
default_value: defaultNamespace1
description: The namespace to use for data protections requests
- name: regulation
description: The regulation to follow for data protection requests
- name: client_id
- name: access_token

client_config:
protocol: https
host: <domain>/<organization_id>
authentication:
strategy: bearer
configuration:
token: <access_token>

test_request:
method: GET
path: /campaign/profileAndServices/profile/PKey
headers:
- name: X-Api-Key
value: <client_id>
query_params:
- name: _lineCount
value: 1
param_values:
- name: client_id
connector_param: client_id

endpoints:
- name: profile
requests:
read:
method: GET
path: /campaign/profileAndServices/profile/byEmail
headers:
- name: X-Api-Key
value: <client_id>
query_params:
- name: email
value: <email>
param_values:
- name: client_id
connector_param: client_id
- name: email
identity: email
data_path: content
- name: marketing_history
requests:
read:
method: GET
path: /campaign/profileAndServices/history/byEmail
headers:
- name: X-Api-Key
value: <client_id>
query_params:
- name: email
value: <email>
param_values:
- name: client_id
connector_param: client_id
- name: email
identity: email
data_path: content

data_protection_request:
method: POST
path: /campaign/privacy/privacyTool
headers:
- name: X-Api-Key
value: <client_id>
param_values:
- name: client_id
connector_param: client_id
- name: regulation
connector_param: regulation
- name: namespace
connector_param: namespace
- name: reconciliation_value
identity: email
body: |
{
"name": "<privacy_request_id>",
"namespaceName": "<namespace>",
"reconciliationValue": "<reconciliation_value>",
"regulation": "<regulation>",
"label": "Erasure Request",
"type": "delete"
}
```
177 changes: 177 additions & 0 deletions docs/fidesops/docs/saas_connectors/example_configs/outreach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@

# Outreach

## Implementation Summary
Fidesops uses the following Outreach 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 |
|----|----|----|
|[Prospects](https://api.outreach.io/api/v2/docs#manage-prospects-and-accounts) | Yes | Yes |
|[Recipients](https://api.outreach.io/api/v2/docs#recipient) | Yes | Yes |


## Connection Settings
Fidesops provides a [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 Outreach Configuration
```yaml
saas_config:
fides_key: outreach_connector_example
name: Outreach Example Config
type: outreach
description: A sample schema representing the Outreach connector for Fidesops
version: 0.0.1

connector_params:
- name: domain
default_value: platform.segmentapis.com
- name: requester_email
description: The email of the Outreach user to associate with each automated compliance request (data_protection_request)
- name: client_id
- name: client_secret
- name: redirect_uri
- name: page_size
description: The number of entries to return per page

client_config:
protocol: https
host: <domain>
authentication:
strategy: oauth2
configuration:
authorization_request:
method: GET
path: /auth/authorize
query_params:
- name: client_id
value: <client_id>
- name: redirect_uri
value: <redirect_uri>
- name: response_type
value: code
- name: scope
value: prospects.all recipients.all teams.all roles.all accounts.all audits.all callDispositions.all callPurposes.all calls.all complianceRequests.all contentCategories.all contentCategoryMemberships.all contentCategoryOwnerships.all duties.all emailAddresses.all events.all favorites.all mailAliases.all mailboxes.all mailings.all opportunities.all opportunityProspectRoles.all opportunityStages.all personas.all phoneNumbers.all profiles.all rulesets.all sequenceStates.all sequenceSteps.all sequenceTemplates.all sequences.all snippets.all stages.all taskPriorities.all tasks.all templates.all users.all webhooks.all
- name: state
value: <state>
token_request:
method: POST
path: /oauth/token
headers:
- name: Content-Type
value: application/x-www-form-urlencoded
query_params:
- name: client_id
value: <client_id>
- name: client_secret
value: <client_secret>
- name: grant_type
value: authorization_code
- name: code
value: <code>
- name: redirect_uri
value: <redirect_uri>
refresh_request:
method: POST
path: /oauth/token
headers:
- name: Content-Type
value: application/x-www-form-urlencoded
query_params:
- name: client_id
value: <client_id>
- name: client_secret
value: <client_secret>
- name: redirect_uri
value: <redirect_uri>
- name: grant_type
value: refresh_token
- name: refresh_token
value: <refresh_token>

test_request:
method: GET
path: /api/v2/roles

endpoints:
- name: prospects
requests:
read:
method: GET
path: /api/v2/prospects
query_params:
- name: filter[emails]
value: <email>
param_values:
- name: email
identity: email
data_path: data
delete:
method: POST
path: /api/v2/complianceRequests
param_values:
- name: requester_email
connector_param: requester_email
- name: email
identity: email
body: |
{
"data": {
"type": "complianceRequest",
"attributes": {
"requester_email": "<requester_email>",
"request_type": "Delete",
"object_type": "Prospect",
"request_object_email": "<email>"
}
}
}
- name: recipients
requests:
read:
method: GET
path: /api/v2/recipients
query_params:
- name: page[size]
value: <page_size>
param_values:
- name: page_size
connector_param: page_size
- name: placeholder
identity: email
data_path: data
pagination:
strategy: link
configuration:
source: body
path: links.next
postprocessors:
- strategy: filter
configuration:
field: attributes.value
value:
identity: email
exact: False
case_sensitive: False
delete:
method: POST
path: /api/v2/complianceRequests
param_values:
- name: requester_email
connector_param: requester_email
- name: email
identity: email
body: |
{
"data": {
"type": "complianceRequest",
"attributes": {
"requester_email": "<requester_email>",
"request_type": "Delete",
"object_type": "Recipient",
"request_object_email": "<email>"
}
}
}
```
64 changes: 64 additions & 0 deletions docs/fidesops/docs/saas_connectors/example_configs/sendgrid.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@

# Sendgrid

## Implementation Summary
Fidesops uses the following Sendgrid 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 |
|----|----|----|
|[Contacts](https://docs.sendgrid.com/api-reference/contacts/search-contacts) | Yes | Yes |

## Connection Settings
Fidesops provides a [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 Sendgrid Configuration
```yaml
saas_config:
fides_key: sendgrid_connector_example
name: Sendgrid SaaS Config
type: sendgrid
description: A sample schema representing the Sendgrid connector for Fidesops
version: 0.0.1

connector_params:
- name: domain
- name: api_key

client_config:
protocol: https
host: <domain>
authentication:
strategy: bearer
configuration:
token: <api_key>

test_request:
method: GET
path: /v3/marketing/contacts

endpoints:
- name: contacts
requests:
read:
method: POST
path: /v3/marketing/contacts/search
body: |
{
"query": "email = '<email>'"
}
param_values:
- name: email
identity: email
data_path: result
delete:
method: DELETE
path: /v3/marketing/contacts?ids=<contact_id>
param_values:
- name: contact_id
references:
- dataset: sendgrid_connector_example
field: contacts.id
direction: from
```
3 changes: 3 additions & 0 deletions docs/fidesops/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,13 @@ nav:
- SaaS Post-Processors: saas_connectors/saas_postprocessors.md
- SaaS Pagination: saas_connectors/saas_pagination.md
- Connection Examples:
- Adobe Campaign: saas_connectors/example_configs/adobe.md
- Hubspot: saas_connectors/example_configs/hubspot.md
- Mailchimp: saas_connectors/example_configs/mailchimp.md
- Outreach: saas_connectors/example_configs/outreach.md
- Salesforce: saas_connectors/example_configs/salesforce.md
- Segment: saas_connectors/example_configs/segment.md
- Sendgrid: saas_connectors/example_configs/sendgrid.md
- Sentry: saas_connectors/example_configs/sentry.md
- Stripe: saas_connectors/example_configs/stripe.md
- Zendesk: saas_connectors/example_configs/zendesk.md
Expand Down

0 comments on commit 9eb0994

Please sign in to comment.