Skip to content
This repository has been archived by the owner on Nov 30, 2022. It is now read-only.

[SaaS Connector] Salesforce (access) #676

Merged
merged 24 commits into from
Jun 24, 2022
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
c8175a6
(very) initial salesforce connector work. stashed changes
Jun 8, 2022
e98ff3d
Adding complete uncategorized Salesforce dataset
galvana Jun 10, 2022
91a3ce3
Updated read and update requsts
Jun 14, 2022
c63f180
First sample endpoints
galvana Jun 15, 2022
348c5ea
Updated to add remaining access endpoints
Jun 16, 2022
8af3571
Fixed type for creating case for test
Jun 16, 2022
0e74d07
Minor cleanup
galvana Jun 16, 2022
aaaff43
Merge branch 'main' into 398-saas-connector-salesforce-due-615
galvana Jun 16, 2022
8960b0e
Updating load_toml call
galvana Jun 16, 2022
b72cc40
Moving identity_email
galvana Jun 16, 2022
81c1a45
More assertions added for access endpoints
Jun 17, 2022
46deec7
3a7c5fb119c9
galvana Jun 17, 2022
e7d4ece
Minor fixes and formatting
galvana Jun 17, 2022
4567e09
Fixing tests and updating changelog
galvana Jun 17, 2022
a72b9ab
Merge branch 'main' into 398-saas-connector-salesforce-due-615
galvana Jun 17, 2022
c72ce7b
Updating env variable mappings
galvana Jun 17, 2022
4d8871c
Merge branch 'main' into 398-saas-connector-salesforce-due-615
galvana Jun 21, 2022
aa44ec7
Fixing typo
galvana Jun 21, 2022
5479f10
Merge branch 'main' into 398-saas-connector-salesforce-due-615
galvana Jun 21, 2022
8cf5ee1
Merging main
galvana Jun 24, 2022
2a1dd8a
Fixing environment variable names
galvana Jun 24, 2022
36ddd8d
Fixing SaaS connector integration tests
galvana Jun 24, 2022
49b54ce
Misc test fixes
galvana Jun 24, 2022
7f6d4a9
Adding missing environment variable mapping
galvana Jun 24, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/unsafe_pr_checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@ jobs:
SEGMENT_NAMESPACE_ID: ${{ secrets.SEGMENT_NAMESPACE_ID }}
SEGMENT_ACCESS_SECRET: ${{ secrets.SEGMENT_ACCESS_SECRET }}
SEGMENT_IDENTITY_EMAIL: ${{ secrets.SEGMENT_IDENTITY_EMAIL }}
SALESFORCE_DOMAIN: ${{ secrets.SALESFORCE_DOMAIN }}
SALESFORCE_CLIENT_ID: ${{ secrets.SALESFORCE_CLIENT_ID }}
SALESFORCE_CLIENT_SECRET: ${{ secrets.SALESFORCE_CLIENT_SECRET }}
SALESFORCE_ACCESS_TOKEN: ${{ secrets.SALESFORCE_ACCESS_TOKEN }}
SALESFORCE_USERNAME: ${{ secrets.SALESFORCE_USERNAME }}
SALESFORCE_PASSWORD: ${{ secrets.SALESFORCE_PASSWORD }}
ZENDESK_DOMAIN: ${{ secrets.ZENDESK_DOMAIN }}
ZENDESK_USERNAME: ${{ secrets.ZENDESK_USERNAME }}
ZENDESK_API_KEY: ${{ secrets.ZENDESK_API_KEY }}
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ The types of changes are:
* Added ConnectionConfig `connection_type` and `disabled` filters [#675](https://github.com/ethyca/fidesops/pull/675)
* Adds Fideslog integration [#541](https://github.com/ethyca/fidesops/pull/541)
* Adds endpoint analytics events [#622](https://github.com/ethyca/fidesops/pull/622)
* Sample dataset for Salesforce with access configuration [#676](https://github.com/ethyca/fidesops/pull/676)
* Sample dataset and access configuration for Zendesk (ticket endpoints) [#677](https://github.com/ethyca/fidesops/pull/677)

### Changed
Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ pytest-saas: compose-build
-e ZENDESK_DOMAIN -e ZENDESK_USERNAME -e ZENDESK_API_KEY -e ZENDESK_IDENTITY_EMAIL \
-e SEGMENT_DOMAIN -e SEGMENT_PERSONAS_DOMAIN -e SEGMENT_WORKSPACE -e SEGMENT_ACCESS_TOKEN -e SEGMENT_API_DOMAIN -e SEGMENT_NAMESPACE_ID -e SEGMENT_ACCESS_SECRET -e SEGMENT_USER_TOKEN -e SEGMENT_IDENTITY_EMAIL \
-e STRIPE_HOST -e STRIPE_API_KEY -e STRIPE_PAYMENT_TYPES -e STRIPE_ITEMS_PER_PAGE -e STRIPE_IDENTITY_EMAIL \
-e SALESFORCE_DOMAIN -e SALESFORCE_CLIENT_ID -e SALESFORCE_CLIENT_SECRET -e SALESFORCE_ACCESS_TOKEN -e SALESFORCE_USERNAME -e SALESFORCE_PASSWORD \
$(IMAGE_NAME) pytest $(pytestpath) -m "integration_saas"
@make teardown

Expand Down
132 changes: 132 additions & 0 deletions data/saas/config/salesforce_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
saas_config:
fides_key: salesforce_connector_example
name: Salesforce SaaS Config
description: A sample schema representing the Salesforce connector for Fidesops
version: 0.0.1

connector_params:
- name: domain
- name: username
- name: password
- name: client_id
- name: client_secret
- name: access_token

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

test_request:
method: GET
path: /services/data/v54.0/sobjects

endpoints:
- name: contact_list
requests:
read:
method: GET
path: /services/data/v54.0/query
query_params:
- name: q
value: SELECT Id FROM Contact WHERE Email='<email>'
param_values:
- name: email
identity: email
data_path: records
- name: contacts
requests:
read:
method: GET
path: /services/data/v54.0/sobjects/Contact/<contact_id>
param_values:
- name: contact_id
references:
- dataset: salesforce_connector_example
field: contact_list.Id
direction: from
- name: case_list
requests:
read:
method: GET
path: /services/data/v54.0/query
query_params:
- name: q
value: SELECT Id FROM Case WHERE ContactId='<contact_id>'
param_values:
- name: contact_id
references:
- dataset: salesforce_connector_example
field: contact_list.Id
direction: from
data_path: records
- name: cases
requests:
read:
method: GET
path: /services/data/v54.0/sobjects/Case/<case_id>
param_values:
- name: case_id
references:
- dataset: salesforce_connector_example
field: case_list.Id
direction: from
- name: lead_list
requests:
read:
method: GET
path: /services/data/v54.0/query
query_params:
- name: q
value: SELECT Id FROM Lead WHERE Email='<email>'
param_values:
- name: email
identity: email
data_path: records
- name: leads
requests:
read:
method: GET
path: /services/data/v54.0/sobjects/Lead/<lead_id>
param_values:
- name: lead_id
references:
- dataset: salesforce_connector_example
field: lead_list.Id
direction: from
- name: accounts
requests:
read:
method: GET
path: /services/data/v54.0/sobjects/Account/<account_id>
param_values:
- name: account_id
references:
- dataset: salesforce_connector_example
field: contacts.AccountId
- name: campaign_member_list
requests:
read:
method: GET
path: /services/data/v54.0/query
query_params:
- name: q
value: SELECT Id FROM CampaignMember WHERE Email='<email>'
param_values:
- name: email
identity: email
data_path: records
- name: campaign_members
requests:
read:
method: GET
path: /services/data/v54.0/sobjects/CampaignMember/<campaign_member_id>
param_values:
- name: campaign_member_id
references:
- dataset: salesforce_connector_example
field: campaign_member_list.Id
direction: from
Loading