This repository has been archived by the owner on Nov 30, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 16
SaaS connection documentation #478
Merged
Merged
Changes from 6 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
8fcadbc
update saas connector docs layout and stub in connectors guides (#450…
8f3caf0
ia restructuring, stub in connector guides
ae074a6
update docs ia [#427] and provide visible SaaS connector examples [#450]
e58be27
Merge branch 'main' into cg-saas-connectors
85dce6a
update mailchimp docs
8d82956
Fixing minor typos
galvana 5d16fdb
Feedback updates
2d82599
Feedback updates
978905c
Merge branch 'main' into cg-saas-connectors
62effcf
fix typo
93f6097
merge main
c569d13
fix merge conflict
4cb294b
Merge branch 'main' into cg-saas-connectors
galvana File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
215 changes: 215 additions & 0 deletions
215
docs/fidesops/docs/saas_connectors/example_configs/hubspot.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,215 @@ | ||
|
||
# Hubspot | ||
|
||
## Implementation Summary | ||
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 | | ||
|----|----|----| | ||
|[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 | ||
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: 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: hapikey | ||
|
||
client_config: | ||
protocol: https | ||
host: | ||
connector_param: domain | ||
authentication: | ||
strategy: query_param | ||
configuration: | ||
token: | ||
connector_param: hapikey | ||
|
||
test_request: | ||
method: GET | ||
path: /companies/v2/companies/paged | ||
|
||
endpoints: | ||
- name: contacts | ||
requests: | ||
read: | ||
path: /crm/v3/objects/contacts/search | ||
method: POST | ||
body: '{ | ||
"filterGroups": [{ | ||
"filters": [{ | ||
"value": "<email>", | ||
"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/<contactId> | ||
method: PATCH | ||
body: '{ | ||
<masked_object_fields> | ||
}' | ||
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: <email> | ||
- 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 | ||
# - 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/<emailId> | ||
# 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/<email> | ||
method: GET | ||
param_values: | ||
- name: email | ||
identity: email | ||
update: | ||
path: /communication-preferences/v3/unsubscribe | ||
method: POST | ||
body: '{ | ||
"emailAddress": "<email>", | ||
"subscriptionId": "<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/<userId> | ||
# method: GET | ||
# param_values: | ||
# - name: userId | ||
# references: | ||
# - dataset: hubspot_connector_example | ||
# field: users.id | ||
# direction: from | ||
# - name: placeholder | ||
# identity: email | ||
``` |
15 changes: 6 additions & 9 deletions
15
docs/fidesops/docs/sass_connectors.md → ...s_connectors/example_configs/mailchimp.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really like the way you linked out to the API docs and summarized the available actions in a single place. What are your thoughts on adding something like a
Right to Update
column? Each endpoint can have aread
,update
, ordelete
so it's important to make the distinction between update and delete.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it the case that we use "Update" to satisfy a "Delete" - ie, updating information where it cannot be deleted? If that's the case I think I'd rather change "Right to Delete" to be inclusive of Update endpoints, otherwise just make this a simple
read
/update
/delete
breakdown (without promising it satisfies right to access or right to delete).