{"id":23859228,"url":"https://github.com/openconext/openconext-dashboard","last_synced_at":"2025-09-08T07:30:51.189Z","repository":{"id":3284417,"uuid":"4324815","full_name":"OpenConext/OpenConext-dashboard","owner":"OpenConext","description":"Dashboard for IdP administrators to view and adminster SP connections","archived":false,"fork":false,"pushed_at":"2025-04-10T08:00:40.000Z","size":27806,"stargazers_count":8,"open_issues_count":69,"forks_count":8,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-10T09:25:01.320Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenConext.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2012-05-14T14:23:03.000Z","updated_at":"2025-04-10T08:00:48.000Z","dependencies_parsed_at":"2024-02-07T10:45:42.134Z","dependency_job_id":"0c66bfa4-c7e3-4938-9ea2-e5500d5c11ed","html_url":"https://github.com/OpenConext/OpenConext-dashboard","commit_stats":null,"previous_names":[],"tags_count":104,"template":false,"template_full_name":null,"purl":"pkg:github/OpenConext/OpenConext-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenConext%2FOpenConext-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenConext%2FOpenConext-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenConext%2FOpenConext-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenConext%2FOpenConext-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenConext","download_url":"https://codeload.github.com/OpenConext/OpenConext-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenConext%2FOpenConext-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274152125,"owners_count":25231285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-03T03:33:05.301Z","updated_at":"2025-09-08T07:30:51.181Z","avatar_url":"https://github.com/OpenConext.png","language":"JavaScript","readme":"# SURFconext Dashboard\n\n[![Build Status](https://travis-ci.org/OpenConext/OpenConext-dashboard.svg)](https://travis-ci.org/OpenConext/OpenConext-dashboard)\n[![codecov.io](https://codecov.io/github/OpenConext/OpenConext-dashboard/coverage.svg)](https://codecov.io/github/OpenConext/OpenConext-dashboard)\n\n### [About OpenConext](#about_openConext)\n\nOpenConext is an OpenSource technology stack offering a proxy (hub) for federated identity management (SAML, OIDC) and related features. OpenConext was developed by SURF, the Dutch National Research and Education Network (NREN), as part of the SURFworks programme, and has since than seen continuous development. SURF runs an instance of the platform for research and education in The Netherlands as SURFconext. More information: OpenConext: [https://www.openconext.org](https://www.openconext.org). SURFconext: [https://www.surfconext.nl](https://www.surfconext.nl).\n\n### [About OpenConext-dashboard](#about_openConext-dashboard)\n\nThe OpenConext dashboard is the module that can be used by people managing an Identity Provider (IdP) connected to the (OpenConext) identity hub/proxy. It offers an option for an IdP to check out what SPs (Service Provider) are connected to the proxy, request connection to an SP, look up information about SPs connected to the hub etc. This (IdP) dashboard offers the IdPs a high level of 'DIY', offloading work from the federation operator (less error prone emails to deal with concerning connecting/disconnecting an IdP to an SP, thereby offering scalability (SURF runs SURFconext with hundreds of IdPs) \n\n## [Getting started](#getting_started)\n\n### [System Requirements](#system_requirements)\n\n- Java 21\n- Maven 3\n- NodeJS v14.17.3 (best managed with `nvm`, current version in [.nvmrc](dashboard-gui/.nvmrc)\n- yarn\n\n## [Building and running](#building_and_running)\n\n### [Setup](#setup)\n\n#### [The Server](#server)\n\n    cd dashboard\n\nTo build:\n\n    mvn clean install\n\nTo run locally either start the Application from your IDE or use the spring-boot maven plugin:\n\n    mvn spring-boot:run\n\nIf you want to debug you can either debug the Application in your IDE or use:\n\n    ./debug.sh\n\n\n#### [Mail](#mail)\n\nIn the default `application.properties` the mail host is `localhost` and the port is `1025`. Run mailpit to capture mails.\nSee \u003chttps://github.com/axllent/mailpit\u003e\n    \n#### [Feature toggles](#feature_toggles)\n\nIn the [application.properties](dashboard-server/src/main/resources/application.properties) file you can disable / enable\nall remote interfaces like JIRA, Mail, SAB, VOOT, Statistics, PDP, OIDC, Manage by setting the `dashboard.feature.X`\nto `false` or `true`. Default they are all disabled and mock implementations are used. Using ansible for\ndeployment they can enabled.\n\n#### [The client](#client)\n\n    cd dashboard\n\nInitial setup if you do:\n\n    yarn install\n\nTo build:\n\n    yarn run webpack\n\nTo run locally:\n\n    yarn start\n\nThe browse to the [application homepage](http://localhost:3000/services?mockUser=admin).\n\nA list of available log-ins can be found in the mocked implementation of the [VootClient](dashboard-server/src/main/java/dashboard/shibboleth/mock/MockShibbolethFilter.java).\n\n### [Manage queries](#manage_queries)\n```\ncurl -H 'Content-Type: application/json' -u pdp:secret  -X POST -d '{\"REQUESTED_ATTRIBUTES\":[\"metaDataFields.coin:ss:idp_visible_only\"],\"metaDataFields.coin:ss:idp_visible_only\":\"1\"}' 'https://manage.test2.surfconext.nl//manage/api/internal/search/saml20_sp' | python -m json.tool\n```\n\n### [Testing](#testing)\n\nTo run all JavaScript tests:\n```\ncd client\nyarn test\n```\nOr to run all the tests and do not watch:\n```\ncd client\nCI=true yarn test\n```\n\n### [Jira](#jira)\n```\ncd dashboard-server/src/test/resources/jira-json/\ncurl -X POST --data \"@query_new.json\" -H \"Content-Type: application/json\" -H \"Authorization: Bearer ??\"  \"https://servicedesk.test.surf.nl/jira/rest/api/2/search\"\n```\nTo find transitions:\n```\ncurl -H \"Content-Type: application/json\" -H \"Authorization: Bearer ??\" \"https://servicedesk.test.surf.nl/jira/rest/api/2/issue/CXT-70752/transitions\" | jq .\n```\nThe Jira API key can be found in the environments-external project in SURF gitlab.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenconext%2Fopenconext-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenconext%2Fopenconext-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenconext%2Fopenconext-dashboard/lists"}