# Suporte 360

Capitulo exclusivo para podermos manter os suportes de 360

# Token expirado

### O que precisa ter no card:

**<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-style: normal; font-variant: normal; font-size-adjust: none; font-kerning: auto; font-optical-sizing: auto; font-feature-settings: normal; font-variation-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> </span></span></span>ID da conta**

**<span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-style: normal; font-variant: normal; font-size-adjust: none; font-kerning: auto; font-optical-sizing: auto; font-feature-settings: normal; font-variation-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> </span></span></span>Nome de usuário**

> **<span class="Heading3Char"><span class="align-left" style="font-size: 14.0pt; line-height: 115%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Exemplo:</span></span>**
> 
> *<span style="font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi;">Oystr</span>*
> 
> *<span style="font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi;">[<span style="color: windowtext; text-decoration: none; text-underline: none;">andrews.angeli@oystr.com.br</span>](mailto:andrews.angeli@oystr.com.br)</span>*
> 
> *<span style="font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi;">ID/Usuário: 1/3041</span>*

## Passo-a-Passo

Este procedimento faz resolução no Oystr 360 e Distribuição

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Acessar e personificar o perfil do usuário através do link: **<span style="font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi;">https://console4.oystr.com.br/cp/accounts</span>**

<span style="mso-no-proof: yes;">![A screenshot of a computer

AI-generated content may be incorrect.](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/embedded-image-yrqw4xco.png)</span>

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Verifique se o perfil é o correto.

<span style="mso-no-proof: yes;">![A screenshot of a computer

AI-generated content may be incorrect.](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/embedded-image-el4uuqvo.png)</span>

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">3.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Através do perfil, acesse a aplicação solicitada.

<span style="mso-no-proof: yes;">![A screenshot of a computer

AI-generated content may be incorrect.](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/embedded-image-mons34ph.png)<span style="mso-spacerun: yes;"> </span></span>

<span lang="EN-US" style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin; mso-ansi-language: EN-US; mso-no-proof: yes;"><span style="mso-list: Ignore;">4.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-no-proof: yes;">Acesse o <span style="text-decoration: underline;">Dev Tools &gt; Network &gt; batchList.</span></span>

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"><span style="mso-list: Ignore;">5.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-no-proof: yes;">Verifique se a mensagem será: </span>**<span style="font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi;">error: “Sem Permissão”</span>**

<span style="mso-no-proof: yes;">![A screenshot of a computer

AI-generated content may be incorrect.](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/embedded-image-nkilspw6.png)</span>

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"><span style="mso-list: Ignore;">6.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-no-proof: yes;">Se a mensagem aparecer, acesse o painel de configurações do usuário e crie uma nova chave API.</span>

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin; mso-no-proof: yes;"><span style="mso-list: Ignore;">7.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="mso-no-proof: yes;">O erro ocorre devido a expiração do Token de acesso do colaborador.</span>

<span style="mso-no-proof: yes;">![A screenshot of a computer

AI-generated content may be incorrect.](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/embedded-image-jzpjyocv.png)</span>

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">8.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Retorne a página e verifique se a mensagem de erro desapareceu.

<span style="mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">9.<span style="font: 7.0pt 'Times New Roman';"> </span></span></span>Por fim, retorne ao cliente solicitando um novo teste.

**Obs**. 360 se chamava monitoramento em versões passadas.

#### Feedback de melhoria:

***-Tornar a informação menos genérica, informando se possui uma chave ativa no momento.***

# Obter dados de consumo de cliente no 360

### O que precisa ter no card:

- ID do perfil
- **Data de início e fim** (para o solicitante receber os dados)

### Acessos necessários:

- Acesso ao monitoramento-app

### Passo-a-Passo:

1. ****Acesse o projeto**:  
    `monitoramento-app > reportConsumoTotal.ts`** [![image.png](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/scaled-1680-/1h5image.png)](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/1h5image.png)

**2.** Dentro da variável `codEscritorio`, adicione o ID que será pesquisado.

3\. Descomente o código:

<p class="callout info">**codEscritorio: { in: codEscritorio }**</p>

4\. Preencha `startedAt` e `endedAt` com o início do mês até o dia atual, respectivamente.

[![image.png](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/scaled-1680-/LU0image.png)](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/LU0image.png)

5\. Após ajustar os campos, execute o código abaixo:

<p class="callout info">yarn tsnd --transpile-only --exit-child --no-notify --unhandled-rejections=throw custom/reportConsumoTotal.ts</p>

<div id="bkmrk-se-for-a-primeira-ve">Se for a primeira vez executando, pode ser que retorne o erro abaixo:</div>[![image.png](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/scaled-1680-/xZkimage.png)](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/xZkimage.png)

Nesse caso, execute o código abaixo para atualizar o prisma:

<p class="callout warning">yarn prisma generate --schema src/data/prisma/schema.prisma</p>

Confirme também se:

-Existe uma pasta **tmp** localizado na raiz do monitoramente-app, nela, será salvo os arquivos. Se não houver, crie.  
-Garanta que o .env exista o parametro **KEY (token oystr)**, além do acesso ao Banco de Dados abaixo:

<p class="callout info">DATABASE\_URL="postgresql://postgres:(senha)@194.195.218.85:15432/monitoramento"</p>

<p class="callout info">\## ELASTICSEARCH</p>

<p class="callout info">PASSWORD = (sua senha)</p>

<p class="callout info">ELASTIC\_URL = "http://194.195.218.85:9200"</p>

6\. Após realizado, será gerado um Json e um arquivo CVS dentro da pasta tmp. nele, haverá o valor do consumo de dados do cliente.

[![image.png](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/scaled-1680-/TVNimage.png)](https://wiki.oystr.com.br/uploads/images/gallery/2025-09/TVNimage.png)

7\. Retorne os arquivos ao solicitante, finalizando o ticket.

# Oystr360: Validar movimentações

### O que precisa ter no card:

- ID/Usuário
- E-mail
- Nome da empresa
- Numero do processo

### Acessos necessários:

- Acesso ao banco de dados
- Acesso em alguma ferramenta de depuração de API

## Passo-a-Passo

1\. Com o número de processos em mãos, acesse sua ferramenta de depuração preferivel e realize uma solicitação GET no caminho abaixo:

<p class="callout info">http://194.195.218.85:9200/monitoramento/\_search?scroll=1m</p>

2\. No body, adicione os seguintes campos:

<p class="callout info">{  
 "query": {  
 "terms": {  
 "numProcesso": \[  
 "Numero do processo AQUI"  
 \]  
 }  
 },  
 "sort": {  
 "dataAndamento": "desc"  
 },  
 "size": 50  
}</p>

Após acessar, receberá todas as movimentações realizadas pelo perfil. Na tela, você poderá procurar por divergencias de informações entre o app e o banco de dados, entre outras funcionalidades para cada necessidade.

[![image.png](https://wiki.oystr.com.br/uploads/images/gallery/2025-10/scaled-1680-/hyyimage.png)](https://wiki.oystr.com.br/uploads/images/gallery/2025-10/hyyimage.png)

# Oystr360: Validar logs de acessos

### Acessos necessários:

- Acesso ao Oystr-app-2

## Passo-a-Passo

1. Acesse o ambiente **Oystr-app-2 -&gt; 194.195.218.85**
2. Navegue até o caminho abaixo:  
    <p class="callout info">/opt/oystr/monitoramento-app/shared/log</p>
3. utilize o comando **ls** para validar as datas e encontrar a que está procurando.  
    [![image.png](https://wiki.oystr.com.br/uploads/images/gallery/2025-10/scaled-1680-/McKimage.png)](https://wiki.oystr.com.br/uploads/images/gallery/2025-10/McKimage.png)
4. Utilize o código abaixo, de forma ajustada, para realizar a pesquisa mediante a sua necessidade.  
    <p class="callout info">cat ARQUIVO.log | grep "PALAVRA\_CHAVE"</p>

# Oystr360: Procedimento para Dump-Reverso em ElasticSearch

### O que precisa ter no card:

-Arquivos em formato .json, do dump realizado em elasticSearch

-O formato tem que seguir o seguinte padrão:

[![image.png](https://wiki.oystr.com.br/uploads/images/gallery/2025-11/scaled-1680-/g8Aimage.png)](https://wiki.oystr.com.br/uploads/images/gallery/2025-11/g8Aimage.png)

### Passo-a-Passo:

1\. Acesse o terminal e localize a pasta onde seu arquivo está.

2\. Utilize o código abaixo para ajusta-lo ao padrão aceito pelo **ElasticSearch**

<p class="callout info">jq -c '{index: {"\_index": .\_index, "\_id": .\_id}}, .\_source' /home/USER/Documents/DB/Elastic/NOME\_ENTRADA\_ARQUIVO.json &gt; /home/USER/Documents/DB/Elastic/NOME\_SAIDA\_ARQUIVO.json</p>

3\. A solicitação pode demorar alguns minutos dependendo do tamanho total do arquivo, aguarde até finalizar.

4\. Com a alteração concluida, basta adiciona-lo no banco de dados. Para isso, pode ser realizado um **POST** simples (Caso o arquivo possua um tamanho aceito pela aplicação)

<p class="callout info">curl -X POST "http://localhost:9200/\_bulk" \\  
-u elastic:&lt;sua\_senha&gt; \\  
-H "Content-Type: application/json" \\  
--data-binary "@/home/USER/Documents/DB/Elastic/NOME\_SAIDA\_ARQUIVO.json"</p>

  
5\. Caso o arquivo seja muito grande, envie o mesmo via streaming por Python, da seguinte forma:

<div id="bkmrk-import-requests-from" style="color: #cccccc; background-color: #1f1f1f; font-family: 'Droid Sans Mono', 'monospace', monospace; font-weight: normal; font-size: 14px; line-height: 19px; white-space: pre;"><div style="color: #cccccc; background-color: #1f1f1f; font-family: 'Droid Sans Mono', 'monospace', monospace; font-weight: normal; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: #c586c0;">import</span><span style="color: #cccccc;"> </span><span style="color: #4ec9b0;">requests</span></div><div><span style="color: #c586c0;">from</span><span style="color: #cccccc;"> </span><span style="color: #4ec9b0;">requests</span><span style="color: #cccccc;">.</span><span style="color: #4ec9b0;">auth</span><span style="color: #cccccc;"> </span><span style="color: #c586c0;">import</span><span style="color: #cccccc;"> </span><span style="color: #4ec9b0;">HTTPBasicAuth</span></div>  
<div><span style="color: #9cdcfe;">url</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #ce9178;">"http://localhost:9201/\_bulk"</span></div><div><span style="color: #9cdcfe;">username</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #ce9178;">"SEU\_USER"</span></div><div><span style="color: #9cdcfe;">password</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #ce9178;">"SUA\_SENHA"</span></div><div><span style="color: #9cdcfe;">chunk\_size</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #b5cea8;">1000</span></div><div><span style="color: #9cdcfe;">chunk</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> \[\]</span></div>  
<div><span style="color: #c586c0;">with</span><span style="color: #cccccc;"> </span><span style="color: #dcdcaa;">open</span><span style="color: #cccccc;">(</span><span style="color: #ce9178;">"NOME\_SAIDA\_ARQUIVO.json"</span><span style="color: #cccccc;">, </span><span style="color: #ce9178;">"r"</span><span style="color: #cccccc;">) </span><span style="color: #c586c0;">as</span><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">f</span><span style="color: #cccccc;">:</span></div><div><span style="color: #cccccc;"> </span><span style="color: #c586c0;">for</span><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">line\_num</span><span style="color: #cccccc;">, </span><span style="color: #9cdcfe;">line</span><span style="color: #cccccc;"> </span><span style="color: #c586c0;">in</span><span style="color: #cccccc;"> </span><span style="color: #4ec9b0;">enumerate</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">f</span><span style="color: #cccccc;">, </span><span style="color: #9cdcfe;">start</span><span style="color: #d4d4d4;">=</span><span style="color: #b5cea8;">1</span><span style="color: #cccccc;">):</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">chunk</span><span style="color: #cccccc;">.</span><span style="color: #dcdcaa;">append</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">line</span><span style="color: #cccccc;">.</span><span style="color: #dcdcaa;">rstrip</span><span style="color: #cccccc;">(</span><span style="color: #ce9178;">"</span><span style="color: #d7ba7d;">\\n</span><span style="color: #ce9178;">"</span><span style="color: #cccccc;">))</span></div>  
<div><span style="color: #c586c0;">if</span><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">line\_num</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">%</span><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">chunk\_size</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">==</span><span style="color: #cccccc;"> </span><span style="color: #b5cea8;">0</span><span style="color: #cccccc;">:</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">payload</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #ce9178;">"</span><span style="color: #d7ba7d;">\\n</span><span style="color: #ce9178;">"</span><span style="color: #cccccc;">.</span><span style="color: #dcdcaa;">join</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">chunk</span><span style="color: #cccccc;">) </span><span style="color: #d4d4d4;">+</span><span style="color: #cccccc;"> </span><span style="color: #ce9178;">"</span><span style="color: #d7ba7d;">\\n</span><span style="color: #ce9178;">"</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">r</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #4ec9b0;">requests</span><span style="color: #cccccc;">.</span><span style="color: #dcdcaa;">post</span><span style="color: #cccccc;">(</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">url</span><span style="color: #cccccc;">,</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">data</span><span style="color: #d4d4d4;">=</span><span style="color: #9cdcfe;">payload</span><span style="color: #cccccc;">,</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">headers</span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;">{</span><span style="color: #ce9178;">"Content-Type"</span><span style="color: #cccccc;">: </span><span style="color: #ce9178;">"application/x-ndjson"</span><span style="color: #cccccc;">},</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">auth</span><span style="color: #d4d4d4;">=</span><span style="color: #4ec9b0;">HTTPBasicAuth</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">username</span><span style="color: #cccccc;">, </span><span style="color: #9cdcfe;">password</span><span style="color: #cccccc;">))</span></div><div><span style="color: #cccccc;"> </span><span style="color: #dcdcaa;">print</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">r</span><span style="color: #cccccc;">.</span><span style="color: #9cdcfe;">status\_code</span><span style="color: #cccccc;">, </span><span style="color: #9cdcfe;">r</span><span style="color: #cccccc;">.</span><span style="color: #9cdcfe;">text</span><span style="color: #cccccc;">)</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">chunk</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> \[\]</span></div>  
<div><span style="color: #c586c0;">if</span><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">chunk</span><span style="color: #cccccc;">:</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">payload</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #ce9178;">"</span><span style="color: #d7ba7d;">\\n</span><span style="color: #ce9178;">"</span><span style="color: #cccccc;">.</span><span style="color: #dcdcaa;">join</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">chunk</span><span style="color: #cccccc;">) </span><span style="color: #d4d4d4;">+</span><span style="color: #cccccc;"> </span><span style="color: #ce9178;">"</span><span style="color: #d7ba7d;">\\n</span><span style="color: #ce9178;">"</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">r</span><span style="color: #cccccc;"> </span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;"> </span><span style="color: #4ec9b0;">requests</span><span style="color: #cccccc;">.</span><span style="color: #dcdcaa;">post</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">url</span><span style="color: #cccccc;">, </span><span style="color: #9cdcfe;">data</span><span style="color: #d4d4d4;">=</span><span style="color: #9cdcfe;">payload</span><span style="color: #cccccc;">,</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">headers</span><span style="color: #d4d4d4;">=</span><span style="color: #cccccc;">{</span><span style="color: #ce9178;">"Content-Type"</span><span style="color: #cccccc;">: </span><span style="color: #ce9178;">"application/x-ndjson"</span><span style="color: #cccccc;">},</span></div><div><span style="color: #cccccc;"> </span><span style="color: #9cdcfe;">auth</span><span style="color: #d4d4d4;">=</span><span style="color: #4ec9b0;">HTTPBasicAuth</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">username</span><span style="color: #cccccc;">, </span><span style="color: #9cdcfe;">password</span><span style="color: #cccccc;">))</span></div>  
<div><span style="color: #dcdcaa;">print</span><span style="color: #cccccc;">(</span><span style="color: #9cdcfe;">r</span><span style="color: #cccccc;">.</span><span style="color: #9cdcfe;">status\_code</span><span style="color: #cccccc;">, </span><span style="color: #9cdcfe;">r</span><span style="color: #cccccc;">.</span><span style="color: #9cdcfe;">text</span><span style="color: #cccccc;">)</span></div></div></div>6\. Após finalizar, valide se o banco de dados foi corretamente populado