> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# API administrativa do Systemplane

> Inspecione e altere a configuração operacional de uma aplicação Lerian em tempo de execução, sem reiniciar, pela API administrativa compartilhada do Systemplane.

O Systemplane é o plano de controle para configuração em tempo de execução compartilhado pelas aplicações Lerian. Essas aplicações o expõem para que você possa inspecionar e alterar configurações operacionais em um serviço em execução, sem reiniciar. Em ambientes financeiros regulados, derrubar um serviço para aplicar uma mudança de configuração é ao mesmo tempo um risco de compliance e uma interrupção operacional. Com o Systemplane, você ajusta os valores que um serviço aceita com segurança enquanto ele continua atendendo ao tráfego.

Essa é a mesma superfície administrativa em todas as aplicações que a montam. Cada produto documenta suas próprias chaves configuráveis, mas as rotas, os formatos de requisição e resposta, e o modelo de autorização descritos aqui são comuns a todas elas.

## O que é o Systemplane

***

O Systemplane não é um serviço independente. Cada aplicação monta o mesmo conjunto de rotas em seu próprio host e porta HTTP, sob um prefixo de caminho específico da aplicação. O Systemplane não tem host nem porta próprios, e não tem porta administrativa dedicada. O prefixo canônico documentado aqui é `/system`, mas ele varia conforme a aplicação (veja a tabela de aplicabilidade abaixo).

As aplicações registram as rotas de forma programática, e nenhum gerador de código as produz. Por isso, elas não aparecem na referência de API gerada de cada produto. Esta referência documenta a superfície manualmente, para que você possa operá-la de forma consistente entre os produtos.

Toda a superfície fica desativada por padrão. Uma aplicação apenas a disponibiliza quando você ativa a configuração `SYSTEMPLANE_ENABLED`. Caso contrário, a aplicação roda no modo apenas variáveis de ambiente e não monta essas rotas.

## Namespaces

***

A configuração vive em **namespaces**, cada um com entradas simples e indexadas por chaves de texto. Trilhos e plugins usam três namespaces canônicos:

| Namespace              | O que contém                                                                                    |
| ---------------------- | ----------------------------------------------------------------------------------------------- |
| `runtime_config`       | Ajustes operacionais como limites de taxa, intervalos de workers e tamanhos de connection pool. |
| `tenant_policy`        | Objetos de política com escopo de tenant (por exemplo, tabelas de roteamento por tenant).       |
| `operational_registry` | Dados operacionais de consulta que o serviço lê em tempo de execução.                           |

Algumas aplicações registram um único namespace com o nome da própria aplicação, em vez desses três. O Matcher, por exemplo, mantém todas as suas chaves em um único namespace `matcher`.

O valor de cada entrada não tem tipo na camada de transporte. Cada chave registrada aceita seu próprio escalar, objeto ou array JSON, e um validador próprio do lado do servidor verifica o valor. Nem toda configuração pode ser alterada em tempo de execução. A aplicação lê as configurações apenas de bootstrap uma única vez, na inicialização. Essas configurações não aparecem no Systemplane e ainda exigem um reinício para mudar.

## Endpoints

***

Todos os caminhos são relativos ao prefixo da aplicação (padrão `/system`).

| Método   | Caminho                               | O que faz                                                                                                    |
| -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `GET`    | `/system/{namespace}`                 | [Lista as entradas](/pt/reference/platform/systemplane/list-entries) de um namespace                         |
| `GET`    | `/system/{namespace}/{key}`           | [Obtém uma entrada](/pt/reference/platform/systemplane/get-entry)                                            |
| `PUT`    | `/system/{namespace}/{key}`           | [Grava uma entrada](/pt/reference/platform/systemplane/put-entry) — corpo `{"value": <json>}`, retorna `204` |
| `DELETE` | `/system/{namespace}/{key}`           | [Exclui uma entrada](/pt/reference/platform/systemplane/delete-entry) — retorna `204`                        |
| `GET`    | `/system/-/catalog`                   | [Lista o catálogo de chaves](/pt/reference/platform/systemplane/catalog-list) (opcional)                     |
| `GET`    | `/system/-/catalog/{namespace}/{key}` | [Obtém o contrato de gravação de uma chave](/pt/reference/platform/systemplane/catalog-detail) (opcional)    |

<Note>
  `/system/-/catalog` nomeia um caminho de metadados reservado. A aplicação o atende antes das rotas de namespace. O segmento `-` não é um namespace real, e você não pode usá-lo como um. Os erros usam um envelope simples `{"code": <int>, "title": "<string>", "message": "<string>"}`.
</Note>

## Autenticação e permissões

***

A autorização **nega tudo por padrão**. Uma aplicação apenas disponibiliza a superfície depois que você configura um autorizador. Sem um autorizador, a aplicação nega toda requisição. Quando você habilita a autenticação, a aplicação aplica controle de acesso baseado em papéis por namespace, sobre uma identidade válida com escopo de plataforma (não de tenant).

Leituras exigem a permissão de leitura do namespace, e gravações exigem a permissão de escrita correspondente:

| Namespace              | Permissão de leitura               | Permissão de escrita                |
| ---------------------- | ---------------------------------- | ----------------------------------- |
| `runtime_config`       | `system_runtime_config:read`       | `system_runtime_config:write`       |
| `tenant_policy`        | `system_tenant_policy:read`        | `system_tenant_policy:write`        |
| `operational_registry` | `system_operational_registry:read` | `system_operational_registry:write` |

A ação de leitura cobre `GET`. A ação de escrita cobre `PUT` e `DELETE`. Os endpoints de descoberta do catálogo exigem permissão de leitura em pelo menos um namespace.

<Note>
  As strings exatas de permissão podem variar por aplicação. O Matcher, que usa um único namespace, protege toda a sua superfície com a permissão `system-runtime-config:admin` (recurso `system-runtime-config`, ação `admin`), em vez das strings por namespace acima. Consulte a documentação do próprio produto para saber seu modelo de autorização.
</Note>

Os tokens são JWTs do tipo bearer emitidos pelo [Access Manager](/pt/platform/access-manager) da plataforma. Chamadores automatizados obtêm um token pelo fluxo de client credentials.

## Descobrindo chaves com o catálogo

***

Quando uma aplicação opta pela superfície de catálogo, `GET /system/-/catalog` lista todas as chaves que ela registra. A rota de detalhe `GET /system/-/catalog/{namespace}/{key}` retorna o contrato de gravação completo de uma chave. O contrato cobre seu tipo, escopo de tenant, classe de tempo de execução, política de redação, JSON schema, regras de validação, exemplos válidos, valor padrão e o caminho `PUT` correspondente.

Use o catálogo para saber o que um serviço expõe antes de mudar qualquer coisa. O catálogo descreve o contrato de gravação. Para ler o valor configurado atual, chame `GET /system/{namespace}/{key}`.

## Quais produtos expõem o Systemplane

***

O Systemplane é opcional por produto. A tabela abaixo lista os produtos que o montam. Para cada produto, ela indica o prefixo de caminho, a porta HTTP padrão e se o produto também disponibiliza a superfície de descoberta do catálogo. O prefixo e a porta são padrões. Um deploy pode sobrescrevê-los.

| Produto                                                                                         | Prefixo de caminho             | Porta padrão   | Catálogo? |
| ----------------------------------------------------------------------------------------------- | ------------------------------ | -------------- | --------- |
| [Matcher](/pt/products/matcher/configuration/matcher-systemplane)                               | `/system`                      | `:4018`        | Sim       |
| [Lender](/pt/products/lender/what-is-lender)                                                    | `/api/v1/systemplane`          | `:8080`        | Não       |
| [TED (via JD)](/pt/interfaces/ted/ted-overview)                                                 | `/system`                      | `:4027`        | Sim       |
| [Pix Direto (via JD)](/pt/interfaces/pix/main-domains-overview)                                 | `/system`                      | `:8080`        | Não       |
| [Pix Lerian](/pt/interfaces/pix-lerian/pix-lerian-environment-variables)                        | Fornecido durante o onboarding | Por componente | Não       |
| Integração CCS                                                                                  | `/system`                      | `:4030`        | Não       |
| Troca de arquivos SPB (BC-Correios)                                                             | `/system`                      | `:9090`        | Sim       |
| [Lerian STA](/pt/rails/sta/what-is-lerian-sta)                                                  | `/system`                      | `:4028`        | Não       |
| [Lerian SISBAJUD](/pt/rails/sisbajud/what-is-lerian-sisbajud)                                   | `/system`                      | `:4029`        | Não       |
| [Lerian SLC](/pt/rails/slc/what-is-lerian-slc)                                                  | `/system`                      | `:4111`        | Não       |
| [Lerian Consignado — Dataprev](/pt/rails/consignado/what-is-lerian-consignado)                  | `/system`                      | `:8080`        | Não       |
| [Lerian SPB](/pt/rails/spb/what-is-lerian-spb) / [Lerian SPI](/pt/rails/spi/what-is-lerian-spi) | `/v1/system`                   | Por serviço    | Não       |

<Note>
  Produtos que não estão nesta lista não montam o Systemplane. Você os configura apenas por variáveis de ambiente.
</Note>
