# [Tracking] Onboarding Display Provider
No contexto do serviço de Tracking, um Display Provider é um provedor USS que tem objetivo de exibir a posição de drones em tempo real para seus usuários.
### Pré-requisitos técnicos
Para um USS se tornar um provedor de display de Tracking existem os seguintes pré-requisitos técnicos que não estão no escopo dessa documentação, ficando a critério do provedor como implementar esses pré-requisitos:
1. Possuir um servidor HTTP para solicitar e receber requisições
2. Possuir App para visualização de posição de drones
### Autenticação
Para o ensaio, a autenticação será feita em um serviço OAuth centralizado do DECEA, ainda a ser descrito.
### Endpoints
A dinâmica de comunicação entre Service Provider, Display Provider e DSS está descrita na norma ASTM 3411-22a. Para facilitar o entendimento, alguns possíveis cenários de utilização estão descritos na página [Cenários](https://servicos2.decea.mil.br/br-utm/wiki/books/documentacao-tecnica/page/cenarios "Cenários").
O padrão seguido no ensaio será o descrito em [https://github.com/uastech/standards/tree/astm\_rid\_api\_2.1/remoteid](https://github.com/uastech/standards/tree/astm_rid_api_2.1/remoteid)
Conforme o padrão OpenAPI acima, os endpoints que o Display Provider precisará prover:
**POST** | /uss/identification\_service\_areas/{id} |
Path Parameters
Request Body
### Interação com DSS
O Service Provider, conforme definido no padrão ASTM3411-22a, deve criar entidades de Subscription em uma área específica, para encontrar os atuais Service Providers, e também para receberem notificações caso novos provedores se registrem na área. Os endpoints expostos pelo DSS estão descritos no arquivo OpenAPI descrito acima.
Como exemplo, o endpoint abaixo é para criação de Subscriptions:
**PUT** | /dss/subscriptions/{id} |
Path Parameters
id | UUID da Subscription, criado pelo Display Provider |
Request Body
```json
{
"extents": {
"volume": {
"outline_circle": {
"center": {
"lng": -118.456,
"lat": 34.123
},
"radius": {
"value": 300.183,
"units": "M"
}
},
"outline_polygon": {
"vertices": [
{
"lng": -118.456,
"lat": 34.123
},
{
"lng": -118.456,
"lat": 34.123
},
{
"lng": -118.456,
"lat": 34.123
}
]
},
"altitude_lower": {
"value": 19.5,
"reference": "W84",
"units": "M"
},
"altitude_upper": {
"value": 19.5,
"reference": "W84",
"units": "M"
}
},
"time_start": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
},
"time_end": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
}
},
"uss_base_url": "https://example.com/rid"
}
```
Campos notáveis
volume | Polígono **OU** círculo da área, idêntico ao definido no SARPAS |
altitude\_lower, altitude\_upper | Altitude geodésica (WSG84, W84) máxima e mínima em metros.
|
time\_start, time\_end | Horário de início e fim da área. Todos os horários devem estar no timezone Zulo (UTC+0). O único formato suportado é "RFC3339"
|
uss\_base\_url | URL a qual o Service Provider irá responder à solicitações. Não deve conter uma barra '/' ao final. Sugere-se utilizar uma URL e não um IP.
|
Response Body
```json
{
"service_areas": [],
"subscription": {
"id": "string",
"uss_base_url": "https://example.com/rid",
"owner": "myuss",
"notification_index": 0,
"time_end": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
},
"time_start": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
},
"version": "string"
}
}
```
service\_areas | Lista de ISAs já existentes no volume 4D. Caso a lista não esteja vazia, o Display Provider deve solicitar os dados de telemetria para as URLs definidas na lista |
version | Versão da Subscription, gerado pelo DSS, para garantia de integridade. É necessário utilizar esse campo para atualizar ou deletar uma Subscription. |