kit-data-manager / kit-data-manager/pit-service

Add different keycloak access roles

Open
#106 0 comments 0 reactions 0 assignees View on GitHub
breaking change documentation enhancement
Dominant language
Java
Stars
3
Forks
4
PR merge metrics
No merged PRs in 30d

Description

With JWT and KeyCloak we can differentiate between roles of users. Currently, we only use it to allow access or to deny it. Preliminary plan:

## Management Endpoints

- everybody sees info and basic health (up or down)
- authenticated users see in addition complete health
- special roles also see other actuators, e.g., beans, loggers, configuration properties

References:

- see also [this discussion](https://github.com/kit-data-manager/metastore2/pull/187/files/65db847d615e50b1689a37c1bd281348cc88944e#r1094421066)
- [Management Endpoint Config Documentation in MetaStore2](https://github.com/kit-data-manager/metastore2/blob/2a68830e94a9535c52e71d47c1c42b2e3be8b9a9/settings/application-default.properties#L99)

## Typed PID Maker API

Different roles (preliminary names) for:

- Creating PIDs (role_creator)
- Updating/curating PIDs (role_curator)
- Resolving functionalities (role_researcher)
- Validation functionalities (role_creator, role_curator, role_validator, role_researcher)

The validator role may be unnecessary. I considered if there may be applications that will need validation, but not resolving (which makes them different from the researcher role). And I guess being a little more granular does not hurt (thinking about the history of the Android operating system, for example). But detailed evaluation on this will follow.

## ToDos

- [ ] Detailed planning and evaluation
- [ ] implementation & testing
- [ ] Documentation in README and on the portfolio webpage

Contributor guide

Open the contributing guide

Research direction

Start with the linked discussion and the MetaStore2 application-default.properties management endpoint configuration. Review the proposed management endpoint visibility and Typed PID Maker roles, then establish the detailed plan before implementation and testing. Done includes agreed role behavior, tests, and updates to the README and portfolio webpage.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring-boot
Domain
api, authorization, backend, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.