Go to file
Manuel Aranda Rosales ed13a7adec
testing/ogcore-api/pipeline/head This commit looks good Details
ogcore-debian-package/pipeline/tag This commit looks good Details
ogcore-debian-package/pipeline/head This commit looks good Details
Deleted test command
2025-04-23 17:42:36 +02:00
Jenkins Allos to publish in main 2025-04-10 16:31:22 +02:00
bin refs #377. Creacion de test funcionales para API User 2024-05-27 11:05:03 +02:00
config Updated ogAgent ping updatedAt. Fixed server date 2025-04-23 17:19:35 +02:00
debian Add cronjob to check client status 2025-04-22 11:08:37 +02:00
docker fix_mercure_in_containers (#23) refer #1717 2025-03-17 13:31:30 +01:00
etc Add cronjob to check client status 2025-04-22 11:08:37 +02:00
migrations refs #1864. Added ssh_port and user in imageRepository 2025-04-10 09:53:28 +02:00
public refs #1288. Change folder name 2025-01-15 13:24:43 +01:00
src Deleted test command 2025-04-23 17:42:36 +02:00
swagger-assets refs #451. Added postman collection 2024-06-20 09:06:48 +02:00
templates refs #1288. Change folder name 2025-01-15 13:24:43 +01:00
tests refs #1857. Rename image API integration 2025-04-10 09:50:59 +02:00
translations Improvements in ogLive 2024-12-11 16:51:43 +01:00
.env refs #1555. Install Mercure 2025-02-20 16:17:13 +01:00
.env.prod Updated mercure endpoint for ogcore 2025-03-20 10:39:28 +01:00
.env.test refs #377. Creacion de test funcionales para API User 2024-05-27 11:05:03 +02:00
.gitignore Added debian packaging, refs #1706 2025-03-13 16:46:16 +01:00
CHANGELOG.md Updated changelog 2025-04-23 17:29:05 +02:00
Jenkinsfile Improve Jenkinsfile 2024-11-20 18:40:11 +01:00
README.md refs #955. New database fields 2024-10-16 09:12:03 +02:00
compose.override.yaml refs #1555. Install Mercure 2025-02-20 16:17:13 +01:00
composer.json refs #1555. Install Mercure 2025-02-20 16:17:13 +01:00
composer.lock refs #1555. Install Mercure 2025-02-20 16:17:13 +01:00
docker-compose-ci-template.yaml Updated APIS, and general improvements 2024-11-20 16:02:20 +01:00
docker-compose-ci.yaml Updated APIS, and general improvements 2024-11-20 16:02:20 +01:00
docker-compose-deploy.yml - Expose port in docker container 2025-03-17 14:00:36 +01:00
docker-compose.yaml refs #1555. Install Mercure 2025-02-20 16:17:13 +01:00
entrypoint.sh Added TLS docker 2024-10-08 16:20:43 +02:00
env.json refs #1471. Changed relationship image-imageRepositories 2025-02-06 18:27:50 +01:00
package.sh refs #1570 Adds script to create Debian package 2025-02-20 14:14:06 +01:00
phpunit.xml.dist Some improvements. Fixed multi select actions 2025-03-05 17:21:57 +01:00
symfony.lock refs #1555. Install Mercure 2025-02-20 16:17:13 +01:00

README.md

ogCore project

Descripción

ogCore es el servicio central de OpenGnsys, diseñado para proporcionar funcionalidades a través de una API RESTful. Esta herramienta utiliza tecnología PHP, aprovechando el framework Symfony y el ORM Doctrine para gestionar la base de datos. A continuación, se detallan los pasos necesarios para desplegar el proyecto en un entorno de desarrollo.

Versiones y tecnologías utilizadas

  • PHP 8.3
  • Symfony 6.4
  • Doctrine 2.19
  • API Platform 3.2
  • MariaDB 10.11

Requisitos

Antes de comenzar, asegúrate de tener los siguientes requisitos:

  • Docker
  • Docker compose

Instalación

Desplegar contenedores

Para que no haya conflictos entre los puertos, asegúrate de que no tienes ningún servicio corriendo en los puertos 8080 y 3306.

docker compose up --build -d

Comprobamos que se han levantado correctamente bien los 3 contenedores de la aplicación:

docker ps

Y deberiamos ver algo parecido a :

  • ogcore-nginx
  • ogcore-php
  • ogcore-database

Instalamos dependencias

docker exec ogcore-php composer install
docker exec ogcore-php php bin/console lexik:jwt:generate-keypair --overwrite

Comprobamos, que el contenedor de Nginx, tiene el puerto 8080 levantado correctamente, asi que tan solo tendremos que acceder a la siguiente URL:

http://127.0.0.1:8080/docs

Si todo ha ido bien, deberiamos ver la documentación de la API de ogCore.

Para poder actualizar la base de datos:

Para inicializar la base de datos:

docker exec ogcore-php php bin/console doctrine:migrations:migrate --no-interaction
docker exec ogcore-php php bin/console doctrine:fixtures:load --no-interaction
docker exec ogcore-php php bin/console app:load-default-user-groups #cargamos los grupos por defecto
docker exec ogcore-php php bin/console app:load-default-commands #cargamos los commands por defecto

UX Api Platform

Api Platform proporciona una interfaz de usuario para interactuar con la API de ogCore. Para acceder a la interfaz de usuario, accede a la siguiente URL:

http://127.0.0.1:8080/docs

Para poder autenticarte, necesitas un token JWT. Para obtenerlo, accedemos al endpoint de autenticación "auth/login":

img.png img.png Obtenemos el token y lo introducimos en la interfaz de usuario de Api Platform de la siguiente manera:

img.png

Ahora, ya podemos interactuar con la API de ogCore. Para comprobar que todo está correcto, podemos fijarnos en los headers de las llamadas Curl, y ver que el token JWT se ha introducido correctamente.

Test

Para ejecutar los test, ejecutamos el siguiente comando:

docker compose exec php bin/phpunit    

Reiniciar base de datos

Es posible que en momentos de desarrollo, sea necesario volver a cargar la base de datos y actualizar los esquemas de la misma, para ello, ejecutamos el siguiente comando:

docker exec ogcore-php php bin/console doctrine:database:drop --force
docker exec ogcore-php php bin/console doctrine:database:create

Migraciones de datos

Para poder migrar los datos desde la base de datos "antigua", previamente necesitamos poder tener un esquema de base de datos con un dump de OpenGnsys. Es decir:

- Creamos una base de datos temporal simulando una insancia de OpenGnsys 1.1. La solicitaremos al equipo de desarrollo de las universidades
- Necesitaremos un dump de la base de datos de OpenGnsys 1.1.

Mediante doctrine, creamos la base de datos temporal:

docker exec ogcore-php php bin/console doctrine:database:create --connection=og_1

img.png

Aqui podemos ver como tenemos las 2 bases de datos. OgCore es la actual, donde estamos desarrollando, y ogcore_old_og es la base de datos temporal que acabamos de crear.

Aqui vendria el paso de cargar el dump en dicha base de datos, ya que contiene informacion sensible, no se aloja en el repositorio, por eso tendremos que solicitarla al equipo correspondiente. Una vez tengamos la base de datos cargada, podremos ejecutar las migraciones de datos:

--- Migraciones de OpenGnsys.  ---
docker exec ogcore-php php bin/console opengnsys:migration:organizational-unit #cargamos las unidades organizativas
docker exec ogcore-php php bin/console opengnsys:migration:hardware-profile #cargamos los perfiles de hardware
docker exec ogcore-php php bin/console opengnsys:migration:clients #cargamos los clientes
docker exec ogcore-php php bin/console opengnsys:migration:os #cargamos los sistemas operativos
docker exec ogcore-php php bin/console opengnsys:migration:image #cargamos las imagenes
docker exec ogcore-php php bin/console opengnsys:migration:software-profile #cargamos los software profiles

Objetos de interés

Se ha incluido un .zip con las colecciones de de API de ogCore para poder trabajar, hacer pruebas, y demás en Postman. Para importarlos, tan solo tendremos que ir a la pestaña de importar, y seleccionar el archivo .zip.

Visualizar coleccion Postman