Skip to content

OpenConext/OpenConext-manage

Repository files navigation

OpenConext-manage

Build Status codecov.io

Stores and publishes metadata of all entities known to OpenConext

Disclaimer

Note that the original migration from Janus was removed in version 3.0.0. If you want to run the migrations from a Janus database then install version 2.0.8.

  • Java 21
  • Maven 3
  • MongoDB
  • yarn
  • Node v20.8.0 (best managed with nvm, current version in .nvmrc)
  • ansible

If you have installed MongoDB with your package manager, you'll have to enable transactions:

mongosh
> rs.initiate()

This project uses Spring Boot and Maven. To run locally, type:

cd manage-server

mvn spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=dev"

When developing, it's convenient to just execute the applications main-method, which is in Application. Don't forget to set the active profile to dev.

The client is build with react and to get initially started:

cd manage-gui
yarn install
yarn start

See facebook/create-react-app#11762 (comment) for troubleshooting the proxy settings.

Browse to the application homepage.

To add new dependencies:

yarn add package --dev

When new yarn dependencies are added:

yarn install

To run all JavaScript tests:

cd client
yarn test

Or to run all the tests and do not watch - like CI:

cd client
CI=true yarn test

See the Manage github wiki for additional documentation.

New MetaData types must first be described in JSON Schema and the schema must be placed in src/main/resources/metadata_configuration. This is all that is required for the server. Of course support for CRUD in the GUI needs to be coded.

On its classpath, the application has an application.yml file that contains configuration defaults that are convenient when developing.

When the application actually gets deployed to a meaningful platform, it is pre-provisioned with ansible and the application.yml depends on environment specific properties in the group_vars. See the project OpenConext-deploy and the role manage for more information.

For details, see the Spring Boot manual.

The following configurations are not shown in the application.yml file but are available:

Configuration Description Default value
metadata_import.useragent Set a custom (String) value for the User-Agent header used in SAML metadata retrieval requests null

When you want to import existing metaData into your local mongodb you can use the following command:

mongoimport --db metadata --collection saml20_idp --type json --file identity-providers.json --jsonArray

Change requests

cd ./manage-server/src/test/resources/json
curl -u sysadmin:secret -X POST -H 'Content-Type: application/json' -d '@change_request.json' 'https://manage.test2.surfconext.nl/manage/api/internal/change-requests'

Or the other supported flavour: an incremental change

curl -u sp-portal:secret -X POST -H 'Content-Type: application/json' -d '@incremental_change_request.json' 'https://manage.test2.surfconext.nl/manage/api/internal/change-requests'
curl -u sp-portal:secret -X POST -H 'Content-Type: application/json' -d '@incremental_change_request.json' 'http://localhost:8080/manage/api/internal/change-requests'