Skip to content

Feat(projects): Implements managemente project for admin (CRUD) #14

Description

@liamburja

Historia de usuario
Como administrador de la organización, quiero crear, listar, editar y eliminar proyectos, para poder organizar el trabajo de vault, openreport, state-iac (y futuras herramientas) en unidades independientes.

Contexto
Es la base del nuevo modelo de jerarquía Organization > Project > Module. Esta issue cubre únicamente la entidad Project y su gestión CRUD desde el panel de admin. La activación de módulos por proyecto, y la asignación de usuarios/roles/permisos por proyecto, se implementan en issues posteriores.

Criterios de aceptación

  • Existe una vista de administración (p.ej. /settings/projects) accesible solo para usuarios con rol admin.
  • El admin puede crear un proyecto con al menos: nombre, slug/id único, descripción opcional.
  • El admin puede ver un listado de todos los proyectos existentes.
  • El admin puede editar el nombre/descripción de un proyecto existente.
  • El admin puede eliminar (o archivar) un proyecto.
  • Un usuario no-admin no puede acceder ni a la vista ni a los endpoints de escritura (403).
  • Validación: no se permiten proyectos con slug duplicado ni nombre vacío.
  • Se define qué ocurre con los datos/recursos asociados al eliminar un proyecto (soft delete recomendado, para no perder referencias de vault/openreport/state-iac).

Notas técnicas

Seguir el patrón ya existente en auth (roles): capas domain/application/infrastructure + endpoints REST en /api/projects con guard isAdmin(locals.user).
Definir el modelo de datos: Project { id, name, slug, description?, status (active/archived), createdAt, updatedAt }. La referencia a Organization se puede omitir por ahora (instancia única) pero dejar el campo preparado (organizationId) para cuando existan múltiples organizaciones.
Resolver la colisión de nombre con el projects module actual (state-iac) antes de tocar rutas.

Fuera de alcance (issues futuras)
Activar/desactivar módulos por proyecto.
Asignar usuarios, roles y permisos por proyecto.
Settings propias de cada proyecto.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions