Skip to content

Commit e2dbaad

Browse files
beyondnetPeruclaude
andcommitted
feat(fs-13/gap-7+8): align ParameterScope model + add IdpConfiguration Archive lifecycle
Gap #7 — Scope model alignment: - ParameterScope extended with SuiteLevel(4) and ModuleLevel(5) to match ConfigurationScope IDs. SupportsGlobal/Tenant/Suite/Module helpers added. AllScopes updated. No migration required (additive enum values). Gap #8 — IdpConfiguration Archive lifecycle: - IdpConfigStatus.Archived(4) added - IdpConfiguration.Archive(): blocks if Active or already Archived; uses IdpConfigAlreadyArchived / IdpConfigArchivedCannotChange error codes - IdpConfiguration.Update(): now blocks with IdpConfigArchivedCannotChange when config is in Archived state - ArchiveIdpConfigurationCommand + handler added (mirrors Deactivate pattern) - POST /idp-configurations/{id}/archive endpoint added - DomainErrors: IdpConfigAlreadyArchived + IdpConfigArchivedCannotChange added Tracker: FS-13 promoted to Implemented (23 covered, 4 partial). FS-13 breakdown section preserved for reference. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ef7ff0d commit e2dbaad

9 files changed

Lines changed: 91 additions & 16 deletions

File tree

docs/governance/project-es/functional-story-gap-tracker.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Este documento mantiene una vista dinamica de lo que ya esta implementado, lo qu
2020

2121
| Estado | Cantidad | IDs de historia |
2222
|---|---:|---|
23-
| Implementado / utilizable | 22 | [FS-01](../requirements-es/functional-stories/fs-01-user-authentication.md), [FS-02](../requirements-es/functional-stories/fs-02-create-authorization-template.md), [FS-03](../requirements-es/functional-stories/fs-03-register-organization.md), [FS-04](../requirements-es/functional-stories/fs-04-register-system-topology.md), [FS-05](../requirements-es/functional-stories/fs-05-create-profile-manual-template.md), [FS-06](../requirements-es/functional-stories/fs-06-auto-assign-template.md), [FS-07](../requirements-es/functional-stories/fs-07-visual-graph-resolver.md), [FS-08](../requirements-es/functional-stories/fs-08-hosted-login-redirection.md), [FS-09](../requirements-es/functional-stories/fs-09-mfa-passwordless-adaptive-auth.md), [FS-10](../requirements-es/functional-stories/fs-10-external-b2b-access-request-approval.md), [FS-11](../requirements-es/functional-stories/fs-11-user-document-upload.md), [FS-15](../requirements-es/functional-stories/fs-15-notification-rules.md), [FS-16](../requirements-es/functional-stories/fs-16-access-enforcement-policy.md), [FS-17](../requirements-es/functional-stories/fs-17-maintain-system-roles.md), [FS-18](../requirements-es/functional-stories/fs-18-manage-local-user-password.md), [FS-19](../requirements-es/functional-stories/fs-19-admin-password-reset-validity-management.md), [FS-20](../requirements-es/functional-stories/fs-20-system-parameter-management.md), [FS-21](../requirements-es/functional-stories/fs-21-tenant-signup-request-approval.md), [FS-22](../requirements-es/functional-stories/fs-22-user-signup-request-approval.md), [FS-25](../requirements/functional-stories/fs-25-ddd-domain-resource-hierarchy.es.md), [FS-26](../requirements/functional-stories/fs-26-auth-graph-preview-from-profile.es.md), [FS-27](../requirements/functional-stories/fs-27-state-change-consistency-broken-rules.es.md) |
24-
| Parcial | 5 | [FS-12](../requirements-es/functional-stories/fs-12-role-promotion-process.md), [FS-13](../requirements-es/functional-stories/fs-13-hierarchical-config.md), [FS-14](../requirements-es/functional-stories/fs-14-delegated-management.md), [FS-23](../requirements-es/functional-stories/fs-23-profile-access-request.md), [FS-24](../requirements-es/functional-stories/fs-24-profile-request-approval.md) |
23+
| Implementado / utilizable | 23 | [FS-01](../requirements-es/functional-stories/fs-01-user-authentication.md), [FS-02](../requirements-es/functional-stories/fs-02-create-authorization-template.md), [FS-03](../requirements-es/functional-stories/fs-03-register-organization.md), [FS-04](../requirements-es/functional-stories/fs-04-register-system-topology.md), [FS-05](../requirements-es/functional-stories/fs-05-create-profile-manual-template.md), [FS-06](../requirements-es/functional-stories/fs-06-auto-assign-template.md), [FS-07](../requirements-es/functional-stories/fs-07-visual-graph-resolver.md), [FS-08](../requirements-es/functional-stories/fs-08-hosted-login-redirection.md), [FS-09](../requirements-es/functional-stories/fs-09-mfa-passwordless-adaptive-auth.md), [FS-10](../requirements-es/functional-stories/fs-10-external-b2b-access-request-approval.md), [FS-11](../requirements-es/functional-stories/fs-11-user-document-upload.md), [FS-13](../requirements-es/functional-stories/fs-13-hierarchical-config.md), [FS-15](../requirements-es/functional-stories/fs-15-notification-rules.md), [FS-16](../requirements-es/functional-stories/fs-16-access-enforcement-policy.md), [FS-17](../requirements-es/functional-stories/fs-17-maintain-system-roles.md), [FS-18](../requirements-es/functional-stories/fs-18-manage-local-user-password.md), [FS-19](../requirements-es/functional-stories/fs-19-admin-password-reset-validity-management.md), [FS-20](../requirements-es/functional-stories/fs-20-system-parameter-management.md), [FS-21](../requirements-es/functional-stories/fs-21-tenant-signup-request-approval.md), [FS-22](../requirements-es/functional-stories/fs-22-user-signup-request-approval.md), [FS-25](../requirements/functional-stories/fs-25-ddd-domain-resource-hierarchy.es.md), [FS-26](../requirements/functional-stories/fs-26-auth-graph-preview-from-profile.es.md), [FS-27](../requirements/functional-stories/fs-27-state-change-consistency-broken-rules.es.md) |
24+
| Parcial | 4 | [FS-12](../requirements-es/functional-stories/fs-12-role-promotion-process.md), [FS-14](../requirements-es/functional-stories/fs-14-delegated-management.md), [FS-23](../requirements-es/functional-stories/fs-23-profile-access-request.md), [FS-24](../requirements-es/functional-stories/fs-24-profile-request-approval.md) |
2525
| Diferido | 0 ||
2626

2727
## Leyenda de Seguimiento
@@ -40,7 +40,6 @@ Este documento mantiene una vista dinamica de lo que ya esta implementado, lo qu
4040
| FS | Historia | Senal | Prioridad | Criticidad | Complejidad | Responsable | Objetivo | Estado | Brecha principal | Siguiente accion |
4141
|---|---|---|---|---|---|---|---|---|---|---|
4242
| [FS-12](../requirements-es/functional-stories/fs-12-role-promotion-process.md) | Execute Role Promotion Process | Amber | P1 | Alta | Alta | IGA | TBD | Abierto | El flujo de promocion aun necesita la revision completa de manager/seguridad, ejecucion, verificacion y cierre del analisis de impacto. | Terminar la maquina de estados de promocion y alinear los pasos de aprobacion con el contrato de dominio. |
43-
| [FS-13](../requirements-es/functional-stories/fs-13-hierarchical-config.md) | Configurar Parametros Jerarquicos del Sistema | Amber | P1 | Alta | Alta | Plataforma / Configuracion | TBD | Abierto | 8 brechas especificas identificadas (ver desglose abajo): la jerarquia solo resuelve 2 niveles, el flag no-sobrescribible no existe, los alcances Suite/Module no se procesan, la proteccion de valores sensibles es incompleta. | Trabajar las brechas en orden de prioridad segun el desglose de FS-13. |
4443
| [FS-14](../requirements-es/functional-stories/fs-14-delegated-management.md) | Delegate User Management Between Administrators | Amber | P2 | Media | Media | Identity | TBD | Abierto | La delegacion existe como modelo, pero el alcance de punta a punta y el flujo de auditoria aun necesitan validacion final. | Cerrar la cobertura de acciones delegadas y verificar la ruta de aceptacion. |
4544
| [FS-23](../requirements-es/functional-stories/fs-23-profile-access-request.md) | Profile Access Request from Lobby User | Amber | P1 | Alta | Alta | Approvals | TBD | Abierto | El modelo de solicitud aun necesita el rol pedido y la fidelidad de auditoria esperada por el diseno. | Extender el contrato de la solicitud y el seguimiento de su ciclo de vida. |
4645
| [FS-24](../requirements-es/functional-stories/fs-24-profile-request-approval.md) | Profile Request Approval and Manual Assignment | Amber | P1 | Alta | Alta | Approvals | TBD | Abierto | El registro de decision aun necesita rol solicitado, rol otorgado, razon y resultado de notificacion. | Extender el payload del resultado de aprobacion y el modelo de persistencia. |
@@ -59,8 +58,8 @@ Este documento mantiene una vista dinamica de lo que ya esta implementado, lo qu
5958
| 4 | ~~**Proteccion de valores sensibles**~~**Hecho** — Cifrado AES-256-CBC integrado de punta a punta: cifra en Create/Update (handler), descifra al cargar el cache (ConfigurationProvider), redacta `"***"` en DTOs para llamantes no admin. `IValueEncryptionService` + `AesValueEncryptionService` agregados. Clave desde `AppConfiguration:EncryptionKey` (fallback de dev usa clave cero). 9 tests: round-trip, idempotencia, deteccion de prefijo, fallback dev, guard de longitud de clave. | 🟢 Cerrado | RN-5 || `AesValueEncryptionService.cs`, `CreateAppConfigurationCommandHandler.cs`, `ConfigurationProvider.cs`, query handlers |
6059
| 5 | ~~**Endpoint `/resolve` faltante**~~**Hecho**`GET /app-configurations/resolve?code=X&tenantId=Y&suiteId=Z&moduleId=W` agregado. `ResolveAppConfigurationQuery/Handler` conectado a `IConfigurationProvider.GetWithPrecedence`. Retorna `ResolvedAppConfigurationDto` con `ResolvedScope`, `SourceConfigId`, flag `Found`. Valores cifrados se redactan para no-admin. 5 nuevos tests. | 🟢 Cerrado | CA-3 || `ResolveAppConfigurationQueryHandler.cs`, `AppConfigurationQueryEndpoints.cs` |
6160
| 6 | ~~**Sin endpoints REST para Parameters**~~**Hecho (backend)** — Repositorios, commands y endpoints REST agregados para ParameterDefinition (Create/Update/Archive), ParameterGlobalValue (Create/Update/Publish/Archive) y ParameterTenantValue (Create/Update). Rehydration agregada al ConfigurationAggregateFactory. Implementaciones InMemory para dev/tests. Panel frontend permanece diferido. | 🟢 Cerrado | CA-1 || `SqlServerParameterRepositories.cs`, `ParameterDefinitionCommands.cs`, `ParameterValueCommands.cs`, `ParameterEndpoints.cs` |
62-
| 7 | **Inconsistencia del modelo de alcance** `ParameterScope` (3 valores: GlobalOnly/TenantOnly/GlobalAndTenant) y `ConfigurationScope` (5 valores: Global/Tenant/User/Suite/Module) son incompatibles. El resolver jerarquico no puede unificarse hasta que se alineen. | 🟡 P3 / Baja | RN-1 | Decidir un unico modelo de alcance. Migrar `ParameterScope` para usar los valores de `ConfigurationScope`, o agregar Suite y Module a `ParameterScope`. Actualizar todos los usos. | `Ums.Domain/Configuration/Parameter/ValueObjects/ParameterScope.cs`, `Ums.Domain/Enums/ConfigurationScope.cs` |
63-
| 8 | **`IdpConfiguration` sin ciclo de vida Archive** — Solo existen Activate/Deactivate. No hay comando/endpoint Archive para retirar permanentemente una configuracion IdP. | 🟡 P3 / Baja | Completitud del ciclo de vida | Agregar `ArchiveIdpConfigurationCommand` + handler + endpoint `POST /idp-configurations/{id}/archive`, replicando el patron de archive de `AppConfiguration`. | `Ums.Application/Configuration/IdpConfiguration/Commands/`, `Ums.Presentation/Endpoints/Configuration/IdpConfiguration/` |
61+
| 7 | ~~**Inconsistencia del modelo de alcance**~~**Hecho** `ParameterScope` extendido con `SuiteLevel(4)` y `ModuleLevel(5)` que coinciden con los IDs de `ConfigurationScope`. Helpers `SupportsGlobal/Tenant/Suite/Module` agregados. `AllScopes` actualizado. No requiere migracion (valores son aditivos). | 🟢 Cerrado | RN-1 | | `Ums.Domain/Configuration/Parameter/ValueObjects/ParameterScope.cs` |
62+
| 8 | ~~**`IdpConfiguration` sin ciclo de vida Archive**~~**Hecho**`IdpConfigStatus.Archived(4)` agregado. Metodo de dominio `IdpConfiguration.Archive()` agregado (bloquea si esta Active o ya Archived). `ArchiveIdpConfigurationCommand` + handler + endpoint `POST /idp-configurations/{id}/archive` agregados. Update ahora bloquea en estado Archived. | 🟢 Cerrado | Completitud del ciclo de vida || `IdpConfigStatus.cs`, `IdpConfiguration.cs`, `ArchiveIdpConfigurationCommand*.cs`, `IdpConfigurationEndpoints.cs` |
6463

6564
---
6665

@@ -72,4 +71,4 @@ Este documento mantiene una vista dinamica de lo que ya esta implementado, lo qu
7271

7372
## Ultima Revision
7473

75-
2026-06-04 (FS-13 desglose detallado)
74+
2026-06-04 (FS-13 completamente implementado — 8 brechas cerradas)

0 commit comments

Comments
 (0)