Skip to content

About

Reglas de texto compartidas por las aplicaciones propias de APS Conecta: dialecto CSV, familia fold/slug, postura de rechazo y forma del error de cliente (PHP + JS).

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

aps-common

Reglas de texto compartidas por las aplicaciones propias de APS Conecta, enunciadas una sola vez: el dialecto CSV (Csv), la familia de plegado y slugs (Text y su mitad JS en js/), la postura de rechazo (Refusal/Refuses) y la única forma del error en el cliente (js/api.js).

Qué es

Una biblioteca de Composer, no una aplicación: no tiene appinfo, rutas ni base de datos, y no depende de ninguna clase OCP salvo un trait deliberadamente ligado a OCP, que la batería de pruebas del propio paquete nunca carga. Todo lo que contiene es idéntico byte a byte por doctrina: código que dos aplicaciones, de otro modo, copiarían y adaptarían hasta que las copias divergieran.

Una regla pertenece aquí cuando dos o más aplicaciones deben coincidir en su comportamiento y una divergencia rompe en silencio búsquedas o viajes de ida y vuelta: el dialecto CSV de es-CL, el plegado de acentos, los slugs, la neutralización de fórmulas y la forma del mensaje de error. Las formas propias de cada aplicación no se mueven: la exportación con pérdida de territorio y la planilla de ida y vuelta de farmacia son distintas a propósito.

Documentación

La explicación completa —las cuatro superficies, el contrato de rechazo, la distribución y el cerco— vive en el sitio de documentación, en aps-common. Dentro de este repositorio quedan solo los documentos que viajan con el código:

Los números de ADR son direcciones: una decisión nunca se elimina, y la que la reemplaza la enlaza hacia adelante.

Estado

Estable, y consumido por las cuatro aplicaciones propias: territorio, farmacia y estadistica usan las cuatro superficies mediante sus subárboles versionados, y epidemiologia usa solo la mitad JS (src/aps/). Lo que hay aquí está terminado y verificado; nada es especulativo. Es la primera dependencia de Composer en tiempo de ejecución de la organización, y se distribuye por subárbol versionado, no por una publicación en Packagist.

Un cambio incompatible tiene exactamente ese alcance: las compuertas aps-drift de territorio, farmacia y estadistica se ponen en rojo hasta que cada una vuelve a sincronizar y confirma (la integración continua de epidemiologia no tiene paso de deriva). Ese es el cerco: el paquete no puede avanzar sin que avancen sus consumidores.

Inicio rápido de desarrollo

  1. Clonar el repositorio como hermano de las copias de trabajo de las aplicaciones: sus objetivos de sincronización resuelven el paquete en ../aps-common.
  2. Verificar la batería propia en verde con el objetivo test del Makefile (un contenedor PHP básico, igual que las aplicaciones; no requiere Nextcloud). La mitad JS se prueba con node --test js/*.test.js; su corpus de conformidad lo comparten las baterías vitest de las aplicaciones. La integración continua (.github/workflows/ci.yml) ejecuta ambas en cada pull request.

Para consumirlo desde una aplicación: un repositorio de tipo ruta de Composer que apunte a la copia hermana, un require de aps/common, y el subárbol vendor/aps/common/src confirmado en la aplicación (justificación en el ADR 0001). vendor/autoload.php no se confirma: el Application.php de cada aplicación registra un pequeño cargador PSR-4 para APS\Common\. El piso es PHP ^8.1, porque territorio fija config.platform.php 8.1 y un piso mayor haría el paquete no instalable allí.

Tras editar el paquete, ejecutar el objetivo aps-sync de cada aplicación (copia src/ a vendor/aps/common/src/, el stub a tests/stubs/ y js/ a src/aps/) y luego su objetivo aps-drift, que prueba que el subárbol confirmado es igual al paquete.

Licencia

AGPL-3.0-or-later (ADR-0010 de gestion): la obligación viene de lo que enlazan las aplicaciones, no de una elección de este paquete. No tiene dependencias de ejecución más allá de PHP ^8.1, así que no hay avisos de terceros que atribuir; los avisos y licencias de la organización viven en Aviso y licencias.

About

Reglas de texto compartidas por las aplicaciones propias de APS Conecta: dialecto CSV, familia fold/slug, postura de rechazo y forma del error de cliente (PHP + JS).

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages