Saltar a contenido

ADR-056: Ficha del funcionario y cargo de quien decide la anulación

Estado: Aceptado Fecha: 2026-10-29 Autores: Giampiero (mantenedor principal); épica «deuda del lote D», punto 3 Relacionados: ADR-045 (separación de funciones), ADR-013


Contexto

Acuerdo AGN 001/2024 art. 4.2.3, parágrafo 4 (compila y deroga el 060/2001): la anulación de un número de radicado exige constancia escrita con la justificación, decidida por el jefe del área responsable de archivo o gestión documental. El cargo es parte de lo que acredita la constancia, y no existía en ningún sitio: auth_users solo tiene usuario y correo, y la llave de firma aproximaba el cargo con nombres de grupos.

Decisión

  1. Ficha en auth_users (nombre_completo, cargo; auth 021) que mantiene el administrador: PATCH /api/v1/auth/users/{id}/ficha (USUA_PERM_ADMIN ≥ 3, extra="forbid", asiento auth.usuario_ficha_actualizada con antes y después en la misma transacción, 404 neutro). UserResponse, GET /users y GET /auth/me la devuelven. Descartados: cargo declarado en el body de aprobar (lo escribe quien se beneficia) y atributo de Keycloak como claim (otra cabecera que nadie produce, y acopla el realm).
  2. Instantánea en la decisión: document-service lee auth_users del tenant dentro del UPDATE (ADR-013, sin red ni token) y escribe decidido_nombre/decidido_cargo en la fila decidida; cambiar la ficha después no reescribe quién decidió. Sin ficha completa, 409 aprobador_sin_cargo al aprobar y al rechazar (retirar es desistir, no se acredita). El CHECK ra_decision_acreditada es la última frontera. El asiento de la decisión lleva nombre y cargo.
  3. MCP: la ficha no se edita desde el asistente ([FRO]): acredita a una persona en actos probatorios.

Riesgo declarado

Un administrador puede poner «Jefe de correspondencia» a cualquiera: queda asentado quién lo hizo. No se modela un catálogo de cargos (residuo). Residuo también: la constancia escrita del art. 5 (acta de anulación firmada) y los marcadores *FUNCIONARIO*/*CARGO* de E23, que la ficha deja habilitados.

Ronda de corrección (2026-10-29)

  • Cita. Rige el Acuerdo AGN 001/2024 art. 4.2.3, par. 4 (compila y deroga el 060/2001): la anulación la decide el jefe del área responsable de archivo o gestión documental. Lo que se guarda es una instantánea de nombre y cargo, no una firma.
  • El cargo no prueba competencia. auth_users.cargo es texto libre. La entidad DESIGNA al responsable (auth_users.responsable_gestion_documental, auth 021, fijado por el administrador con la ficha, con asiento antes/después) y _DECIDIR lo exige: aprobar o rechazar sin designación da 409 aprobador_no_designado (fail-closed; el desistimiento del solicitante no se acredita). Postura MCP: la ficha no se ofrece por MCP y aprobar_anulacion sigue sin ofrecerse.