Stores and publishes metadata of all entities known to OpenConext
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
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'