> ## 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 de administração do Systemplane

> Inspecione e altere a configuração operacional de uma aplicação Lerian em tempo de execução — sem reiniciar — por meio da API de administração compartilhada do Systemplane.

O Systemplane é o plano de controle de configuração em tempo de execução compartilhado que as aplicações Lerian expõem para que você inspecione e altere 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 conformidade e uma interrupção operacional. O Systemplane elimina isso: você ajusta os valores que um serviço suporta com segurança enquanto ele continua atendendo ao tráfego.

Esta é a mesma superfície de administração 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 autônomo. 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 — não há host nem porta dedicados ao Systemplane, e nenhuma porta de administração dedicada. O prefixo canônico documentado aqui é `/system`, mas ele varia por aplicação (veja a tabela de aplicabilidade abaixo).

Como as rotas são registradas programaticamente em vez de emitidas por um gerador de código, elas não aparecem na referência de API gerada de cada produto. Esta referência documenta a superfície manualmente para que você a opere de forma consistente entre os produtos.

Toda a superfície fica desativada por padrão. Uma aplicação só a atende quando a configuração `SYSTEMPLANE_ENABLED` está ativada; caso contrário, a aplicação roda em modo somente variáveis de ambiente e essas rotas não são montadas.

## Namespaces

***

A configuração é organizada em **namespaces**, cada um contendo entradas planas com chaves em string. Trilhos e plugins usam três namespaces canônicos:

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

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

O valor de cada entrada é sem tipo na camada de transporte: cada chave registrada aceita seu próprio escalar, objeto ou array JSON, validado pelo validador do lado do servidor daquela chave. Nem toda configuração é alterável em tempo de execução — configurações somente de bootstrap são lidas uma única vez na inicialização, não são registradas no Systemplane e ainda exigem reinício para serem alteradas.

## 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/systemplane/list-entries) de um namespace                         |
| `GET`    | `/system/{namespace}/{key}`           | [Obtém uma entrada](/pt/reference/systemplane/get-entry)                                            |
| `PUT`    | `/system/{namespace}/{key}`           | [Grava uma entrada](/pt/reference/systemplane/put-entry) — corpo `{"value": <json>}`, retorna `204` |
| `DELETE` | `/system/{namespace}/{key}`           | [Exclui uma entrada](/pt/reference/systemplane/delete-entry) — retorna `204`                        |
| `GET`    | `/system/-/catalog`                   | [Lista o catálogo de chaves](/pt/reference/systemplane/catalog-list) (opcional)                     |
| `GET`    | `/system/-/catalog/{namespace}/{key}` | [Obtém o contrato de escrita de uma chave](/pt/reference/systemplane/catalog-detail) (opcional)     |

<Note>
  `/system/-/catalog` é um caminho de metadados reservado, atendido antes das rotas de namespace — `-` não é um namespace real e não pode ser usado como um. Os erros usam um envelope plano `{"code": <int>, "title": "<string>", "message": "<string>"}`.
</Note>

## Autenticação e permissões

***

A autorização é **negar tudo por padrão**. Uma aplicação só atende a superfície depois de ser configurada com um autorizador; sem um, toda requisição é negada. Quando a autenticação está ativada, 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).

As leituras exigem a permissão de leitura do namespace e as escritas 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 para 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 conhecer seu modelo de autorização.
</Note>

Os tokens são JWTs bearer emitidos pelo [Access Manager](/pt/platform/access-manager/access-manager) da plataforma; chamadores máquina obtêm um por meio do 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, e `GET /system/-/catalog/{namespace}/{key}` retorna o contrato de escrita completo de uma chave — seu tipo, escopo de tenant, classe de tempo de execução, política de redação, esquema JSON, regras de validação, exemplos válidos, valor padrão e o caminho `PUT` correspondente.

Use o catálogo para descobrir o que um serviço expõe antes de alterar qualquer coisa: o catálogo descreve o contrato de escrita, enquanto o valor configurado atual é lido a partir de `GET /system/{namespace}/{key}`.

## Quais produtos expõem o Systemplane

***

O Systemplane é opcional por produto. A tabela abaixo lista os produtos que o montam, o prefixo de caminho que cada um usa, sua porta HTTP padrão e se ele também atende a superfície de descoberta do catálogo. O prefixo e a porta são padrões — uma implantação pode sobrescrevê-los.

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

<Note>
  Produtos não listados aqui não montam o Systemplane — eles são configurados apenas por variáveis de ambiente.
</Note>
