Publish connector as a Partner connector
bednar opened this issue · 12 comments
Partner Connector requirements
https://developers.google.com/datastudio/connector/pscc-requirements
Apps Script
- Share view access of your Apps Script project with both of these addresses:
- Create a deployment named
Production
and update theProduction
deployment to contain the version of code you want to publish. - If you have updated your code since creating the
Production
deployment, ensure that the correct version of the code is selected for the deployment before you submit your connector.
Manifest
You must include the following in your connector's manifest. View manifest reference for more information about each property in manifest.
- In
description
, make sure you provide all information and instructions necessary to have a basic understanding of the connector and how to use it. Connectors with vague and incomplete descriptions will be rejected during review. -
addOnUrl
should be a dedicated hosted page about your connector, preferably hosted on your own domain.- This page must contain or link to your Privacy Policy and Terms of Use hosted on the same domain as the
addOnUrl
(see examples: https://supermetrics.com/privacy-policy, https://supermetrics.com/terms-of-service). - This page should contain any details the user will need to know to use your connector.
- If users need to sign up for an account to use your connector, the sign up link should be available from this page.
- The page cannot be hosted at
https://sites.google.com/
. - See example pages from existing partners: Funnel, Supermetrics, CallRail.
- This page must contain or link to your Privacy Policy and Terms of Use hosted on the same domain as the
-
supportUrl
should be a hosted page where users can go to get support for your connector. This cannot be an email or mailto link. - You should populate the
sources
property with all the sources your connector connects to. See Sources in Manifest reference for details.- You can view the existing list of sources at our Data Registry Repository. If the source you are connecting to does not exist in the repository, send a pull request to the Data Registry Repository to add the source. Your connector will fail the review process if the sources in your manifest do not exist in the repository.
- This is additional metadata for the connector that will be indexed for search feature in the gallery. You connector will show up in the search results when users search for a specific data source in the gallery.
- The gallery will let users discover connectors by data sources by providing a Connectors by Data Source interface.
- You should limit the number of endpoints called by
UrlFetchApp
in your connector to those absolutely required for connector functionality. Add the urlFetchWhitelist property to the root level of your manifest. View the urlFetchWhitelist reference for more info.- This property should contain all URLs your connector connects to using the
UrlFetchApp
call. - If your connector does not execute a
UrlFetchApp
call then set the property value to an empty list[]
. - If your connector does not connect to a fixed domain or the endpoint prefix varies, omit the
urlFetchWhitelist
property in the manifest.
- This property should contain all URLs your connector connects to using the
- Manifest should contain values for
-
shortDescription
-
authType
-
feeType
-
privacyPolicyUrl
-
termsOfServiceUrl
-
- Connector
name
should be directly representative of what the connector specifically does. This makes it clear what the connector does and helps the user to identify the correct connector for their need.
Template and report
- If you connector has a fixed schema, create a report template for your connector and add it to the manifest. Enable Sharing by link for the report.
- Create at least one demo report using your connector and submit the report to Data Studio gallery. This report can be a replica of your template report or a separate report that displays even broader functionalities of your connector.
- Adding the demo reports makes your connector eligible for promotional opportunities (getting featured, mentions in newsletters and blog posts, case studies etc).
Connector
- If the user needs an account to use the connector, make sure the connector
description
or theaddOnUrl
link provides instructions to help the user create one. - Your connector cannot be in unfinished or beta status. You have to publish a complete and functional connector. You can always update your connector but the production deployment that is released to users should be tested and feature complete.
- Provide meaningful and actionable error messages to users when users encounter a Connector internal error. This includes cases when a user provides invalid/blank input at configuration.
- You connector's
shortDescription
,description
,addOnUrl
link,supportUrl
link, and OAuth page (if applicable) should be free of spelling and grammatical errors. - Use appropriate authentication method in
getAuthType()
. Do not request credentials viagetConfig()
. - Complete the OAuth Client Verification process. The verification is mandatory for all connectors regardless of the authentication method in getAuthType(). The verification process is handled by a separate team. Consult the OAuth API Verification FAQ for more info on this. Your connector will not be published if the OAuth Client Verification process is not completed.
- During the OAuth verification process, add your connector's required OAuth scopes as part of the OAuth consent screen configuration. If you fail to add all required scopes, you might pass the OAuth verification process but your connector will still show the Unverified app screen. This will cause the Partner Connector verification process to fail.
Authorize and test your connector using a new account after passing the OAuth verification process to ensure that Unverified app screen is not displayed to your users.
- During the OAuth verification process, add your connector's required OAuth scopes as part of the OAuth consent screen configuration. If you fail to add all required scopes, you might pass the OAuth verification process but your connector will still show the Unverified app screen. This will cause the Partner Connector verification process to fail.
- Ensure you adhere to the Data Studio Galleries Terms of Service (Submitter).
OpenEnded Questions
- Which Google account we will use to publish the connector?
- Could be a Github repository the home page of connector, or it should be a page on www.influxdata.com?
- What will be a demo report that will be submitted into Data Studio gallery? Could we use COVID-19 report from examples?
TODO
- Move GitHub repository to InfluxData organization
-
Create Privacy Policy doc -
Create Terms of Use doc - Complete OAuth Client Verification
Publish to verification process
Privacy Policy
- source: copy of https://www.influxdata.com/legal/privacy-policy/
- doc: PRIVACY_POLICY.txt
Terms of Use
- source: copy of https://www.influxdata.com/legal/terms-of-use-influxdb-cloud-1/
- doc: TERMS_OF_USE.txt
I have opened an issue with the marketing team to get the page created.
@bednar marketing page is ready here: https://www.influxdata.com/integration/google-data-studio/
Thanks @russorat, appsscript.json is updated to the new marketing page and I will continue with OAuth Client Verification process.
The next step is OAuth Client verification - verifying OAuth scopes of our Google Apps Script. By verifying we can remove the unverified app screen from authorization flow.
The script requires only one scope: https://www.googleapis.com/auth/script.external_request - make request to external sources.
Unverified script flow:
Requirements for InfluxData:
- Create a standard Google Cloud Project in InfluxData organization.
- Fill required assets in
APIs & Services > OAuth consent screen
- User Type: External
- Application name: Google Data Studio Connector for InfluxDB
- Application logo: https://influxdata.github.io/branding/img/downloads/influxdata-logo--symbol--castle-alpha.png
- Support email: Create new Google Groups email
- Scopes: Manually paste:
https://www.googleapis.com/auth/script.external_request
- Authorized domains: influxdata.com
- Application Homepage link: https://www.influxdata.com/integration/google-data-studio/
- Application Privacy Policy link: https://www.influxdata.com/legal/privacy-policy/
- Application Terms of Service link: https://www.influxdata.com/legal/acceptable-use-policy/
- Verify ownership of the authorized domain with Google - the domain owner must be an editor or owner of the project.
- Add
jakub.bednar@gmail.com
as en editor of the project.
Next steps:
- Set Google Cloud Project to connector script
- Submit to OAuth Verification
I've completed the items checked off above. Let me know if you need anything further!
@tkyocum thanks a lot
I've set the GCP project to connector script and sent OAuth consent screen to verification:
I hope that We will receive response in within 24 to 72 hours as is described here: https://developers.google.com/apps-script/guides/client-verification
Hi @tkyocum,
Google denied our request to verification, but without detail:
Maybe there is a problem with verification of influxdata.com
- Is the
influxdata.com
website verified through Search Console? - Is a "owner" of
influxdata.com
a Project Owner or a Project Editor for our GCP project?
I have created App Demonstration Video for approval purpose: https://www.youtube.com/watch?v=H-UD3myhvGU
The OAuth Client Verification process has been done:
Next step is create the demo report and submit the report to Data Studio gallery.