iMicknl / iMicknl/powerbi-botframework-chat-transcripts

Get Power BI visual certified and published to AppSource

Open
#20 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
10
Forks
5
PR merge metrics
No merged PRs in 30d

Description

>Certified Power BI visuals are Power BI visuals in AppSource that meet the Microsoft Power BI team code requirements. These visuals are tested to verify that they don't access external services or resources, and that they follow secure coding patterns and guidelines.

### Code repository requirements

Although you don't have to publicly share your code in GitHub, the code repository has to be available for a review by the Power BI team. The best way to do this, is by providing the source code (JavaScript or TypeScript) in GitHub.

The repository must contain the following:
- [x] Code for only one Power BI visual. It can't contain code for multiple Power BI visuals, or unrelated code.
- [ ] A branch named certification (lowercase required). The source code in this branch has to match the submitted package. This code can only be updated during the next submission process, if you're resubmitting your Power BI visual.

### File requirements

Use the latest version of the API to write the Power BI visual.

The repository must include the following files:

- [x] **.gitignore** - Add `node_modules`, `.tmp` and `dist` to this file. The code cannot include the *node_modules*, *.tmp* or *dist* folders.
- [x] **capabilities.json** - If you are submitting newer version of your Power BI visual with changes to the properties in this file, verify that they do not break reports for existing users.
- [x] **pbiviz.json**
- [x] **package.json**. The visual must have the following package installed:
* ["tslint"](https://www.npmjs.com/package/tslint) - Version 5.18.0 or higher
* ["typescript"](https://www.npmjs.com/package/typescript) - Version 3.0.0 or higher
* ["tslint-microsoftcontrib"](https://www.npmjs.com/package/tslint-microsoft-contrib) - Version 6.2.0 or higher
* The file must contain a command for running linter - `"lint": "tslint -c tslint.json -p tsconfig.json"`
- [x] **package-lock.json**
- [x] **tsconfig.json**

### Command requirements

Make sure that the following commands don't return any errors.

- [x] `npm install`
- [x] `pbiviz package`
- [x] `npm audit` - Must not return any warnings with high or moderate level.
- [x] [TSlint from Microsoft](https://www.npmjs.com/package/tslint-microsoft-contrib) with [the required configuration](https://github.com/microsoft/PowerBI-visuals-sampleBarChart/blob/master/tslint.json). This command must not return any lint errors.

### Compiling requirements

- [x] Use the latest version of [powerbi-visuals-tools](https://www.npmjs.com/package/powerbi-visuals-tools) to write the Power BI visual.
- [x] You must compile your Power BI visual with `pbiviz package`. If you're using your own build scripts, provide a `npm run package` custom build command.

### Source code requirements

Verify that you follow the [Power BI visuals additional certification](/legal/marketplace/certification-policies#1200-power-bi-visuals-additional-certification) policy list. If your submission doesn't follow these guidelines, the rejection email from Partner Center will include the policy numbers listed in this link.

Follow the code requirements listed below to make sure that your code is in line with the Power BI certification policies.

The following are **Required**:

- [x] Only use public reviewable OSS components such as public JavaScript or TypeScript libraries.
- [ ] The code must support the [Rendering Events API](event-service.md). https://github.com/iMicknl/powerbi-botframework-chat-transcripts/issues/19
- [ ] Ensure DOM is manipulated safely. Use sanitization for user input or user data, before adding it to DOM.
- [ ] Use the [sample report](https://github.com/PowerBi-Projects/PowerBI-visuals/tree/gh-pages/assets) as a test dataset.

The following are **Not allowed**:

- [x] Accessing external services or resources. For example, no HTTP/S or WebSocket requests can go out of Power BI to any services.
- [ ] Using `innerHTML`, or `D3.html(user data or user input)`.
- [ ] JavaScript errors or exceptions in the browser console, for any input data.
- [x] Arbitrary or dynamic code such as `eval()`, unsafe use of `settimeout()`, `requestAnimationFrame()`, `setinterval(user input function)`, and user input or user data.
- [x] Minified JavaScript files or projects.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the repository's package.json, capabilities.json, pbiviz.json, tsconfig.json, and tslint.json, then inspect the source against the Power BI certification requirements. Create the lowercase certification branch and verify it matches the submitted package. Done means the unchecked code, rendering-events, sample-report, lint, packaging, and security requirements pass without errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, typescript
Domain
data-visualization, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.