Skip to main content

Cadastro Service Provider

API Key:

ParaNa os ensaios de Março/24, os interessados em fornecer serviços deverão realizar o cadastro de seus respectivos provedores conforme mostrado abaixo. Após a aprovaçcomunicação do cadastro, uma API Key será disponibilizada, liberando acesso aos endpoints listados mais adiante.

Cadastro

Acesse o BR-UTM Forms(imagem (URLabaixo), as requisições devem ser autenticadas e autorizadas. Devido à natureza distribuída da arquitetura, não é viável que cada provedor possua sua lógica de autenticação e autorização.

image.png

Portando, a definir)solução proposta pela ASTM é a de um servidor de autenticação central onde os provedores obtém tokens OAuth2 codificados e sigaassinados osem passos:

JWT.
    O
  1. Validator parada documentação abaixo checa a áreavalidade da assinatura do token, utilizando a chave pública do Auth Server.

    image.png

    Um exemplo de provedores
    BR-UTM Forms - Página Inicial

  2. troca
  3. Ode responsávelmensagens peloautenticadas provedor cria uma conta e utiliza as mesmas credenciais para acessos futuros
    BR-UTM Forms - Página de cadastro

  4. Acesse o Dashboard
    é:

    BR-UTM Forms - Página de acessoimage.png

     
  5. No menu superior, clique em "Your Provider"; ou, nas opções do Dashboard, clique em "Register your provider"BR-UTM Forms - Página principal (dashboard)

  6. Na tela a qual você foi redirecionado, clique em "Register". Você verá o formulário mostrado abaixo (os campos podem ser diferentes no momento do seu acesso)BR-UTM Forms - Página casdastro de provedor

  7. Após o preenchimento correto do formulário, os dados cadastrais de seu provedor serão enviados para análiseBR-UTM Forms - Página do provedor

  8. Assim que o cadastro for aprovado, sua API Key será disponibilizada na própria página

    BR-UTM Forms - Página do provedor (status aprovado)

Uso da API Key

Com sua API Key, você pode gerar um token de autenticação para realizar ações programaticamente no ECO-UTM em nome de um usuário:UTM:

  1. AssocieInsira um usuário ao seu provedor, passando o SARPAS ID dele nos parâmetros ea sua API Key no header da requisição;
  2. Crie um token de autenticação de usuário, passandoInsira o SARPARscope IDnos do usuário e sua API Key no body requisição;parametros
  3. AproveInsira o tokenintended recém-criado, passando o SARPAS ID no parâmetro da requisição.audience

Comimage.png

ambas

Validator

as

image.png

chaves

Implementação

Código de exemplo para início da implementação do Auth Server e do Validator em mãos,Go

você
seráCódigo capazexemplo de
fazer
requisições

nos
endpoints



























































































 

Com o código acima rodando na seçãporta :9096, é necessário criar um Serviço ae seguir.uma Route no Kong para torná-lo acessível:

Lista de endpoints

A lista completa de endpoints também está disponível neste arquivo OpenAPI  e nesta coleção no Insomina.

ECO-UTM

A URL base para os seguintes endpoints é http://kong.icea.decea.mil.br:64235/eco-utm/v1/


PUT /providers/user_token/{token}/assign

Associar usuário e provedor

Headers
apikey API Key disponível no BR-UTM Forms
Path Param
token
SARPAS ID do usuário
Body
{
  "data": {
    "provider_secret": "your-provider-api-key",
    "provider_id": "kong-consumer-custom-id"
    
  }
}

Campos notáveis

provider_secret API Key disponível no BR-UTM Forms
provider_id

[OPCIONAL] Custom ID do Kong associado ao Consumer

Response
200
Success
404
User not found

 


POST /providers/auth

Gerar token de autenticação

Headers
apikey API Key disponível no BR-UTM Forms
Body
{
  "data": {
    "provider_secret": "",
    "provider_id": "",
    "user_id": ""
  }
}

Campos notáveis

provider_secret API Key disponível no BR-UTM Forms
provider_id

[OPCIONAL] Custom ID do Kong associado ao Consumer

user_id

SARPAS ID do usuário

Response

204

Success

404

User not found

412

Invalid provider and user relationship

500

Internal server error

GET /user-keys/{user-id}

Aprovar token de autenticação do provedor associado ao usuário

Path Param
user-id SARPAR ID do usuário
Bearer
token Bearer token gerado
Response
200 Success
500
Error

POST /pilots/flights

Cria uma solicitação de voo para um espaço aéreo descrito na requisição

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Body
{
    "data": {
        "type": "/pilots/flights",
        "attributes": {
            "airplane_id": "1ed0e6d9-e88e-6812-bd5f-0242ac12001c",
            "operation": {
                "aircrafts": [
                   {
                        "id": 4,
                        "uuid": "1ed0e6d9-e88e-6812-bd5f-0242ac12001c"
                   }
                ],
                "flight": {
                    "pilots": ["QGRK"],
                    "date": {
                        "start_day": "2025-12-16",
                        "start_hour": "08:00",
                        "finish_day": "2025-12-16",
                        "finish_hour": "09:00"
                    },
                    "type": "VLOS",
                    "observations": "teste",
                    "communication": {
                        "id": "1",
                        "ats_call_type": "vhf-fm",
                        "rpa_call_type": "vhf-am",
                        "rps": [
                            {
                                "name": "1",
                                "lat": "1",
                                "lng": "1",
                                "contact_info": "1",
                                "radius": 100
                            }
                        ]
                    },
                    "sarpas_code": "OJMN",
                    "area": {
                        "asa_id": "283797ce-73e9-4395-adcf-6c6119b3f20f",
                        "takeoff_point": [-34.993236064910896,-8.02209168418088],
                        "landing_point": [-34.993236064910896,-8.02209168418088],
                        "required_route": {
                            "geojson": {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Polygon",
        "coordinates": [
					[
						[
							-24.080093705511494,
							-49.0539316478104
						],
						[
							-24.081153158442177,
							-49.05006533240442
						],
						[
							-24.08503406183282,
							-49.052976909391695
						],
						[
							-24.082881359600847,
							-49.055986687210066
						],
						[
							-24.080093705511494,
							-49.0539316478104
						]
					]
				]
      }
    }
                            },
                            "flight_type": "height",
                            "flight_distance": 100
                        },
                        "documents": []
                    },
                    "basic_information": {
                        "name": "teste 2",
                        "type": "101",
                        "agree_terms": 1
                    }
                }
            }
        }
    }

Campos notáveis

provider_secret API Key disponível no BR-UTM Forms
provider_id

[OPCIONAL] Custom ID do Kong associado ao Consumer

user_id

SARPAR ID do usuário

Response
200
Success

GET /bypass/categorize/{solicitationProtocol}

Categoriza uma solicitação de voo por número de protocolo

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Path Param
solicitationProtocol Número de protocolo da solicitação
Response
200
Success
404
Solicitation not found
500
Error

GET /bypass/analyze/{solicitationProtocol}

Analisa uma solicitação de voo por número de protocolo

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Path Param
solicitationProtocol Número de protocolo da solicitação
Response
200
Success
404
Solicitation protocol not found
500
Error

GET /user-aircraft

Busca todas as aeronaves de um usuário identificado pelo token de sessão

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Response
200
Success

GET
/shared-aircraft-user

Busca todas as aeronaves compartilhadas com um usuário identificado pelo token de sessão

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Response
200
Success

POST /user/flight/aircrafts

Busca todas as aeronaves em voo, opcionalmente incluindo compartilhadas, de um usuário identificado pelo ID enviado na requisição

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Body
{
  "user_information_id": "1ed4b29e-8fe0-60aa-aefd-0242ac120019",
  "shared": true
}

Campos notáveis

user_information_id SARPAS ID do usuário
shared
[OPCIONAL] Incluir aeronaves compartilhadas
Response

 

200
Success

GET
/flight-status

Lista os status do voo de um usuário identificado pelo token de sessão

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Response

200

ASA

A URL base para os seguintes endpoints é http://kong.icea.decea.mil.br:64236/api/


POST /polygon/{polygonId}/{userUuid}

Cria uma área no ASA dados os identificadores do polígono e usuário

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Path Param
polygonId ID (definido pelo solicitante) do polígono criado
userUuid
SARPAS ID do usuário
Body
{
    "type": "Feature",
    "properties": {
      "poligonoId": "283797ce-73e9-4395-adcf-6c6119b3f20f",
      "perfil": "1",
      "datasHoras": "{\"date1\":\"2023-11-30\",\"date2\":\"2023-11-30\",\"hora1\":\"14:00\",\"hora2\":\"15:00\"}",
      "elevacoes": {
        "criarAreaMaximo": 10,
        "criarAreaMinimo": 0,
        "criarAreaMaximoFt": 32.8084,
        "criarAreaMinimoFt": 0,
        "criarAreaNome": "",
        "criarAreaDescricao": "",
        "alturaEditavelMetros": "10",
        "alturaEditavelPes": 32.8084,
        "dataInicio": "2025-12-12",
        "dataTermino": "2025-12-12",
        "horaInicio": "08:00",
        "horaTermino": "09:00",
        "update": []
      },
      "raio": 0,
      "altura": "10",
      "formato": "poligono",
      "contextoId": 1,
      "pontoDecolagem": {
        "latLng": {
          "lat": -24.098672973607677,
          "lng": -48.909985432572751,
          "valido": true
        },
        "unidade": "gms",
        "elevationM": 10,
        "elevationFt": 32.8084,
        "valido": true
      }
    },
    "geometry": {
      "type": "Polygon",
      "coordinates": [
					[
						[
							-24.080093705511494,
							-49.0539316478104
						],
						[
							-24.081153158442177,
							-49.05006533240442
						],
						[
							-24.08503406183282,
							-49.052976909391695
						],
						[
							-24.082881359600847,
							-49.055986687210066
						],
						[
							-24.080093705511494,
							-49.0539316478104
						]
					]
				]
    }
  }

Campos notáveis


 
Response
{
  voo_id: string
}
voo_id

GET /polygon/{solicitationProtocol}/result

Obter resultado da solicitação de área

Headers
apikey API Key disponível no BR-UTM Forms
Bearer
token Bearer token gerado
Path Param
solicitationProtocol Número de protocolo da solicitação de área
Response

200 OK