UNPKG

@tableau/taco-toolkit

Version:
301 lines 20.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.schema = void 0; exports.schema = { type: 'object', required: ['name', 'version', 'tableau-version', 'vendor', 'permission', 'window', 'auth'], additionalProperties: false, properties: { name: { description: 'connector name', type: 'string', pattern: '^[\\w\\-_ ]+$', maxLength: 29, }, displayName: { description: 'connector display name', type: 'string', minLength: 3, maxLength: 29, nullable: true, // ajv requires optional property to be nullable }, version: { description: 'connector version', pattern: '^[\\w\\-_\\.\\+]+$', type: 'string', maxLength: 30, }, 'tableau-version': { type: 'object', properties: { min: { description: 'minimum supported Tableau version', type: 'string', maxLength: 256, }, }, required: ['min'], }, vendor: { type: 'object', properties: { name: { description: 'creator name/title', type: 'string', maxLength: 256, }, 'support-link': { description: 'support link for connector', type: 'string', maxLength: 256, }, email: { description: 'contact email for connector', type: 'string', maxLength: 256, }, }, required: ['name', 'support-link', 'email'], }, auth: { type: 'object', discriminator: { propertyName: 'type' }, required: ['type'], oneOf: [ { properties: { type: { const: 'none' }, }, }, { properties: { type: { const: 'custom' }, }, }, { // Refer to: https://tableau.github.io/connector-plugin-sdk/docs/oauth required: ['oauth'], properties: { type: { const: 'oauth2' }, oauth: { type: 'object', properties: { oauthConfigId: { description: 'id for the oauth config', type: 'string', maxLength: 256, }, configLabel: { description: 'the label we display for this oauth config in the UI', type: 'string', maxLength: 256, }, clientIdDesktop: { description: 'the client ID registered for Tableau Desktop', type: 'string', maxLength: 256, }, clientSecretDesktop: { description: 'the client secret registered for Tableau Desktop', type: 'string', maxLength: 256, }, redirectUrisDesktop: { description: 'redirect URIs for Desktop', type: 'array', items: { type: 'string', }, }, authUri: { description: 'authorization endpoint URI', type: 'string', maxLength: 256, }, tokenUri: { description: 'token endpoint URI', type: 'string', maxLength: 256, }, userInfoUri: { description: 'user Info endpoint URI', type: 'string', maxLength: 256, }, instanceUrlSuffix: { description: 'the suffix for oauth endpoint(instanceurl)', type: 'string', maxLength: 256, }, instanceUrlValidationRegex: { description: 'regex validation pattern for oauth endpoint(instanceurl)', type: 'string', maxLength: 256, }, defaultInstanceUrl: { description: 'default oauth endpoint(instanceurl)', type: 'string', maxLength: 256, }, scopes: { description: 'scopes', type: 'array', items: { type: 'string', }, }, capabilities: { description: 'defines how OAuth flow behaves', type: 'object', properties: { OAUTH_CAP_SUPPORTS_CUSTOM_DOMAIN: { type: 'boolean', }, OAUTH_CAP_REQUIRE_PKCE: { type: 'boolean', }, OAUTH_CAP_PKCE_REQUIRES_CODE_CHALLENGE_METHOD: { type: 'boolean', }, OAUTH_CAP_SUPPORTS_STATE: { type: 'boolean', }, OAUTH_CAP_REQUIRES_VERIFY_STATE: { type: 'boolean', }, OAUTH_CAP_GET_USERNAME_USES_POST_REQUEST: { type: 'boolean', }, OAUTH_CAP_CLIENT_SECRET_IN_URL_QUERY_PARAM: { type: 'boolean', }, OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL: { type: 'boolean', }, OAUTH_CAP_SUPPORTS_HTTP_SCHEME_LOOPBACK_REDIRECT_URLS: { type: 'boolean', }, OAUTH_CAP_REQUIRES_PROMPT_CONSENT: { type: 'boolean', }, OAUTH_CAP_REQUIRES_PROMPT_SELECT_ACCOUNT: { type: 'boolean', }, OAUTH_CAP_SUPPORTS_GET_USERINFO_FROM_ID_TOKEN: { type: 'boolean', }, }, }, accessTokenResponseMaps: { description: 'key value pair that maps an initial token request response attribute to Tableau recognized attribute', type: 'object', required: ['ACCESSTOKEN', 'REFRESHTOKEN', 'username'], additionalProperties: true, properties: { ACCESSTOKEN: { type: 'string', maxLength: 256, }, REFRESHTOKEN: { type: 'string', maxLength: 256, }, 'access-token-issue-time': { type: 'string', maxLength: 256, }, 'access-token-expires-in': { type: 'string', maxLength: 256, }, username: { type: 'string', maxLength: 256, }, }, }, refreshTokenResponseMaps: { description: 'key value pair that maps a refresh token request response attribute to Tableau recognized attribute', type: 'object', required: ['ACCESSTOKEN'], additionalProperties: true, properties: { ACCESSTOKEN: { type: 'string', maxLength: 256, }, }, }, }, required: ['authUri', 'tokenUri', 'scopes', 'accessTokenResponseMaps'], }, }, }, ], }, permission: { type: 'object', required: ['api'], properties: { api: { type: 'object', required: [], minProperties: 1, patternProperties: { '.*': { type: 'array', uniqueItems: true, items: { type: 'string', enum: ['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE', 'HEAD'], }, }, }, }, disk: { type: 'object', nullable: true, required: ['path', 'size'], properties: { path: { type: 'array', items: { type: 'string', }, }, size: { type: 'string', maxLength: 256, }, }, }, libs: { type: 'array', nullable: true, items: { type: 'string', }, }, }, }, window: { type: 'object', properties: { height: { type: 'number', }, width: { type: 'number', }, }, required: ['height', 'width'], }, config: { description: 'additional configurations from the users', type: 'object', additionalProperties: true, nullable: true, // ajv requires optional property to be nullable }, }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLWpzb24tc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaS90YWNvLWNvbW1hbmRzL3V0aWxzL2Nvbm5lY3Rvci1qc29uLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHYSxRQUFBLE1BQU0sR0FBa0M7SUFDbkQsSUFBSSxFQUFFLFFBQVE7SUFDZCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUMxRixvQkFBb0IsRUFBRSxLQUFLO0lBQzNCLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsZUFBZTtZQUN4QixTQUFTLEVBQUUsRUFBRTtTQUNkO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsV0FBVyxFQUFFLHdCQUF3QjtZQUNyQyxJQUFJLEVBQUUsUUFBUTtZQUNkLFNBQVMsRUFBRSxDQUFDO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsSUFBSSxFQUFFLGdEQUFnRDtTQUNqRTtRQUNELE9BQU8sRUFBRTtZQUNQLFdBQVcsRUFBRSxtQkFBbUI7WUFDaEMsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixJQUFJLEVBQUUsUUFBUTtZQUNkLFNBQVMsRUFBRSxFQUFFO1NBQ2Q7UUFDRCxpQkFBaUIsRUFBRTtZQUNqQixJQUFJLEVBQUUsUUFBUTtZQUNkLFVBQVUsRUFBRTtnQkFDVixHQUFHLEVBQUU7b0JBQ0gsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsU0FBUyxFQUFFLEdBQUc7aUJBQ2Y7YUFDRjtZQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQztTQUNsQjtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxRQUFRO1lBQ2QsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRTtvQkFDSixXQUFXLEVBQUUsb0JBQW9CO29CQUNqQyxJQUFJLEVBQUUsUUFBUTtvQkFDZCxTQUFTLEVBQUUsR0FBRztpQkFDZjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsU0FBUyxFQUFFLEdBQUc7aUJBQ2Y7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLElBQUksRUFBRSxRQUFRO29CQUNkLFNBQVMsRUFBRSxHQUFHO2lCQUNmO2FBQ0Y7WUFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQztTQUM1QztRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxRQUFRO1lBQ2QsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRTtZQUN2QyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDbEIsS0FBSyxFQUFFO2dCQUNMO29CQUNFLFVBQVUsRUFBRTt3QkFDVixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO3FCQUN4QjtpQkFDRjtnQkFDRDtvQkFDRSxVQUFVLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtxQkFDMUI7aUJBQ0Y7Z0JBQ0Q7b0JBQ0Usc0VBQXNFO29CQUN0RSxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ25CLFVBQVUsRUFBRTt3QkFDVixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO3dCQUN6QixLQUFLLEVBQUU7NEJBQ0wsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsVUFBVSxFQUFFO2dDQUNWLGFBQWEsRUFBRTtvQ0FDYixXQUFXLEVBQUUseUJBQXlCO29DQUN0QyxJQUFJLEVBQUUsUUFBUTtvQ0FDZCxTQUFTLEVBQUUsR0FBRztpQ0FDZjtnQ0FDRCxXQUFXLEVBQUU7b0NBQ1gsV0FBVyxFQUFFLHNEQUFzRDtvQ0FDbkUsSUFBSSxFQUFFLFFBQVE7b0NBQ2QsU0FBUyxFQUFFLEdBQUc7aUNBQ2Y7Z0NBQ0QsZUFBZSxFQUFFO29DQUNmLFdBQVcsRUFBRSw4Q0FBOEM7b0NBQzNELElBQUksRUFBRSxRQUFRO29DQUNkLFNBQVMsRUFBRSxHQUFHO2lDQUNmO2dDQUNELG1CQUFtQixFQUFFO29DQUNuQixXQUFXLEVBQUUsa0RBQWtEO29DQUMvRCxJQUFJLEVBQUUsUUFBUTtvQ0FDZCxTQUFTLEVBQUUsR0FBRztpQ0FDZjtnQ0FDRCxtQkFBbUIsRUFBRTtvQ0FDbkIsV0FBVyxFQUFFLDJCQUEyQjtvQ0FDeEMsSUFBSSxFQUFFLE9BQU87b0NBQ2IsS0FBSyxFQUFFO3dDQUNMLElBQUksRUFBRSxRQUFRO3FDQUNmO2lDQUNGO2dDQUNELE9BQU8sRUFBRTtvQ0FDUCxXQUFXLEVBQUUsNEJBQTRCO29DQUN6QyxJQUFJLEVBQUUsUUFBUTtvQ0FDZCxTQUFTLEVBQUUsR0FBRztpQ0FDZjtnQ0FDRCxRQUFRLEVBQUU7b0NBQ1IsV0FBVyxFQUFFLG9CQUFvQjtvQ0FDakMsSUFBSSxFQUFFLFFBQVE7b0NBQ2QsU0FBUyxFQUFFLEdBQUc7aUNBQ2Y7Z0NBQ0QsV0FBVyxFQUFFO29DQUNYLFdBQVcsRUFBRSx3QkFBd0I7b0NBQ3JDLElBQUksRUFBRSxRQUFRO29DQUNkLFNBQVMsRUFBRSxHQUFHO2lDQUNmO2dDQUNELGlCQUFpQixFQUFFO29DQUNqQixXQUFXLEVBQUUsNENBQTRDO29DQUN6RCxJQUFJLEVBQUUsUUFBUTtvQ0FDZCxTQUFTLEVBQUUsR0FBRztpQ0FDZjtnQ0FDRCwwQkFBMEIsRUFBRTtvQ0FDMUIsV0FBVyxFQUFFLDBEQUEwRDtvQ0FDdkUsSUFBSSxFQUFFLFFBQVE7b0NBQ2QsU0FBUyxFQUFFLEdBQUc7aUNBQ2Y7Z0NBQ0Qsa0JBQWtCLEVBQUU7b0NBQ2xCLFdBQVcsRUFBRSxxQ0FBcUM7b0NBQ2xELElBQUksRUFBRSxRQUFRO29DQUNkLFNBQVMsRUFBRSxHQUFHO2lDQUNmO2dDQUNELE1BQU0sRUFBRTtvQ0FDTixXQUFXLEVBQUUsUUFBUTtvQ0FDckIsSUFBSSxFQUFFLE9BQU87b0NBQ2IsS0FBSyxFQUFFO3dDQUNMLElBQUksRUFBRSxRQUFRO3FDQUNmO2lDQUNGO2dDQUNELFlBQVksRUFBRTtvQ0FDWixXQUFXLEVBQUUsZ0NBQWdDO29DQUM3QyxJQUFJLEVBQUUsUUFBUTtvQ0FDZCxVQUFVLEVBQUU7d0NBQ1YsZ0NBQWdDLEVBQUU7NENBQ2hDLElBQUksRUFBRSxTQUFTO3lDQUNoQjt3Q0FDRCxzQkFBc0IsRUFBRTs0Q0FDdEIsSUFBSSxFQUFFLFNBQVM7eUNBQ2hCO3dDQUNELDZDQUE2QyxFQUFFOzRDQUM3QyxJQUFJLEVBQUUsU0FBUzt5Q0FDaEI7d0NBQ0Qsd0JBQXdCLEVBQUU7NENBQ3hCLElBQUksRUFBRSxTQUFTO3lDQUNoQjt3Q0FDRCwrQkFBK0IsRUFBRTs0Q0FDL0IsSUFBSSxFQUFFLFNBQVM7eUNBQ2hCO3dDQUNELHdDQUF3QyxFQUFFOzRDQUN4QyxJQUFJLEVBQUUsU0FBUzt5Q0FDaEI7d0NBQ0QsMENBQTBDLEVBQUU7NENBQzFDLElBQUksRUFBRSxTQUFTO3lDQUNoQjt3Q0FDRCxvQ0FBb0MsRUFBRTs0Q0FDcEMsSUFBSSxFQUFFLFNBQVM7eUNBQ2hCO3dDQUNELHFEQUFxRCxFQUFFOzRDQUNyRCxJQUFJLEVBQUUsU0FBUzt5Q0FDaEI7d0NBQ0QsaUNBQWlDLEVBQUU7NENBQ2pDLElBQUksRUFBRSxTQUFTO3lDQUNoQjt3Q0FDRCx3Q0FBd0MsRUFBRTs0Q0FDeEMsSUFBSSxFQUFFLFNBQVM7eUNBQ2hCO3dDQUNELDZDQUE2QyxFQUFFOzRDQUM3QyxJQUFJLEVBQUUsU0FBUzt5Q0FDaEI7cUNBQ0Y7aUNBQ0Y7Z0NBQ0QsdUJBQXVCLEVBQUU7b0NBQ3ZCLFdBQVcsRUFDVCxzR0FBc0c7b0NBQ3hHLElBQUksRUFBRSxRQUFRO29DQUNkLFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDO29DQUNyRCxvQkFBb0IsRUFBRSxJQUFJO29DQUMxQixVQUFVLEVBQUU7d0NBQ1YsV0FBVyxFQUFFOzRDQUNYLElBQUksRUFBRSxRQUFROzRDQUNkLFNBQVMsRUFBRSxHQUFHO3lDQUNmO3dDQUNELFlBQVksRUFBRTs0Q0FDWixJQUFJLEVBQUUsUUFBUTs0Q0FDZCxTQUFTLEVBQUUsR0FBRzt5Q0FDZjt3Q0FDRCx5QkFBeUIsRUFBRTs0Q0FDekIsSUFBSSxFQUFFLFFBQVE7NENBQ2QsU0FBUyxFQUFFLEdBQUc7eUNBQ2Y7d0NBQ0QseUJBQXlCLEVBQUU7NENBQ3pCLElBQUksRUFBRSxRQUFROzRDQUNkLFNBQVMsRUFBRSxHQUFHO3lDQUNmO3dDQUNELFFBQVEsRUFBRTs0Q0FDUixJQUFJLEVBQUUsUUFBUTs0Q0FDZCxTQUFTLEVBQUUsR0FBRzt5Q0FDZjtxQ0FDRjtpQ0FDRjtnQ0FDRCx3QkFBd0IsRUFBRTtvQ0FDeEIsV0FBVyxFQUNULHFHQUFxRztvQ0FDdkcsSUFBSSxFQUFFLFFBQVE7b0NBQ2QsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDO29DQUN6QixvQkFBb0IsRUFBRSxJQUFJO29DQUMxQixVQUFVLEVBQUU7d0NBQ1YsV0FBVyxFQUFFOzRDQUNYLElBQUksRUFBRSxRQUFROzRDQUNkLFNBQVMsRUFBRSxHQUFHO3lDQUNmO3FDQUNGO2lDQUNGOzZCQUNGOzRCQUNELFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixDQUFDO3lCQUN2RTtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsUUFBUTtZQUNkLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNqQixVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxFQUFFO29CQUNILElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxFQUFFO29CQUNaLGFBQWEsRUFBRSxDQUFDO29CQUNoQixpQkFBaUIsRUFBRTt3QkFDakIsSUFBSSxFQUFFOzRCQUNKLElBQUksRUFBRSxPQUFPOzRCQUNiLFdBQVcsRUFBRSxJQUFJOzRCQUNqQixLQUFLLEVBQUU7Z0NBQ0wsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDOzZCQUNuRTt5QkFDRjtxQkFDRjtpQkFDRjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLElBQUk7b0JBQ2QsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztvQkFDMUIsVUFBVSxFQUFFO3dCQUNWLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsT0FBTzs0QkFDYixLQUFLLEVBQUU7Z0NBQ0wsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7eUJBQ0Y7d0JBQ0QsSUFBSSxFQUFFOzRCQUNKLElBQUksRUFBRSxRQUFROzRCQUNkLFNBQVMsRUFBRSxHQUFHO3lCQUNmO3FCQUNGO2lCQUNGO2dCQUNELElBQUksRUFBRTtvQkFDSixJQUFJLEVBQUUsT0FBTztvQkFDYixRQUFRLEVBQUUsSUFBSTtvQkFDZCxLQUFLLEVBQUU7d0JBQ0wsSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLFFBQVE7WUFDZCxVQUFVLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxRQUFRO2lCQUNmO2dCQUNELEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsUUFBUTtpQkFDZjthQUNGO1lBQ0QsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztTQUM5QjtRQUNELE1BQU0sRUFBRTtZQUNOLFdBQVcsRUFBRSwwQ0FBMEM7WUFDdkQsSUFBSSxFQUFFLFFBQVE7WUFDZCxvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0RBQWdEO1NBQ2pFO0tBQ0Y7Q0FDRixDQUFBIn0=