Referencia de Configuración
Wippy se configura mediante archivos .wippy.yaml. Todas las opciones tienen valores por defecto razonables.
Cualquier valor a continuación puede sobrescribirse en el arranque con wippy run --set section.path=value (repetible, tiene prioridad sobre el archivo). Para sobrescribir entradas individuales del registro en lugar de estas secciones de configuración, usa la sección override: o -o — consulta Sobrescribir entradas.
Composición de Configuración {#config-composition}
--config es repetible; los archivos se componen de izquierda a derecha usando el mismo esquema:
wippy run --config .wippy.yaml --config .wippy.local.yaml
- Los archivos posteriores sobrescriben los valores coincidentes y conservan todo lo demás.
- Cada archivo nombrado explícitamente debe existir. Sin
--config, el.wippy.yamlpor defecto es opcional. - El primer archivo ancla el directorio usado para resolver rutas relativas.
- Los nombres de archivo no tienen significado reservado; nada aparte del archivo por defecto se descubre automáticamente.
La configuración se aplica en orden: composición de archivos, luego las selecciones de --profile, luego las sobrescrituras de --set. Para aplicaciones ejecutadas desde packs, los valores por defecto de runtime empaquetados se sitúan por debajo de todos estos (ver Publicar Valores por Defecto de Runtime).
Perfiles {#profiles}
Un archivo de configuración puede declarar overlays con nombre bajo profiles:. Cada cuerpo de perfil refleja las secciones normales de configuración; seleccionarlo con --profile <name> superpone esos valores sobre la configuración base fusionada:
version: "1.0"
vars:
port: 8085
override:
app:db:kind: db.sql.sqlite
disable:
namespaces: ["legacy.**"]
profiles:
pg:
vars:
port: 18085
override:
app:db:kind: db.sql.postgres
disable:
namespaces.add: ["experimental.**"]
wippy run --profile pg
--profilees repetible; los perfiles se componen de izquierda a derecha, después de la composición de archivos y antes de--set. Un nombre desconocido es un error.- Los valores se fusionan por hoja (el último en escribir gana). La propia sección
profiles:se elimina de la configuración resuelta. - La sección
disableadmite operaciones de lista dentro de perfiles —namespaces.add,namespaces.remove,entries.add,entries.remove— de modo que un perfil puede ajustar la lista base en lugar de reemplazarla. - Las referencias
${name}se interpolan desde la secciónvars:fusionada. Las referencias a variables de entorno del SO no están permitidas dentro de las vars de perfil; usa${env:NAME}en la configuración base, resuelta al cargar el archivo.
wippy run, test y pack aceptan --profile; run list, install, update, lint y registry también lo aceptan para perfiles de workspace (junto con --set). Las aplicaciones pueden distribuir perfiles dentro de packs — ver Publicar Perfiles.
Logger
Controla el codificador del logger zap. Los flags de CLI (-v, -c, -s) sobrescriben el nivel/salida; la única opción controlada por yaml es la codificación.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
encoding |
string | console | Codificador: console (humanizado) o json (estructurado) |
logger:
encoding: json
Gestor de Registros
Controla el enrutamiento de registros del runtime. La salida en consola se configura mediante flags de CLI (-v, -c, -s).
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
propagate_downstream |
bool | true | Enviar registros a la salida de consola/archivo |
stream_to_events |
bool | false | Publicar registros al bus de eventos para acceso programático |
min_level |
int | 0 (-1 con -v) |
Nivel mínimo: -1=debug, 0=info, 1=warn, 2=error. La CLI escribe esta clave a partir de sus flags después de leer el archivo, así que un valor del archivo se ignora; cámbialo con --set logmanager.min_level=<n> |
logmanager:
propagate_downstream: true
stream_to_events: false
Ver: Módulo Logger
Profiler
Servidor HTTP de pprof de Go para perfilado de CPU/memoria. Habilitarlo con el flag -p o mediante configuración.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
enabled |
bool | false | Iniciar servidor de perfilado |
address |
string | localhost:6060 | Dirección de escucha |
read_timeout |
duration | 15s | Tiempo de espera de lectura HTTP |
write_timeout |
duration | 15s | Tiempo de espera de escritura HTTP |
idle_timeout |
duration | 60s | Tiempo de espera de keep-alive |
profiler:
enabled: true
address: "localhost:6060"
Acceso en http://localhost:6060/debug/pprof/
Seguridad
Comportamiento de seguridad global. Las políticas individuales se definen como entradas security.policy.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
strict_mode |
bool | true | Denegar acceso cuando el contexto de seguridad está incompleto |
security:
strict_mode: false
Ver: Sistema de Seguridad, Módulo de Seguridad
Registro
Almacenamiento de entradas e historial de versiones. El registro almacena todas las entradas de configuración.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
enable_history |
bool | true | Rastrear versiones de entradas |
history_type |
string | memory | Almacenamiento: memory, sqlite, postgres, nil |
history_path |
string | .wippy/registry.db | Ruta del archivo SQLite (usada cuando history_type: sqlite) |
history_dsn |
string | DSN de Postgres (usado cuando history_type: postgres) |
|
history_schema |
string | Nombre del esquema de Postgres (usado cuando history_type: postgres) |
|
event_wait_timeout |
duration | 30s | Espera por operación a la confirmación de los listeners durante un apply del registro |
dispatch_internal_kinds |
string[] | [registry.entry, ns.dependency, ns.requirement, ns.definition] |
Tipos de entrada gestionados internamente en lugar de despacharse a los listeners de componentes |
dependency_resolve_timeout |
duration | 0 (ninguno) | Límite para la resolución de dependencias |
dependency_download_timeout |
duration | 0 (ninguno) | Límite para cada descarga de módulo y solicitud de URL de descarga |
dependency_lock_path |
string | wippy.lock descubierto |
Archivo de bloqueo que el handler de dependencias lee y escribe |
dependency_vendor_dir |
string | <lock dir>/<directories.modules>/vendor |
Directorio que contiene los packs de módulos descargados |
registry:
history_type: sqlite
history_path: /var/lib/wippy/registry.db
registry:
history_type: postgres
history_dsn: ${env:WIPPY_REGISTRY_HISTORY_DSN}
history_schema: wippy_registry
Ver: Concepto de Registro, Módulo de Registro
Artifact
Raíz de salida para los artefactos de tiempo de build materializados.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
materialization_root |
string | padre del directorio vendor de dependencias | Raíz propiedad de la aplicación bajo la cual cada formato de artefacto escribe su propio subárbol |
artifact:
materialization_root: build/wippy
Ver: Artefactos de tiempo de build
Workspace
Sustituciones de módulos locales, indexadas por org/module. Los valores son directorios; las rutas relativas se resuelven respecto al directorio del primer archivo --config, y null desactiva una sustitución heredada de una capa de configuración o perfil anterior.
workspace:
replacements:
acme/http: ../local-http
acme/sql: null
Las sustituciones nunca se escriben en wippy.lock. Ver Desarrollo local con sustituciones.
Relay
Enrutamiento de mensajes entre procesos a través de nodos.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
node_name |
string | ID derivado por instancia | Identificador de este nodo relay (por defecto: UUIDv5 de machine-id/hostname + directorio de trabajo; anulable mediante WIPPY_NODE_ID / WIPPY_RELAY_NODE_NAME) |
relay:
node_name: worker-1
Ver: Modelo de Procesos
Supervisor
Gestión del ciclo de vida de servicios. Controla el buzón de control interno del supervisor utilizado para despachar eventos de ciclo de vida.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
host.buffer_size |
int | 1024 | Capacidad del buzón de control interno |
host.worker_count |
int | 16 | Workers del despachador concurrentes |
supervisor:
host:
buffer_size: 2048
worker_count: 32
Ver: Guía de Supervisión
Runtime de Lua
Caché de la VM de Lua y evaluación de expresiones.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
cache.enabled |
bool | type_system.enabled |
Persistir caché de bytecode/verificación de tipos en disco; sigue a type_system.enabled salvo que se establezca explícitamente |
cache.dir |
string | .wippy/cache/lua |
Ruta del directorio de caché (relativa al directorio de configuración/trabajo) |
cache.mode |
string | readwrite |
Modo de caché: readwrite (por defecto), readonly, off; los valores desconocidos recaen en readwrite |
cache.compile.enabled |
bool | true | Persistir el bytecode compilado (cuando cache.enabled) |
cache.typecheck.enabled |
bool | true | Persistir los resultados de verificación de tipos (cuando cache.enabled) |
cache.max_bytes |
int | 1073741824 | Límite máximo del tamaño de la caché en disco, en bytes |
cache.max_entries |
int | 20000 | Número máximo de entradas en caché |
cache.prune_interval |
int | 256 | Escrituras entre pasadas de purga de la caché |
type_system.enabled |
bool | false | Habilitar verificación estática de tipos |
type_system.strict |
bool | false | Tratar advertencias de tipos como errores |
invalidation_wait_timeout |
duration | registry.event_wait_timeout (30s) |
Espera a que se confirme la invalidación de código tras cambiar una entrada |
eval.max_steps |
int | 10000 | Presupuesto de pasos del scheduler por defecto para una ejecución eval; los valores negativos se rechazan |
eval.cache_size |
int | 256 | Entradas de la caché de programas compilados para código evaluado |
eval.cache_ttl |
duration | 0 (sin expiración) | Tiempo de vida de un programa compilado en caché |
lua:
cache:
enabled: true
dir: .cache/lua
type_system:
enabled: true
Scheduler
Particionado de núcleos para el runtime WASM. Cuando está habilitado, se reservan reserved_cores CPUs para la ejecución WASM y el resto sirve al scheduler de actores; una división inválida (por ejemplo, más núcleos reservados que disponibles) se registra y se ignora.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
wasm_isolation.enabled |
bool | false | Particionar núcleos entre trabajo WASM y de actores |
wasm_isolation.reserved_cores |
int | 1 | Núcleos reservados para la ejecución WASM |
scheduler:
wasm_isolation:
enabled: true
reserved_cores: 2
Finder
Caché de búsqueda del registro. Usado internamente para búsquedas de entradas.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
query_cache_size |
int | 1000 | Resultados de consulta en caché |
regex_cache_size |
int | 100 | Patrones de regex compilados |
finder:
query_cache_size: 2000
OpenTelemetry
Exportación de trazas distribuidas y métricas via OTLP.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
enabled |
bool | false | Habilitar OTEL |
endpoint |
string | localhost:4318 | Endpoint OTLP |
protocol |
string | http/protobuf | Protocolo: grpc, http/protobuf |
service_name |
string | wippy-runtime | Identificador del servicio |
service_version |
string | Etiqueta de versión del servicio | |
insecure |
bool | true | Permitir conexión OTLP en texto plano |
sample_rate |
float | 1.0 | Muestreo de trazas (0.0-1.0) |
propagators |
string[] | [tracecontext, baggage] |
Propagadores de contexto |
traces_enabled |
bool | true | Exportar trazas |
metrics_enabled |
bool | false | Exportar métricas |
http.enabled |
bool | true | Trazar solicitudes HTTP |
http.extract_headers |
bool | true | Extraer contexto de traza de cabeceras entrantes |
http.inject_headers |
bool | true | Inyectar contexto de traza en cabeceras salientes |
process.enabled |
bool | true | Trazar ciclo de vida de procesos |
process.trace_lifecycle |
bool | true | Emitir spans para spawn/terminate |
interceptor.enabled |
bool | true | Trazar llamadas a funciones |
interceptor.order |
int | 100 | Prioridad del interceptor |
queue.enabled |
bool | true | Trazar publicación/consumo de colas |
temporal.enabled |
bool | false | Trazar workflows de Temporal |
otel:
enabled: true
endpoint: "http://jaeger:4318"
traces_enabled: true
process:
trace_lifecycle: true
Las variables de entorno estándar de OTEL (OTEL_SDK_DISABLED, OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_INSECURE, OTEL_SERVICE_NAME, OTEL_SERVICE_VERSION, OTEL_TRACES_SAMPLER, OTEL_TRACES_SAMPLER_ARG, OTEL_PROPAGATORS) sobrescriben los campos correspondientes.
Apagado
Comportamiento de apagado controlado.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
timeout |
duration | 30s | Tiempo máximo de espera para que los componentes se detengan |
shutdown:
timeout: 60s
Métricas
Buffer interno de recolección de métricas.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
buffer.size |
int | 10000 | Capacidad del buffer de métricas |
interceptor.enabled |
bool | true | Rastrear automáticamente llamadas a funciones |
metrics:
buffer:
size: 20000
interceptor:
enabled: true
Ver: Módulo de Métricas, Guía de Observabilidad
Prometheus
Endpoint de métricas de Prometheus.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
enabled |
bool | false | Iniciar servidor de métricas |
address |
string | Dirección de escucha; debe establecerse explícitamente cuando enabled: true, de lo contrario el servidor de métricas no arranca |
|
max_cardinality |
int | 1024 | Conjuntos de etiquetas distintos retenidos por métrica (LRU); 0 o menos usa el valor por defecto |
prometheus:
enabled: true
address: "0.0.0.0:9090"
Expone el endpoint /metrics para el scraping de Prometheus, más /livez.
Cluster
Clustering multi-nodo: membresía por gossip más un núcleo de consenso Raft acotado. Ver la Guía de Cluster para la arquitectura y el modelo operativo; esta sección es la referencia de claves de configuración.
Nivel superior
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
enabled |
bool | false | Habilitar clustering |
name |
string | hostname | Nombre del nodo; debe ser único en el cluster |
failure_domain |
string | Etiqueta de zona/rack; anunciada en gossip para que los votantes se distribuyan entre dominios | |
kv_crdt_tombstone_retention |
duration | 0 | Antigüedad tras la cual se reclaman las lápidas de borrado de store.kv.crdt; 0 deshabilita el GC por antigüedad |
kv_crdt_tombstone_gc_alive_peers |
bool | false | Usar la membresía viva actual como conjunto de confirmación de lápidas |
Membresía (gossip)
Gossip SWIM via memberlist. Usado para descubrimiento de nodos, detección de fallos y diseminación de metadatos.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
membership.bind_addr |
string | 0.0.0.0 | Dirección de enlace para gossip |
membership.bind_port |
int | 7946 | Puerto de enlace para gossip (TCP+UDP) |
membership.advertise_addr |
string | Dirección que los peers usan para llegar a este nodo (NAT/k8s) | |
membership.join_addrs |
string | Pares de semilla host:port separados por coma |
|
membership.secret_key |
string | Clave de cifrado para gossip codificada en Base64 (en línea) | |
membership.secret_file |
string | Ruta al archivo que contiene la clave de cifrado para gossip | |
membership.gossip_interval |
duration | 500ms | Periodo de diseminación de gossip |
membership.push_pull_interval |
duration | 5s | Periodo de sincronización de estado completo |
membership.dead_node_reclaim_time |
duration | 30s | Cuándo puede reclamarse el nombre/dirección de un nodo muerto |
membership.probe_interval |
duration | 1s | Ciclo de sondeo de detección de fallos |
membership.probe_timeout |
duration | 200ms | Espera de ack por sondeo |
membership.tcp_timeout |
duration | 1s | Timeout del sondeo TCP de respaldo |
membership.suspicion_mult |
int | 3 | Multiplicador del timeout de sospecha |
Se requiere un secreto de gossip. Establezca membership.secret_key o membership.secret_file (el archivo gana si se dan ambos); sin ninguno, el componente de cluster no arranca. El valor está codificado en base64.
Las cuatro claves de sondeo heredan los valores por defecto de red local de memberlist cuando no están definidas; auméntalas para enlaces de alta latencia (ej. probe_interval: 2s, probe_timeout: 500ms, suspicion_mult: 5).
Internodo (transporte)
Malla TCP que transporta el tráfico de relay y Raft entre nodos. Raft viaja por esta malla mediante request/reply internodo; no hay un puerto Raft separado.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
internode.bind_addr |
string | 0.0.0.0 | Dirección de enlace de la malla |
internode.bind_port |
int | 0 | Puerto de la malla (0 = automático: 7950-7959, luego efímero) |
internode.auto_port |
bool | true | Descubrir el puerto real en el arranque, fijarlo y anunciarlo en gossip |
internode.advertise_addr |
string | Endpoint de relay adicional (IP o nombre DNS) publicado para peers actualizados — para alcanzabilidad con NAT o balanceadores de carga | |
internode.advertise_port |
int | 0 | Puerto para advertise_addr (0 = puerto de enlace; requiere advertise_addr) |
internode.identity_key |
string | Clave privada ed25519 codificada en base64 que identifica a este nodo (en línea) | |
internode.identity_key_file |
string | Ruta a un archivo que contiene esa clave | |
internode.trusted_peer_keys |
map | Clave pública ed25519 codificada en base64 por nombre de nodo, incluido este nodo |
advertise_addr/advertise_port publican un endpoint aditivo en los metadatos del nodo mientras el endpoint de enlace sigue anunciándose sin cambios, de modo que los clusters con versiones mixtas mantienen la conectividad durante una actualización progresiva.
La identidad internodo es obligatoria siempre que el clustering esté habilitado. identity_key e identity_key_file son mutuamente excluyentes y una de las dos debe estar presente; el valor decodifica (base64 estándar o crudo) a una semilla ed25519 de 32 bytes o a una clave privada ed25519 de 64 bytes. trusted_peer_keys asigna a cada nombre de nodo la clave pública ed25519 de 32 bytes de ese nodo, y debe contener una entrada para el cluster.name local cuyo valor coincida con la identidad local — de lo contrario el arranque falla. Ver la Guía de Cluster.
Raft (consenso)
Raft acotado. El estado de Raft es durable en disco por defecto, almacenado bajo raft.data_dir (por defecto ~/.wippy/store); un nodo reiniciado aún se une al quórum desde sus peers. Las entradas store.kv.raft se replican a través de él. El bootstrap es dirigido por gossip (estilo Consul/Nomad bootstrap_expect).
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
raft.data_dir |
string | ~/.wippy/store |
Directorio para el estado de Raft durable en disco y los snapshots durables de CRDT (bajo <data_dir>/_sys/). Sin disco solo cuando no se resuelve ninguna ruta (sin directorio home y ninguna establecida) |
raft.enabled |
bool | true | Ejecutar un nodo Raft; false convierte este nodo en un cliente solo-gossip |
raft.role |
string | server | server ejecuta un nodo Raft; client es solo-gossip |
raft.eligible |
bool | true | Si este nodo puede ser seleccionado como votante |
raft.priority |
int | 100 | Prioridad de selección de votante (valor menor es preferido) |
raft.bootstrap_expect |
int | 1 | Tamaño inicial del quórum: 0=unirse a uno existente, 1=nodo único, N=esperar N peers elegibles para formar quórum |
raft.max_voters |
int | 5 | Límite de votantes (debe ser impar); los nodos elegibles adicionales se convierten en standbys |
raft.max_standbys |
int | 4 | Miembros no votantes mantenidos en espera para promoción; los nodos más allá de voters+standbys no son miembros Raft |
raft.reconcile_debounce |
duration | 2s | Ventana de consolidación tras un evento de gossip antes de que se ejecute el reconciliador de votantes |
raft.reconcile_timeout |
duration | 2s | Límite por pasada de reconciliación |
raft.heartbeat_timeout |
duration | 3s | Tiempo de espera inactivo del seguidor antes de iniciar una elección |
raft.election_timeout |
duration | 3s | Tiempo de espera de elección del candidato (limitado a >= heartbeat) |
raft.commit_timeout |
duration | 500ms | Cadencia de heartbeat del líder inactivo |
raft.snapshot_threshold |
uint64 | 8192 | Entradas de log desde el último snapshot antes de crear uno nuevo |
raft.snapshot_interval |
duration | 2m | Intervalo de verificación de snapshots |
raft.snapshot_retain |
int | 3 | Snapshots retenidos |
raft.trailing_logs |
uint64 | 10240 | Entradas de log retenidas tras un snapshot |
raft.max_append_entries |
int | 16 | Máximo de entradas por RPC AppendEntries |
raft.leader_probe_interval |
duration | 3s | Cadencia de sonda de alcanzabilidad del líder del registro global |
raft.leader_probe_grace |
int | 3 | Fallos consecutivos de sonda antes de declarar al líder inalcanzable |
raft.registry_backend |
string | kv | Implementación del registro de nombres del clúster: kv (espacio de claves kv compartido) o fsm (FSM Raft dedicada) |
raft.global_dissem_tombstone_retention |
duration | 0 | Cuánto tiempo conserva la caché de diseminación de nombres globales las lápidas de borrado |
Nodo único (desarrollo) — clustering activado, se bootstrapea inmediatamente:
cluster:
enabled: true
name: dev
membership:
secret_key: "d2lwcHktZG9jcy1nb3NzaXAtc2VjcmV0LTMyYnl0ZXM="
internode:
identity_key: "d2lwcHktZG9jcy1kZXYtbm9kZS1leGFtcGxlc2VlZCE="
trusted_peer_keys:
dev: "rNqImcjOzef28dzvma80mSrCW1px5LBAc5TbaYqAgm0="
raft:
bootstrap_expect: 1
Cluster de votación de tres nodos — cada nodo lista los otros como semillas y espera a los tres antes de formar quórum. Cada nodo lleva el mismo mapa trusted_peer_keys y su propia clave privada:
cluster:
enabled: true
name: node-1
failure_domain: us-east-1a
membership:
bind_port: 7946
join_addrs: "node-2:7946,node-3:7946"
secret_file: /etc/wippy/cluster.key
internode:
identity_key_file: /etc/wippy/node-1.key
trusted_peer_keys:
node-1: "okmamN3PKkMpPwPBurknHy2Wi3dwp/rz+uTM2fF9aD0="
node-2: "PWX+oOYrFdtjUxbgmTkXCFI0KEvG++ZM52HOWfDkqP8="
node-3: "QfP0fgllbj4s95VAztTORhy3bv9mst1l0lwuUNvO/hE="
raft:
bootstrap_expect: 3
max_voters: 5
Cliente solo-gossip — se une al cluster para naming/mensajería pero nunca ejecuta Raft. Aún necesita su propia identidad y debe aparecer en el mapa de confianza de cada nodo:
cluster:
enabled: true
name: edge-7
membership:
join_addrs: "node-1:7946,node-2:7946"
secret_file: /etc/wippy/cluster.key
internode:
identity_key_file: /etc/wippy/edge-7.key
trusted_peer_keys:
node-1: "okmamN3PKkMpPwPBurknHy2Wi3dwp/rz+uTM2fF9aD0="
node-2: "PWX+oOYrFdtjUxbgmTkXCFI0KEvG++ZM52HOWfDkqP8="
node-3: "QfP0fgllbj4s95VAztTORhy3bv9mst1l0lwuUNvO/hE="
edge-7: "7lzP4jBAkC3P+0jq4vtMsC45571BlVXk3mSlOD/Z0SA="
raft:
role: client
LSP
Servidor del Protocolo de Servidor de Lenguaje para integraciones con editores.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
enabled |
bool | false | Habilitar el servidor TCP |
address |
string | :7777 | Dirección de escucha TCP |
http_enabled |
bool | false | Habilitar el transporte HTTP |
http_address |
string | :7778 | Dirección de escucha HTTP |
http_path |
string | /lsp | Ruta del endpoint HTTP |
http_allow_origin |
string | * | Origen permitido por CORS |
max_message_bytes |
int | 8388608 | Tamaño máximo de mensaje entrante |
lsp:
enabled: true
address: ":7777"
http_enabled: true
Ver: Guía de LSP
Servicio de Red
Gestor de red superpuesta (drivers SOCKS5, I2P, Tailscale).
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
state_dir |
string | .wippy/net | Directorio de almacenamiento del estado del driver |
default_network |
string | ID de red por defecto aplicado cuando las entradas omiten network |
network_service:
state_dir: /var/lib/wippy/net
default_network: app:tailscale
Ver: Redes Superpuestas
Despachador HTTP
Ajuste del pool de clientes HTTP compartido utilizado por funciones despachadas HTTP y solicitudes salientes.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
dispatcher.http.timeout |
duration | 0 (ninguno) | Tiempo de espera por solicitud |
dispatcher.http.max_idle_conns |
int | 0 (stdlib) | Máximo de conexiones inactivas en todos los hosts |
dispatcher.http.max_idle_per_host |
int | 0 (stdlib) | Máximo de conexiones inactivas por host |
dispatcher.http.idle_conn_timeout |
duration | 0 (stdlib) | Tiempo de espera de conexión inactiva |
dispatcher.http.max_clients |
int | 0 (ilimitado) | Máximo de clientes distintos en el pool |
dispatcher:
http:
timeout: 30s
max_idle_per_host: 32
Módulos
Cliente del registro de módulos usado por wippy install/update.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
registry_url |
string | https://hub.wippy.ai | Endpoint del registro |
modules:
registry_url: https://internal-registry.example.com
Extensiones
Extensiones de plugin nativo de Go cargadas al inicio (solo Unix).
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
enabled |
bool | true | Cargar extensiones |
paths |
string[] | Rutas de archivos de plugin (relativas al directorio de configuración) |
extensions:
enabled: true
paths:
- ./extensions/myplugin.so
Variables de Entorno
| Variable | Descripción |
|---|---|
GOMEMLIMIT |
Límite de memoria de respaldo cuando no se establece el flag --memory-limit (precedencia: flag --memory-limit > GOMEMLIMIT > 1G por defecto) |
Ver También
- Referencia de CLI - Opciones de línea de comandos
- Guía de Cluster - Arquitectura y operaciones de clustering
- Tipos de Entrada - Todos los tipos de entrada
- Guía de Observabilidad - Registro, métricas, trazas