-
Notifications
You must be signed in to change notification settings - Fork 16
SaaS Connector Templates #814
Comments
This looks good @galvana ! I appreciate the fact that you've detailed the current workflow, too, in contrast with the new one. My main question is: for the new workflow, will we simply use the existing If we used the existing endpoint, we'd need to alter it to accept a |
Thanks for the details @galvana. I am still unclear on what the template is? Is it a combination of your |
Adrian said the template was the collection of relevant files, and then they're defined in the registry - |
* Starting point for SaaS connector templates * Fix imports from restructuring. * Get happy path working for instantiate connector from template endpoint. * Remove updating connector instances for now - out of scope. * Test nonexistent templates, secrets validation, instance key / fides key already exists. * Create DatasetConfigs and ConnectionConfigs instead of create_or_update in the template endpoint. Don't save ConnectionConfig until secrets are validated. * Add the other saas connectors to the registry and update their configs and datasets with instance_fides_key. - Fix datadog yaml so it can be included in the saas connector registry. There was an error in how the saas config was formatted. * Update the fides_keys in the existing saas configs and dataset yamls to have brackets around the "instance_fides_key" to indicate these will be replaced. Update the fides_key definition to allow "<instance_fides_key>" with brackets specifically to pass validation. * Fix a side effect on a separate endpoint that returns the types of secrets that should be supplied for a given connector. Use the saas config type instead of the fides key for the model title. Add test verifying that fides key /instance key validation works as expected. * - Update CHANGELOG - Add new endpoint to postman collection - Add drafts doc. - Update old response body in docs for connection types. * Replace the <instance_fides_key> with a properly formatted fides_key in the saas fixtures. * If DatasetConfig creation fails, delete the recently created ConnectionConfig. * Address some of the saas integration tests where I've changed the fides_key. * Fix typos. * Fix typo. * Fix unrelated bug where hubspot dataset has new datacategories with user-* data categories after the fideslang update, so they would show up if the user picked a "user" data category. * Respond to CR. Co-authored-by: Dawn Pattison <pattisdr@users.noreply.github.com>
* Starting point for SaaS connector templates * Fix imports from restructuring. * Get happy path working for instantiate connector from template endpoint. * Remove updating connector instances for now - out of scope. * Test nonexistent templates, secrets validation, instance key / fides key already exists. * Create DatasetConfigs and ConnectionConfigs instead of create_or_update in the template endpoint. Don't save ConnectionConfig until secrets are validated. * Add the other saas connectors to the registry and update their configs and datasets with instance_fides_key. - Fix datadog yaml so it can be included in the saas connector registry. There was an error in how the saas config was formatted. * Update the fides_keys in the existing saas configs and dataset yamls to have brackets around the "instance_fides_key" to indicate these will be replaced. Update the fides_key definition to allow "<instance_fides_key>" with brackets specifically to pass validation. * Fix a side effect on a separate endpoint that returns the types of secrets that should be supplied for a given connector. Use the saas config type instead of the fides key for the model title. Add test verifying that fides key /instance key validation works as expected. * - Update CHANGELOG - Add new endpoint to postman collection - Add drafts doc. - Update old response body in docs for connection types. * Replace the <instance_fides_key> with a properly formatted fides_key in the saas fixtures. * If DatasetConfig creation fails, delete the recently created ConnectionConfig. * Address some of the saas integration tests where I've changed the fides_key. * Fix typos. * Fix typo. * Fix unrelated bug where hubspot dataset has new datacategories with user-* data categories after the fideslang update, so they would show up if the user picked a "user" data category. * Respond to CR. Co-authored-by: Dawn Pattison <pattisdr@users.noreply.github.com>
Is your feature request related to a specific problem?
The way we've been releasing SaaS connectors up until now is to include a sample SaaS config and dataset in the Fidesops repo. We've thought about these artifacts as examples which the user can use to create their own SaaS connections. The way this happens now is not very elegant, requiring the user to take these examples and make the necessary API calls to create a connection, register the SaaS config, and register the dataset. Ideally, the SaaS connector artifacts should be "pre-registered" and the user should be able to just create a new instance of a SaaS connector.
Describe the solution you'd like
There are a few things needed for this to happen but it begins with introducing the idea of a "SaaS connector template" which is made up of the following:
Fidesops should:
A user should be able to:
ConnectionConfig
and associated entities from a SaaS connector templateAdditional dev notes:
The example SaaS configs and datasets currently follow the naming convention of
salesforce_connector_example
for thefides_key
. We should change the value to<instance_fides_key>
wherever this occurs and replace it with the user-provided fides_key for the connection config before persisting the SaaS config and dataset to the database.We also want a central location to track the available SaaS connectors and where their assets are stored, for example:
saas_connector_registry.toml
This allows us to add or remove available connectors via configuration or to point to different locations to source the files for a connector template.
Additional Information
How templates relate to instantiation of connection configs
The current manual workflow is as follows
The new workflow would be:
<instance_fides_key>
in the SaaS config with the user provided connection_id/fides_key before storing it in the database (plus the new name and description)<instance_fides_key>
in the dataset with the user provided connection_id/fides_key before storing it in the databaseWe can reuse the existing
assign_placeholders
util to replace the<instance_fides_key>
with the user-provided value.The text was updated successfully, but these errors were encountered: