---
tags: ThingsBoard
---
# Thingsboard Relative Links
[toc]
<br/>
## Schema section
[Schema Doc](https://thingsboard.io/docs/user-guide/contribution/widgets-development/#settings-schema-section)
[Schema Builder and Example](http://networknt.github.io/react-schema-form/)
* There are two parts in TB: Setting Schema, Data Key Settings Schema
* Setting Schema -> is used to store specific widget settings and is accessible from widget JavaScript code
* Data Key Setting Schema -> store specific settings for each data key of the datasource defined in the widget
<br/>
## Basic Widget API
[Basic Widget API](https://thingsboard.io/docs/user-guide/contribution/widgets-development/#basic-widget-api)
<br/>
## UI Package
[Github ui-ngx description](https://github.com/thingsboard/thingsboard/tree/master/ui-ngx/src/assets/help/en_US/widget/lib)
[Check any useful widget](https://github.com/devaskim/awesome-thingsboard#widgets)
<br/>
## User Authority
[Assign to new user](https://github.com/devaskim/awesome-thingsboard/tree/main/chain/assign-dashboard-to-new-user)
<br/>
## Transfer parameters
* Thingsboard custom control-button example: use ==self.ctx.$scope.isClick==
```htmlembedded
<div class="container">
<button mat-raised-button color="primary" class="c-btn" (click)="toggleClick()">{{isClick ? "Clicked" : "Click Me"}}</button>
</div>
```
```javascript
self.onInit = function() {
self.ctx.$scope.isClick = false;
self.ctx.$scope.toggleClick = function(){
self.ctx.$scope.isClick = !self.ctx.$scope.isClick;
};
}
```
* self.ctx -> for the widget context