From c4b822b818fd9491111098f398756b066f0fcc0c Mon Sep 17 00:00:00 2001 From: Mirek Simek Date: Fri, 10 May 2024 19:34:27 +0200 Subject: [PATCH 1/3] initial version --- .editorconfig | 41 +++++++ .gitignore | 64 ++++++++++ AUTHORS.rst | 14 +++ CHANGES.rst | 13 ++ CONTRIBUTING.rst | 118 ++++++++++++++++++ INSTALL.rst | 8 ++ LICENSE | 21 ++++ MANIFEST.in | 37 ++++++ README.md | 46 +++++++ format.sh | 3 + oidc_einfra/__init__.py | 14 +++ oidc_einfra/communities.py | 108 ++++++++++++++++ oidc_einfra/jwk2pem.py | 11 ++ oidc_einfra/remote.py | 224 +++++++++++++++++++++++++++++++++ oidc_einfra/version.py | 14 +++ pyproject.toml | 3 + setup.cfg | 31 +++++ setup.py | 3 + tests/__init__.py | 0 tests/conftest.py | 238 +++++++++++++++++++++++++++++++++++ tests/test_perun_groups.py | 245 +++++++++++++++++++++++++++++++++++++ 21 files changed, 1256 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 AUTHORS.rst create mode 100644 CHANGES.rst create mode 100644 CONTRIBUTING.rst create mode 100644 INSTALL.rst create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 README.md create mode 100755 format.sh create mode 100644 oidc_einfra/__init__.py create mode 100644 oidc_einfra/communities.py create mode 100644 oidc_einfra/jwk2pem.py create mode 100644 oidc_einfra/remote.py create mode 100644 oidc_einfra/version.py create mode 100644 pyproject.toml create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 tests/__init__.py create mode 100644 tests/conftest.py create mode 100644 tests/test_perun_groups.py diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..07b2805 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2023 CESNET. +# +# CESNET-OpenID-Remote is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. + +root = true + +[*] +indent_style = space +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +# Python files +[*.py] +indent_size = 4 +# isort plugin configuration +known_first_party = cesnet_openid_remote +multi_line_output = 2 +default_section = THIRDPARTY +skip = .eggs + +# RST files (used by sphinx) +[*.rst] +indent_size = 4 + +# CSS, HTML, JS, JSON, YML +[*.{css,html,js,json,yml}] +indent_size = 2 + +# Matches the exact files either package.json or .github/workflows/*.yml +[{package.json,.github/workflows/*.yml}] +indent_size = 2 + +# Dockerfile +[Dockerfile] +indent_size = 4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..12d2d3d --- /dev/null +++ b/.gitignore @@ -0,0 +1,64 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# Idea software family +.idea/ + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Vim swapfiles +.*.sw? +.venv/ +.env diff --git a/AUTHORS.rst b/AUTHORS.rst new file mode 100644 index 0000000..47de277 --- /dev/null +++ b/AUTHORS.rst @@ -0,0 +1,14 @@ +.. + Copyright (C) 2023 CESNET. + + CESNET-OpenID-Remote is free software; you can redistribute it and/or + modify it under the terms of the MIT License; see LICENSE file for more + details. + +Authors +======= + +CESNET OIDC Auth backend for OARepo + +- Miroslav Bauer +- Juraj Trappl diff --git a/CHANGES.rst b/CHANGES.rst new file mode 100644 index 0000000..353ddb4 --- /dev/null +++ b/CHANGES.rst @@ -0,0 +1,13 @@ +.. + Copyright (C) 2023 CESNET. + + CESNET-OpenID-Remote is free software; you can redistribute it and/or + modify it under the terms of the MIT License; see LICENSE file for more + details. + +Changes +======= + +Version 0.1.0 (released TBD) + +- Initial public release. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..00c3aef --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,118 @@ +Contributing +============ + +Contributions are welcome, and they are greatly appreciated! Every +little bit helps, and credit will always be given. + +Types of Contributions +---------------------- + +Report Bugs +~~~~~~~~~~~ + +Report bugs at https://github.com/oarepo/cesnet-openid-remote/issues. + +If you are reporting a bug, please include: + +* Your operating system name and version. +* Any details about your local setup that might be helpful in troubleshooting. +* Detailed steps to reproduce the bug. + +Fix Bugs +~~~~~~~~ + +Look through the GitHub issues for bugs. Anything tagged with "bug" +is open to whoever wants to implement it. + +Implement Features +~~~~~~~~~~~~~~~~~~ + +Look through the GitHub issues for features. Anything tagged with "feature" +is open to whoever wants to implement it. + +Write Documentation +~~~~~~~~~~~~~~~~~~~ + +CESNET-OpenID-Remote could always use more documentation, whether as part of the +official CESNET-OpenID-Remote docs, in docstrings, or even on the web in blog posts, +articles, and such. + +Submit Feedback +~~~~~~~~~~~~~~~ + +The best way to send feedback is to file an issue at +https://github.com/oarepo/cesnet-openid-remote/issues. + +If you are proposing a feature: + +* Explain in detail how it would work. +* Keep the scope as narrow as possible, to make it easier to implement. +* Remember that this is a volunteer-driven project, and that contributions + are welcome :) + +Get Started! +------------ + +Ready to contribute? Here's how to set up `cesnet-openid-remote` for local development. + +1. Fork the `oarepo/cesnet-openid-remote` repo on GitHub. +2. Clone your fork locally: + + .. code-block:: console + + $ git clone git@github.com:your_name_here/cesnet-openid-remote.git + +3. Install your local copy into a virtualenv. Assuming you have + virtualenvwrapper installed, this is how you set up your fork for local + development: + + .. code-block:: console + + $ mkvirtualenv cesnet-openid-remote + $ cd cesnet-openid-remote/ + $ pip install -e .[all] + +4. Create a branch for local development: + + .. code-block:: console + + $ git checkout -b name-of-your-bugfix-or-feature + + Now you can make your changes locally. + +5. When you're done making changes, check that your changes pass tests: + + .. code-block:: console + + $ ./run-tests.sh + + The tests will provide you with test coverage and also check PEP8 + (code style), PEP257 (documentation), flake8 as well as build the Sphinx + documentation and run doctests. + +6. Commit your changes and push your branch to GitHub: + + .. code-block:: console + + $ git add . + $ git commit -s + -m "component: title without verbs" + -m "* NEW Adds your new feature." + -m "* FIX Fixes an existing issue." + -m "* BETTER Improves and existing feature." + -m "* Changes something that should not be visible in release notes." + $ git push origin name-of-your-bugfix-or-feature + +7. Submit a pull request through the GitHub website. + +Pull Request Guidelines +----------------------- + +Before you submit a pull request, check that it meets these guidelines: + +1. The pull request should include tests and must not decrease test coverage. +2. If the pull request adds functionality, the docs should be updated. Put + your new functionality into a function with a docstring. +3. The pull request should work for Python 3.6, 3.7, 3.8 and 3.9. Check + https://github.com/inveniosoftware/oarepo/cesnet-openid-remote/actions?query=event%3Apull_request + and make sure that the tests pass for all supported Python versions. diff --git a/INSTALL.rst b/INSTALL.rst new file mode 100644 index 0000000..610ea7a --- /dev/null +++ b/INSTALL.rst @@ -0,0 +1,8 @@ +Installation +============ + +oarepo-oidc-einfra is on PyPI so all you need is: + +.. code-block:: console + + $ pip install oarepo-oidc-einfra diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4664035 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2023 CESNET. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..6c1e415 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2023 CESNET. +# +# CESNET-OpenID-Remote is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. + +# TODO: Generate this manifest file by running the following commands: +# (please sort the lines in this file after running below commands) +# +# git init +# git add -A +# pip install -e .[all] +# check-manifest -u + +include .dockerignore +include .editorconfig +include .tx/config +prune docs/_build +recursive-include .github/workflows *.yml +recursive-include cesnet_openid_remote/translations *.po *.pot *.mo +include *.rst +include *.sh +include *.txt +include LICENSE +include pytest.ini +recursive-exclude example *.py +recursive-exclude example *.sh +recursive-exclude tests *.json +recursive-exclude examples *.db +recursive-exclude examples *.sh +include *.yml +recursive-include cesnet_openid_remote *.py +recursive-exclude tests * +recursive-exclude examples * +recursive-exclude .github * diff --git a/README.md b/README.md new file mode 100644 index 0000000..8efbffb --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# E-infra authentication and authorization module for InvenioRDM + +This remote backend adds support for Czech e-infra AAI solution - login.e-infra.cz +allowing all members of czech academic community can use their home institution +credentials to log in. + +## Installation + +Add the module to your repository's pyproject.toml: + +``` toml + +dependencies = [ + "oidc-einfra>=1.0.0", + # ... +] + +## Configuration + +1. Register a new application with e-infra OIDC Provider at https://spadmin.e-infra.cz/. +When registering the application ensure that the *Redirect URI* points to: +```url +https://:5000/oauth/authorized/e-infra/ +``` +2. Grab the *Client ID* and *Client Secret* after registering the application + and add them to your ENVIRONMENT variables: +```python +INVENIO_EINFRA_CONSUMER_KEY=*Client ID* +INVENIO_EINFRA_CONSUMER_SECRET=*Client Secret* +``` +3. Add the remote application to the site's `invenio.cfg`: + +```python +from oidc_einfra import EINFRA_LOGIN_APP + +OAUTHCLIENT_REMOTE_APPS = { + "e-infra": EINFRA_LOGIN_APP +} +``` + +4. Add the e-infra public key to your invenio.cfg or environment variables: +```python +EINFRA_RSA_KEY=b'-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmho5h/lz6USUUazQaVT3\nPHloIk/Ljs2vZl/RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6/QNaMtynvlSlnkuW\nrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV+bMxkVaElhd\nHNFzUfHv+XqI8Hkc82mIGtyeMQn+VAuZbYkVXnjyCwwa9RmPOSH+O4N4epDXKk1V\nK9dUxf/rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPW\nJDoL092ctPCFlUMBBZ/OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAb\nnwIDAQAB\n-----END PUBLIC KEY-----\n' +``` + +5. Start the server and go to the login page https://127.0.0.1:5000/login/ diff --git a/format.sh b/format.sh new file mode 100755 index 0000000..86b6dc0 --- /dev/null +++ b/format.sh @@ -0,0 +1,3 @@ +black cesnet_openid_remote tests --target-version py310 +autoflake --in-place --remove-all-unused-imports --recursive cesnet_openid_remote tests +isort cesnet_openid_remote tests diff --git a/oidc_einfra/__init__.py b/oidc_einfra/__init__.py new file mode 100644 index 0000000..7b53654 --- /dev/null +++ b/oidc_einfra/__init__.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2023 CESNET. +# +# CESNET-OpenID-Remote is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. + +"""CESNET OIDC Auth backend for OARepo""" + +from .version import __version__ +from .remote import EINFRA_LOGIN_APP + +__all__ = ("__version__", "EINFRA_LOGIN_APP") diff --git a/oidc_einfra/communities.py b/oidc_einfra/communities.py new file mode 100644 index 0000000..8b1b44c --- /dev/null +++ b/oidc_einfra/communities.py @@ -0,0 +1,108 @@ +from collections import defaultdict +from typing import Dict, Set + +from flask import abort +from invenio_access.permissions import system_identity +from invenio_communities import current_communities +from invenio_oauthclient.handlers.token import token_getter +from invenio_oauthclient.oauth import oauth_get_user +from invenio_search.engine import dsl + + +def get_user_community_roles(user) -> Dict[str, Set[str]]: + members_service = current_communities.service.members + search = members_service._search( + "search", + system_identity, + {}, + None, + extra_filter=dsl.Q("term", **{"user.id": str(user.id)}), + ) + + result = search.execute() + ret = defaultdict(set) + for hit in result: + ret[hit["community_id"]].add(hit["role"]) + return ret + + +def get_user_perun_groups(remote): + user_info = remote.get(f"{remote.base_url}userinfo") + try: + return set(user_info.data["eduperson_entitlement"]) + except (AttributeError, KeyError): + return set() + + +def add_user_community_membership(community_id, community_role, user): + data = { + "role": community_role, + "members": [{"type": "user", "id": str(user.id)}], + } + current_communities.service.members.add(system_identity, community_id, data) + + +def get_mapped_communities(perun_groups): + communities = current_communities.service.scan( + system_identity, params={"facets": {"aai_mapping_group": perun_groups}} + ) + ret = {} + for community in communities: + aai_mapping = community.get("custom_fields", {}).get("aai_mapping") + if aai_mapping: + ret[community["id"]] = aai_mapping + return ret + +def remove_user_community_membership(community_id, user): + data = {"members": [{"type": "user", "id": str(user.id)}]} + current_communities.service.members.delete(system_identity, community_id, data) + + +def split_user_roles(mapping, current_roles, perun_groups): + kept_roles = set() + added_roles = set() + for entry in mapping: + if entry["aai_group"] in perun_groups: + role = entry["role"] + if role not in current_roles: + added_roles.add(role) + else: + kept_roles.add(role) + removed_roles = current_roles - kept_roles + return kept_roles, added_roles, removed_roles + + +def account_info_link_perun_groups(remote, *, account_info, **kwargs): + user = oauth_get_user( + remote.consumer_key, + account_info=account_info, + access_token=token_getter(remote)[0], + ) + + if user is not None: + return link_perun_groups(remote, user) + + +def link_perun_groups(remote, user): + user_community_roles = get_user_community_roles(user) + perun_groups = get_user_perun_groups(remote) + communities = get_mapped_communities(perun_groups) + + # add part + for community_id, mapping in communities.items(): + kept_roles, added_roles, removed_roles = split_user_roles( + mapping, user_community_roles.pop(community_id, set()), perun_groups + ) + if len(kept_roles) + len(added_roles) > 1: + abort( + 403, + f"User cannot be in multiple roles: {kept_roles | added_roles}", + ) + if removed_roles: + remove_user_community_membership(community_id, user) + added_roles.update(kept_roles) + for role in added_roles: + add_user_community_membership(community_id, role, user) + + for community_id in user_community_roles: + remove_user_community_membership(community_id, user) diff --git a/oidc_einfra/jwk2pem.py b/oidc_einfra/jwk2pem.py new file mode 100644 index 0000000..daa5d5d --- /dev/null +++ b/oidc_einfra/jwk2pem.py @@ -0,0 +1,11 @@ +import jwcrypto.jwk + +key_dict = { + "e": "AQAB", + "kty": "RSA", + "n": "mho5h_lz6USUUazQaVT3PHloIk_Ljs2vZl_RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6_QNaMtynvlSlnkuWrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV-bMxkVaElhdHNFzUfHv-XqI8Hkc82mIGtyeMQn-VAuZbYkVXnjyCwwa9RmPOSH-O4N4epDXKk1VK9dUxf_rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPWJDoL092ctPCFlUMBBZ_OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAbnw" +} + +key = jwcrypto.jwk.JWK(**key_dict) +pem = key.export_to_pem(False, False) +print(pem) diff --git a/oidc_einfra/remote.py b/oidc_einfra/remote.py new file mode 100644 index 0000000..86402c0 --- /dev/null +++ b/oidc_einfra/remote.py @@ -0,0 +1,224 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2023 CESNET. +# +# CESNET-OpenID-Remote is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. + +import datetime + +import jwt +from invenio_accounts.models import User, UserIdentity +from invenio_db import db +from invenio_oauthclient import current_oauthclient +from invenio_oauthclient.contrib.settings import OAuthSettingsHelper +from invenio_oauthclient.signals import account_info_received + +from oidc_einfra.communities import account_info_link_perun_groups, \ + link_perun_groups + + +class CesnetOAuthSettingsHelper(OAuthSettingsHelper): + """CESNET OIDC Remote Auth backend for OARepo.""" + + def __init__(self): + access_token_url = "https://login.e-infra.cz/oidc/token" + authorize_url = "https://login.e-infra.cz/oidc/authorize" + + super().__init__( + "E-Infra AAI", + "E-Infra authentication and authorization service.", + "https://login.e-infra.cz/oidc/", + "EINFRA", + request_token_params={ + "scope": "openid profile email eduperson_entitlement isCesnetEligibleLastSeen" + }, + access_token_url=access_token_url, + authorize_url=authorize_url, + content_type="application/json", + precedence_mask=None, + signup_options=None, + ) + + self._handlers = dict( + authorized_handler="invenio_oauthclient.handlers:authorized_signup_handler", + signup_handler=dict( + info="oidc_einfra.remote:account_info", + info_serializer="oidc_einfra.remote:account_info_serializer", + setup="oidc_einfra.remote:account_setup", + view="invenio_oauthclient.handlers:signup_handler", + ), + ) + + self._rest_handlers = dict( + authorized_handler="invenio_oauthclient.handlers.rest:authorized_signup_handler", + signup_handler=dict( + info="oidc_einfra.remote:account_info", + info_serializer="oidc_einfra.remote:account_info_serializer", + setup="oidc_einfra.remote:account_setup", + view="invenio_oauthclient.handlers.rest:signup_handler", + ), + response_handler="invenio_oauthclient.handlers.rest:default_remote_response_handler", + authorized_redirect_url="/", + signup_redirect_url="/", + error_redirect_url="/", + ) + + def get_handlers(self): + """Return CESNET auth handlers.""" + return self._handlers + + def get_rest_handlers(self): + """Return CESNET auth REST handlers.""" + return self._rest_handlers + + +_cesnet_app = CesnetOAuthSettingsHelper() + +""" +CESNET OpenID remote app. +""" +EINFRA_LOGIN_APP = _cesnet_app.remote_app + + +def account_info_serializer(remote, resp): + """ + Serialize the account info response object. + + :param remote: The remote application. + :param resp: The response of the `authorized` endpoint. + + :returns: A dictionary with serialized user information. + """ + decoded_token = jwt.decode( + resp["id_token"], + options={"verify_signature": True}, + key=remote.rsa_key, + audience=remote.consumer_key, + algorithms=["RS256"] + ) + + return { + "external_id": decoded_token["sub"], + "external_method": remote.name, + "user": { + "email": decoded_token.get("email"), + "profile": { + "full_name": decoded_token.get("name"), + }, + }, + } + + +def account_info(remote, resp): + """ + Retrieve remote account information used to find local user. + + It returns a dictionary with the following structure: + { + 'external_id': 'sub', + 'external_method': 'perun', + 'user': { + 'email': 'Email address', + 'profile': { + 'full_name': 'Full Name', + }, + } + } + :param remote: The remote application. + :param resp: The response of the `authorized` endpoint. + + :returns: A dictionary with the user information. + """ + handlers = current_oauthclient.signup_handlers[remote.name] + handler_resp = handlers["info_serializer"](resp) + + return handler_resp + + +def account_setup(remote, token, resp): + """ + Perform additional setup after user have been logged in. + + :param remote: The remote application. + :param token: The token value. + :param resp: The response. + """ + decoded_token = jwt.decode( + resp["id_token"], + options={"verify_signature": True}, + algorithms=["RS256"], + key=remote.rsa_key, + audience=remote.consumer_key, + ) + + with db.session.begin_nested(): + token.remote_account.extra_data = { + "full_name": decoded_token["name"], + } + + user = token.remote_account.user + + # Create user <-> external id link. + UserIdentity.create(user, "perun", decoded_token["sub"]) + + link_perun_groups(remote, user) + + +# During overlay initialization. +@account_info_received.connect +def autocreate_user(remote, token=None, response=None, account_info=None): + assert account_info is not None + + email = account_info["user"]["email"] + id, method = account_info["external_id"], account_info["external_method"] + user_profile = { + "affiliations": "", + "full_name": account_info["user"]["profile"]["full_name"], + } + + user_identity = UserIdentity.query.filter_by(id=id, method=method).one_or_none() + if not user_identity: + user = User.query.filter(User.email==email.lower()).one_or_none() + if not user: + user = User(email=email, active=True, user_profile=user_profile) + + """ + Workaround note: + + When we create a user, we need to set 'confirmed_at' property, + because contrary to the default security settings (False), + the config variable SECURITY_CONFIRMABLE is set to True. + Without setting 'confirmed_at' to some value, it is impossible to log in. + """ + user.confirmed_at = datetime.datetime.now() + + with db.session.begin_nested(): + db.session.add(user) + db.session.commit() + + try: + with db.session.begin_nested(): + user_identity = UserIdentity(id=id, method=method, id_user=user.id) + db.session.add(user_identity) + db.session.commit() + except IntegrityError: + raise AlreadyLinkedError( + # dict used for backward compatibility (came from oauthclient) + user, + {"id": external_id, "method": method}, + ) + + else: + assert user_identity.user is not None + + user_identity.user.email = email + user_identity.user.user_profile = user_profile + + with db.session.begin_nested(): + db.session.add(user_identity.user) + db.session.commit() + + +account_info_received.connect(account_info_link_perun_groups) diff --git a/oidc_einfra/version.py b/oidc_einfra/version.py new file mode 100644 index 0000000..a03ade6 --- /dev/null +++ b/oidc_einfra/version.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2023 CESNET. +# +# CESNET-OpenID-Remote is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. + +"""Version information for CESNET-OpenID-Remote. +This file is imported by ``oidc_einfra.__init__``, +and parsed by ``setup.py``. +""" + +__version__ = "3.0.0" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..8289f07 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build_system] +requires = ["setuptools", "wheel", "babel>2.8"] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..fedca23 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,31 @@ +[metadata] +name = oarepo-oidc-einfra +version = 1.0.0 +description = E-infra OIDC Auth backend for OARepo +authors = Miroslav Bauer , Juraj Trappl +readme = README.md +long_description = file:README.md +long_description_content_type = text/markdown + +packages = find: +include_package_data = True + +[options] +python = >=3.9 +install_requires = + oarepo-communities + +[options.package_data] +* = *.json, *.rst, *.md, *.json5, *.jinja2, *.po, *.mo, *.pot, *.js, *.jsx, *.less, *.jinja + +[options.packages.find] +exclude = + tests + tests.* + +[options.extras_require] +devs = + check-manifest +tests = + pytest-invenio + oarepo>=12 diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..fc1f76c --- /dev/null +++ b/setup.py @@ -0,0 +1,3 @@ +from setuptools import setup + +setup() \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..d8a9a01 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,238 @@ +import copy +import os +from unittest.mock import Mock + +import pytest +from invenio_access.permissions import system_identity +from invenio_app.factory import create_api +from invenio_communities.cli import create_communities_custom_field +from invenio_communities.communities.records.api import Community +from invenio_communities.proxies import current_communities +from oarepo_communities.cf.aai import AAIMappingCF + +from oidc_einfra import remote + + +@pytest.fixture(scope="module") +def create_app(instance_path, entry_points): + """Application factory fixture.""" + + return create_api + + +@pytest.fixture(scope="module") +def community_service(app): + """Community service.""" + return current_communities.service + + +@pytest.fixture(scope="module") +def member_service(community_service): + """Members subservice.""" + return community_service.members + + +@pytest.fixture(scope="module") +def app_config(app_config): + # Custom fields + app_config["JSONSCHEMAS_HOST"] = "localhost" + app_config[ + "RECORDS_REFRESOLVER_CLS" + ] = "invenio_records.resolver.InvenioRefResolver" + app_config[ + "RECORDS_REFRESOLVER_STORE" + ] = "invenio_jsonschemas.proxies.current_refresolver_store" + + app_config["COMMUNITIES_CUSTOM_FIELDS"] = [ + AAIMappingCF("aai_mapping"), + ] + app_config["SEARCH_HOSTS"] = [ + { + "host": os.environ.get("OPENSEARCH_HOST", "localhost"), + "port": os.environ.get("OPENSEARCH_PORT", "9200"), + } + ] + + app_config["CACHE_TYPE"] = "SimpleCache" # Flask-Caching related configs + app_config["CACHE_DEFAULT_TIMEOUT"] = 300 + + app_config["OAUTHCLIENT_REMOTE_APPS"] = {"eduid": remote.REMOTE_APP} + app_config["PERUN_APP_CREDENTIALS_CONSUMER_KEY"] = "lalala" + return app_config + + +@pytest.fixture(scope="function") +def minimal_community(): + """Minimal community metadata.""" + return { + "access": { + "visibility": "public", + "record_policy": "open", + }, + "slug": "public", + "metadata": { + "title": "My Community", + }, + } + + +@pytest.fixture(scope="function") +def minimal_community2(minimal_community): + edited = copy.deepcopy(minimal_community) + edited["slug"] = "comm2" + return edited + + +@pytest.fixture(scope="module") +def users(UserFixture, app, database): + """Users.""" + users = {} + for r in ["owner", "manager", "curator", "reader"]: + u = UserFixture( + email=f"{r}@{r}.org", + password=r, + username=r, + user_profile={ + "full_name": f"{r} {r}", + "affiliations": "CERN", + }, + preferences={ + "visibility": "public", + "email_visibility": "restricted", + }, + active=True, + confirmed=True, + ) + u.create(app, database) + users[r] = u + # when using `database` fixture (and not `db`), commit the creation of the + # user because its implementation uses a nested session instead + database.session.commit() + return users + + +@pytest.fixture(scope="module") +def community_factory(community_service): + def _community(identity, community_dict): + c = community_service.create(identity, community_dict) + Community.index.refresh() + return c + + return _community + + +@pytest.fixture(scope="function") +def community(community_factory, users, community_service, minimal_community, location): + return community_factory(users["owner"].identity, minimal_community) + + +@pytest.fixture(scope="function") +def community2( + community_factory, users, community_service, minimal_community2, location +): + """A community.""" + return community_factory(users["owner"].identity, minimal_community2) + + +@pytest.fixture(scope="function") +def init_cf(base_app): + result = base_app.test_cli_runner().invoke( + create_communities_custom_field, ["-f", "aai_mapping"] + ) + assert result.exit_code == 0 + Community.index.refresh() + + +@pytest.fixture(scope="module") +def aai_mapping_example_dict(): + return [{"role": "curator", "aai_group": "test_community:curator"}] + + +@pytest.fixture(scope="function") +def community_with_aai_mapping_cf( + users, + community_service, + community, + minimal_community, + aai_mapping_example_dict, + init_cf, +): + minimal_community["custom_fields"]["aai_mapping"] = aai_mapping_example_dict + community = community_service.update( + system_identity, community["id"], minimal_community + ) + Community.index.refresh() + return community + + +@pytest.fixture(scope="function") +def community2_with_aai_mapping_cf( + users, + community_service, + community2, + minimal_community2, + aai_mapping_example_dict, + init_cf, +): + edited = copy.deepcopy(aai_mapping_example_dict) + edited.append({"role": "curator", "aai_group": "alt_test_community:curator"}) + minimal_community2["custom_fields"]["aai_mapping"] = edited + community = community_service.update( + system_identity, community2["id"], minimal_community2 + ) + Community.index.refresh() + return community + + +@pytest.fixture +def return_userinfo_curator(): + def _return_userinfo(val): + if val == "https://login.cesnet.cz/oidc/userinfo": + usrinfo_obj = Mock() + usrinfo_obj.data = {"eduperson_entitlement": ["test_community:curator"]} + return usrinfo_obj + + return _return_userinfo + + +@pytest.fixture +def return_userinfo_two_communities(): + def _return_userinfo(val): + if val == "https://login.cesnet.cz/oidc/userinfo": + usrinfo_obj = Mock() + usrinfo_obj.data = { + "eduperson_entitlement": [ + "test_community:curator", + "alt_test_community:curator", + ] + } + return usrinfo_obj + + return _return_userinfo + + +@pytest.fixture +def return_userinfo_both(): + def _return_userinfo(val): + if val == "https://login.cesnet.cz/oidc/userinfo": + usrinfo_obj = Mock() + usrinfo_obj.data = { + "eduperson_entitlement": [ + "test_community:curator", + "test_community:reader", + ] + } + return usrinfo_obj + + return _return_userinfo + + +@pytest.fixture +def return_userinfo_noone(): + def _return_userinfo(val): + if val == "https://login.cesnet.cz/oidc/userinfo": + usrinfo_obj = Mock() + usrinfo_obj.data = {"eduperson_entitlement": []} + return usrinfo_obj + + return _return_userinfo diff --git a/tests/test_perun_groups.py b/tests/test_perun_groups.py new file mode 100644 index 0000000..02cc000 --- /dev/null +++ b/tests/test_perun_groups.py @@ -0,0 +1,245 @@ +import importlib +from unittest.mock import Mock + +import jwt +from flask_login.utils import _create_identifier +from invenio_access.permissions import system_identity +from invenio_communities import current_communities +from invenio_communities.members.records.api import Member +from invenio_oauthclient.ext import InvenioOAuthClient +from invenio_search.engine import dsl + +from oidc_einfra.communities import ( + account_info_link_perun_groups, + get_mapped_communities, +) + +# userinfo url 'https://login.cesnet.cz/oidc/' + + +def get_user_community_roles(user_id): + Member.index.refresh() + members_service = current_communities.service.members + search = members_service._search( + "search", + system_identity, + {}, + None, + extra_filter=dsl.Q("term", **{"user.id": str(user_id)}), + ) + result = search.execute() + ret = [] + for hit in result: + ret.append((hit["community_id"], hit["role"])) + return ret + + +def token_getter_mock(remote, token=""): + return ["token"] + + +def set_remote(return_userinfo_fixture, monkeypatch): + remote = Mock() + remote.consumer_key = "333e0e21-83bc-414f-bb4c-6df622fc1331" + remote.base_url = "https://login.cesnet.cz/oidc/" + + remote.get.side_effect = return_userinfo_fixture + module = importlib.import_module("cesnet_openid_remote.communities") + monkeypatch.setattr(module, "token_getter", token_getter_mock) + return remote + + +def test_adding_groups( + db, + community_with_aai_mapping_cf, + users, + return_userinfo_both, + monkeypatch, + search_clear, +): + remote = set_remote(return_userinfo_both, monkeypatch) + user = users["curator"] + + roles_before = get_user_community_roles(user.id) + + account_info_link_perun_groups( + remote, + token=None, + response=None, + account_info={"user": {"email": "curator@curator.org"}}, + ) + + roles_after = get_user_community_roles(user.id) + assert len(roles_before) == 0 + assert len(roles_after) == 1 + assert roles_after[0][1] == "curator" + + account_info_link_perun_groups( + remote, + token=None, + response=None, + account_info={"user": {"email": "curator@curator.org"}}, + ) + roles_after_repeat = get_user_community_roles(user.id) + assert len(roles_after_repeat) == 1 + assert roles_after_repeat[0][1] == "curator" + + +def test_remove_groups( + db, + community_with_aai_mapping_cf, + users, + return_userinfo_curator, + return_userinfo_noone, + monkeypatch, + search_clear, +): + remote = set_remote(return_userinfo_curator, monkeypatch) + user = users["curator"] + + roles_before = get_user_community_roles(user.id) + + account_info_link_perun_groups( + remote, + token=None, + response=None, + account_info={"user": {"email": "curator@curator.org"}}, + ) + + roles_after = get_user_community_roles(user.id) + assert len(roles_before) == 0 + assert len(roles_after) == 1 + assert roles_after[0][1] == "curator" + + remote.get.side_effect = return_userinfo_noone + account_info_link_perun_groups( + remote, + token=None, + response=None, + account_info={"user": {"email": "curator@curator.org"}}, + ) + roles_after_perun_deletion = get_user_community_roles(user.id) + assert len(roles_after_perun_deletion) == 0 + + +def test_two_communities( + db, + community_with_aai_mapping_cf, + community2_with_aai_mapping_cf, + users, + return_userinfo_two_communities, + return_userinfo_noone, + monkeypatch, + search_clear, +): + remote = set_remote(return_userinfo_two_communities, monkeypatch) + user = users["curator"] + + roles_before = get_user_community_roles(user.id) + + account_info_link_perun_groups( + remote, + token=None, + response=None, + account_info={"user": {"email": "curator@curator.org"}}, + ) + + roles_after = get_user_community_roles(user.id) + assert len(roles_before) == 0 + assert len(roles_after) == 2 + + account_info_link_perun_groups( + remote, + token=None, + response=None, + account_info={"user": {"email": "curator@curator.org"}}, + ) + roles_after_repeat = get_user_community_roles(user.id) + assert len(roles_after_repeat) == 2 + + remote.get.side_effect = return_userinfo_noone + account_info_link_perun_groups( + remote, + token=None, + response=None, + account_info={"user": {"email": "curator@curator.org"}}, + ) + roles_after_perun_deletion = get_user_community_roles(user.id) + assert len(roles_after_perun_deletion) == 0 + + +def test_aai_mapping_group_facet( + db, community_with_aai_mapping_cf, community2_with_aai_mapping_cf, search_clear +): + # todo doesn't seem to work correctly for now, returns communities without queried roles too + mapped_communities = get_mapped_communities( + { + "alt_test_community:curator", + } + ) + assert len(mapped_communities) == 1 + + +class MockSerializer: + def loads(self, token): + return { + "sid": _create_identifier(), + "app": "eduid", + "next": "https://127.0.0.1:5000/", + } + + +id_token_unregistered = { + "sub": "noonenobodynothing", + "email_verified": False, + "preferred_username": "nobody", + "given_name": "noone", + "locale": "cs", + "auth_time": 3, + "name": "nobody noone", + "family_name": "noone", + "email": "nobody@noone.nope", +} + + +def test_user_unregistered( + db, + app, + community_with_aai_mapping_cf, + users, + return_userinfo_both, + monkeypatch, + client, + search_clear, +): + InvenioOAuthClient(app) + module = importlib.import_module("invenio_oauthclient.views.client") + monkeypatch.setattr(module, "serializer", MockSerializer()) + + # todo pozn. autocreate_user is called before linking perun groups and crashes if external id is not provided in id token + # the get oauth_get_user function uses it to get the user, therefore i can't find a way to not get user in account_info_link_perun_groups without directly hacking it + module = importlib.import_module("cesnet_openid_remote.communities") + monkeypatch.setattr( + module, "oauth_get_user", lambda a, account_info, access_token: None + ) + monkeypatch.setattr( + module, "get_user_perun_groups", lambda x: ["test_community:curator"] + ) + + from flask_oauthlib.client import OAuthRemoteApp + + monkeypatch.setattr( + OAuthRemoteApp, + "handle_oauth2_response", + lambda self, x: { + "access_token": "lalala", + "token_type": "Bearer", + "expires_in": 3599, + "scope": "lalala", + "id_token": jwt.encode(id_token_unregistered, ""), + }, + ) + res = client.get("/oauth/authorized/eduid/?code=dxuW0cqdD2CW&state=eyJhbGci") + user_id = len(users) + 1 + roles = get_user_community_roles(user_id) + assert len(roles) == 1 From 444bdcf53e033357423b45d3c4cf5d37b6072de1 Mon Sep 17 00:00:00 2001 From: Mirek Simek Date: Sat, 7 Sep 2024 15:54:02 +0200 Subject: [PATCH 2/3] Initial version --- .copyright.tmpl | 5 + .github/workflows/build.yaml | 91 + .github/workflows/manual.yaml | 15 + .github/workflows/push.yaml | 37 + .gitignore | 4 + MANIFEST.in | 2 + README.md | 65 +- docs/jwk2pem.py | 19 + docs/settings1.png | Bin 0 -> 382252 bytes docs/settings2.png | Bin 0 -> 338066 bytes docs/settings3.png | Bin 0 -> 122766 bytes format.sh | 12 +- oarepo_oidc_einfra/__init__.py | 14 + oarepo_oidc_einfra/communities.py | 139 ++ oarepo_oidc_einfra/config.py | 54 + oarepo_oidc_einfra/ext.py | 62 + oarepo_oidc_einfra/mutex.py | 111 + oarepo_oidc_einfra/perun/__init__.py | 19 + oarepo_oidc_einfra/perun/api.py | 340 +++ oarepo_oidc_einfra/perun/dump.py | 138 ++ oarepo_oidc_einfra/perun/oidc.py | 80 + oarepo_oidc_einfra/proxies.py | 14 + {oidc_einfra => oarepo_oidc_einfra}/remote.py | 137 +- oarepo_oidc_einfra/resources.py | 84 + oarepo_oidc_einfra/services/__init__.py | 8 + .../services/components/__init__.py | 8 + .../services/components/aai_communities.py | 54 + oarepo_oidc_einfra/tasks.py | 215 ++ oidc_einfra/__init__.py | 14 - oidc_einfra/communities.py | 108 - oidc_einfra/jwk2pem.py | 11 - oidc_einfra/version.py | 14 - run-tests.sh | 23 + setup.cfg | 28 +- setup.py | 9 +- tests/__init__.py | 7 + tests/conftest.py | 356 ++- tests/dump_data/1.json | 38 + tests/dump_data/2.json | 53 + tests/dump_data/3.json | 87 + tests/dump_data/4.json | 53 + tests/dump_data/5.json | 24 + tests/manifest.json | 1319 ++++++++++ tests/request_data/test_create_group.yaml | 100 + .../test_create_group_existing.yaml | 61 + .../test_create_resource_for_group.yaml | 173 ++ ...st_create_resource_for_group_existing.yaml | 96 + .../request_data/test_initial_sync_community | 800 ++++++ tests/request_data/test_login.yaml | 1 + ...ommunities_user_exists_but_not_linked.yaml | 1 + .../test_no_communities_user_linked.yaml | 1 + tests/request_data/test_suspend_user.yaml | 1 + tests/request_data/test_with_communities.yaml | 2198 +++++++++++++++++ .../oarepo/invenio_theme/header_login.html | 1 + tests/test_login.py | 86 + tests/test_low_level_perun_api.py | 101 + tests/test_perun_groups.py | 245 -- tests/test_perun_sync_task.py | 29 + tests/test_store_dump.py | 56 + tests/test_update_from_perun_dump.py | 165 ++ 60 files changed, 7352 insertions(+), 634 deletions(-) create mode 100644 .copyright.tmpl create mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/manual.yaml create mode 100644 .github/workflows/push.yaml create mode 100644 docs/jwk2pem.py create mode 100644 docs/settings1.png create mode 100644 docs/settings2.png create mode 100644 docs/settings3.png create mode 100644 oarepo_oidc_einfra/__init__.py create mode 100644 oarepo_oidc_einfra/communities.py create mode 100644 oarepo_oidc_einfra/config.py create mode 100644 oarepo_oidc_einfra/ext.py create mode 100644 oarepo_oidc_einfra/mutex.py create mode 100644 oarepo_oidc_einfra/perun/__init__.py create mode 100644 oarepo_oidc_einfra/perun/api.py create mode 100644 oarepo_oidc_einfra/perun/dump.py create mode 100644 oarepo_oidc_einfra/perun/oidc.py create mode 100644 oarepo_oidc_einfra/proxies.py rename {oidc_einfra => oarepo_oidc_einfra}/remote.py (59%) create mode 100644 oarepo_oidc_einfra/resources.py create mode 100644 oarepo_oidc_einfra/services/__init__.py create mode 100644 oarepo_oidc_einfra/services/components/__init__.py create mode 100644 oarepo_oidc_einfra/services/components/aai_communities.py create mode 100644 oarepo_oidc_einfra/tasks.py delete mode 100644 oidc_einfra/__init__.py delete mode 100644 oidc_einfra/communities.py delete mode 100644 oidc_einfra/jwk2pem.py delete mode 100644 oidc_einfra/version.py create mode 100755 run-tests.sh create mode 100644 tests/dump_data/1.json create mode 100644 tests/dump_data/2.json create mode 100644 tests/dump_data/3.json create mode 100644 tests/dump_data/4.json create mode 100644 tests/dump_data/5.json create mode 100644 tests/manifest.json create mode 100644 tests/request_data/test_create_group.yaml create mode 100644 tests/request_data/test_create_group_existing.yaml create mode 100644 tests/request_data/test_create_resource_for_group.yaml create mode 100644 tests/request_data/test_create_resource_for_group_existing.yaml create mode 100644 tests/request_data/test_initial_sync_community create mode 100644 tests/request_data/test_login.yaml create mode 100644 tests/request_data/test_no_communities_user_exists_but_not_linked.yaml create mode 100644 tests/request_data/test_no_communities_user_linked.yaml create mode 100644 tests/request_data/test_suspend_user.yaml create mode 100644 tests/request_data/test_with_communities.yaml create mode 100644 tests/templates/oarepo/invenio_theme/header_login.html create mode 100644 tests/test_login.py create mode 100644 tests/test_low_level_perun_api.py delete mode 100644 tests/test_perun_groups.py create mode 100644 tests/test_perun_sync_task.py create mode 100644 tests/test_store_dump.py create mode 100644 tests/test_update_from_perun_dump.py diff --git a/.copyright.tmpl b/.copyright.tmpl new file mode 100644 index 0000000..b9159cb --- /dev/null +++ b/.copyright.tmpl @@ -0,0 +1,5 @@ +Copyright (C) 2024 CESNET z.s.p.o. + +oarepo-oidc-einfra is free software; you can redistribute it and/or +modify it under the terms of the MIT License; see LICENSE file for more +details. diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..c604a05 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,91 @@ +name: Build and test + +on: + workflow_call: + inputs: + oarepo: + description: OARepo version (11, 12, ...) + required: true + default: "12" + type: string + +env: + OAREPO_VERSION: ${{ inputs.oarepo }} + +jobs: + build: + runs-on: ubuntu-latest + services: + postgres: + image: postgres + env: + POSTGRES_PASSWORD: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + steps: + - name: Show oarepo version + run: | + echo "OAREPO_VERSION: >>>$OAREPO_VERSION<<< >>>${{ inputs.oarepo }}<<<" + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Cache pip + uses: actions/cache@v3 + with: + # This path is specific to Ubuntu + path: ~/.cache/pip + # Look to see if there is a cache hit for the corresponding requirements file + key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + ${{ runner.os }}- + + - name: Configure sysctl limits + run: | + sudo swapoff -a + sudo sysctl -w vm.swappiness=1 + sudo sysctl -w fs.file-max=262144 + sudo sysctl -w vm.max_map_count=262144 + + - name: Runs Opensearch + uses: ankane/setup-opensearch@v1 + with: + plugins: analysis-icu + + - name: Start Redis + uses: supercharge/redis-github-action@1.7.0 + with: + redis-version: ${{ matrix.redis-version }} + + - name: Run tests + run: | + ./run-tests.sh + + + - name: Build package to publish + run: | + .venv/bin/python setup.py sdist bdist_wheel + + - name: Freeze packages + run: | + .venv/bin/pip freeze > requirements.txt + + - name: Archive production artifacts + uses: actions/upload-artifact@v3 + with: + name: dist + path: dist + + - name: Archive production artifacts + uses: actions/upload-artifact@v3 + with: + name: requirements.txt + path: requirements.txt diff --git a/.github/workflows/manual.yaml b/.github/workflows/manual.yaml new file mode 100644 index 0000000..841c158 --- /dev/null +++ b/.github/workflows/manual.yaml @@ -0,0 +1,15 @@ +name: Dispatch + +on: + workflow_dispatch: + inputs: + oarepo: + description: OARepo version (11, 12, ...) + required: true + default: 12 + +jobs: + build: + uses: ./.github/workflows/build.yaml + with: + oarepo: ${{ github.event.inputs.oarepo }} diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml new file mode 100644 index 0000000..8d647e7 --- /dev/null +++ b/.github/workflows/push.yaml @@ -0,0 +1,37 @@ +name: Build, test and publish + +on: push + +permissions: + id-token: write + contents: read + +jobs: + + build12: + uses: ./.github/workflows/build.yaml + with: + oarepo: "12" + + publish: + runs-on: ubuntu-latest + needs: build12 + steps: + - name: Use built artifacts + uses: actions/download-artifact@v3 + with: + name: dist + path: dist + + - name: List files + run: | + ls -la + ls -la dist + + - name: Publish package + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@release/v1 + with: + skip_existing: true + user: __token__ + password: ${{ secrets.PYPI_PASSWORD }} diff --git a/.gitignore b/.gitignore index 12d2d3d..8ad56fd 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,7 @@ target/ .*.sw? .venv/ .env + +.DS_Store + +.perun_passwd diff --git a/MANIFEST.in b/MANIFEST.in index 6c1e415..dff6aec 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -35,3 +35,5 @@ recursive-include cesnet_openid_remote *.py recursive-exclude tests * recursive-exclude examples * recursive-exclude .github * + +recursive-exclude docs * diff --git a/README.md b/README.md index 8efbffb..16854a6 100644 --- a/README.md +++ b/README.md @@ -11,17 +11,35 @@ Add the module to your repository's pyproject.toml: ``` toml dependencies = [ - "oidc-einfra>=1.0.0", + "oarepo-oidc-einfra>=1.0.0", # ... ] +``` ## Configuration -1. Register a new application with e-infra OIDC Provider at https://spadmin.e-infra.cz/. -When registering the application ensure that the *Redirect URI* points to: -```url -https://:5000/oauth/authorized/e-infra/ -``` +1. Register a new application with e-infra OIDC Provider at + https://spadmin.e-infra.cz/. When registering the application + ensure that the *Redirect URI* points to `https://:5000/oauth/authorized/e-infra/` + + +![General parameters](docs/settings1.png) + + +![OIDC parameters](docs/settings2.png) + +In OIDC parameters, you need to set at least the following scopes: +- openid +- profile +- email +- eduperson_entitlement +- isCesnetEligibleLastSeen +- organization + + +![Perun-specific parameters](docs/settings3.png) + + 2. Grab the *Client ID* and *Client Secret* after registering the application and add them to your ENVIRONMENT variables: ```python @@ -31,7 +49,7 @@ INVENIO_EINFRA_CONSUMER_SECRET=*Client Secret* 3. Add the remote application to the site's `invenio.cfg`: ```python -from oidc_einfra import EINFRA_LOGIN_APP +from oarepo_oidc_einfra import EINFRA_LOGIN_APP OAUTHCLIENT_REMOTE_APPS = { "e-infra": EINFRA_LOGIN_APP @@ -43,4 +61,35 @@ OAUTHCLIENT_REMOTE_APPS = { EINFRA_RSA_KEY=b'-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmho5h/lz6USUUazQaVT3\nPHloIk/Ljs2vZl/RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6/QNaMtynvlSlnkuW\nrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV+bMxkVaElhd\nHNFzUfHv+XqI8Hkc82mIGtyeMQn+VAuZbYkVXnjyCwwa9RmPOSH+O4N4epDXKk1V\nK9dUxf/rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPW\nJDoL092ctPCFlUMBBZ/OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAb\nnwIDAQAB\n-----END PUBLIC KEY-----\n' ``` -5. Start the server and go to the login page https://127.0.0.1:5000/login/ +5. Add the VO, communities group, api url and others to your invenio.cfg or environment variables: + +```python + +EINFRA_SERVICE_USERNAME = "username" +"""Username of the service in the E-INFRA Perun.""" + +EINFRA_SERVICE_PASSWORD = "password" +"""Password of the service in the E-INFRA Perun.""" + +EINFRA_SERVICE_ID = 0 +"""Internal ID of the service (whose username and password are above) in the E-INFRA Perun.""" + +EINFRA_REPOSITORY_VO_ID = 0 +"""Internal ID of the VO in the E-INFRA Perun that represents the repository.""" + +EINFRA_COMMUNITIES_GROUP_ID = 0 +"""Internal ID of the group in the E-INFRA Perun that represents the communities.""" + +EINFRA_REPOSITORY_FACILITY_ID = 0 +"""Internal ID of the facility in the E-INFRA Perun that represents the repository.""" + +EINFRA_CAPABILITIES_ATTRIBUTE_ID = 0 +"""Internal ID of the attribute in the E-INFRA Perun that represents the capabilities.""" + +EINFRA_SYNC_SERVICE_ID = 0 +"""Internal ID of the service in the E-INFRA Perun that is responsible for synchronization +(creating and pushing dumps with resources and users).""" + +``` + +6. Start the server and go to the login page https://127.0.0.1:5000/login/ diff --git a/docs/jwk2pem.py b/docs/jwk2pem.py new file mode 100644 index 0000000..4319a64 --- /dev/null +++ b/docs/jwk2pem.py @@ -0,0 +1,19 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""A helper code to convert JWK (retrieved from oidc) to PEM format.""" +import jwcrypto.jwk + +key_dict = { + "e": "AQAB", + "kty": "RSA", + "n": "mho5h_lz6USUUazQaVT3PHloIk_Ljs2vZl_RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6_QNaMtynvlSlnkuWrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV-bMxkVaElhdHNFzUfHv-XqI8Hkc82mIGtyeMQn-VAuZbYkVXnjyCwwa9RmPOSH-O4N4epDXKk1VK9dUxf_rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPWJDoL092ctPCFlUMBBZ_OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAbnw", +} + +key = jwcrypto.jwk.JWK(**key_dict) +pem = key.export_to_pem(False, False) +print(pem) diff --git a/docs/settings1.png b/docs/settings1.png new file mode 100644 index 0000000000000000000000000000000000000000..0de8240bdf90bbcf4f28124d960b3ff7c5acd2aa GIT binary patch literal 382252 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 literal 0 HcmV?d00001 diff --git a/docs/settings2.png b/docs/settings2.png new file mode 100644 index 0000000000000000000000000000000000000000..56cc015bd64a28a35f994b61105713e7a7f389c1 GIT binary patch literal 338066 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�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 MsGLadvlnmv591c>rT_o{ literal 0 HcmV?d00001 diff --git a/format.sh b/format.sh index 86b6dc0..affce0b 100755 --- a/format.sh +++ b/format.sh @@ -1,3 +1,9 @@ -black cesnet_openid_remote tests --target-version py310 -autoflake --in-place --remove-all-unused-imports --recursive cesnet_openid_remote tests -isort cesnet_openid_remote tests +#!/bin/bash + +files="$( (git status --short| grep '^?' | cut -d\ -f2- && git ls-files ) | egrep ".*[.]py" | sort -u )" + +black --target-version py310 "$files" +autoflake -r --in-place --remove-all-unused-imports "$files" +isort "$files" --profile black + +python -m licenseheaders -t .copyright.tmpl -cy -f "$files" diff --git a/oarepo_oidc_einfra/__init__.py b/oarepo_oidc_einfra/__init__.py new file mode 100644 index 0000000..6165cab --- /dev/null +++ b/oarepo_oidc_einfra/__init__.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# + +"""E-INFRA OIDC Auth backend for OARepo""" + +from .remote import EINFRA_LOGIN_APP + +__all__ = ("EINFRA_LOGIN_APP",) diff --git a/oarepo_oidc_einfra/communities.py b/oarepo_oidc_einfra/communities.py new file mode 100644 index 0000000..e6cb02d --- /dev/null +++ b/oarepo_oidc_einfra/communities.py @@ -0,0 +1,139 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""Helper functions for working with communities.""" +from collections import namedtuple +from functools import cached_property +from typing import Dict, Set + +from flask import current_app +from invenio_access.permissions import system_identity +from invenio_accounts.models import User +from invenio_communities.communities.records.api import Community +from invenio_communities.members.records.models import MemberModel +from invenio_communities.proxies import current_communities +from invenio_db import db +from marshmallow import ValidationError +from sqlalchemy import select + +CommunityRole = namedtuple("CommunityRole", ["community_id", "role"]) +"""A named tuple representing a community and a role.""" + + +class CommunitySupport: + """A support class for working with communities and their members.""" + + def __init__(self): + pass + + @cached_property + def slug_to_id(self) -> Dict[str, str]: + """ + Returns a mapping of community slugs to their ids. + """ + return { + row[1]: str(row[0]) + for row in db.session.execute( + select(Community.model_cls.id, Community.model_cls.slug) + ) + } + + @cached_property + def all_community_roles(self) -> Set[CommunityRole]: + """ + Returns a set of all community roles (pair of community id, role name) known to the repository. + + :return: a set of all community roles known to the repository + """ + repository_comunity_roles = set() + community_roles = self.role_names + + for community in Community.model_cls.query.all(): + for role in community_roles: + repository_comunity_roles.add(CommunityRole(community.id, role)) + return repository_comunity_roles + + @cached_property + def role_names(self) -> Set[str]: + """ + Returns a set of all known community role names, as configured inside the invenio.cfg + :return: a set of all known community role names + """ + return {role["name"] for role in current_app.config["COMMUNITIES_ROLES"]} + + @classmethod + def set_user_community_membership( + cls, user: User, new_community_roles: Set[CommunityRole] + ) -> None: + """Set user membership based on the new community roles. + + The previous community roles, not present in new_community_roles, are removed. + """ + current_community_roles = cls.get_user_community_membership(user) + + for community_id, role in new_community_roles - current_community_roles: + cls._add_user_community_membership(community_id, role, user) + + community_ids = { + r.community_id for r in current_community_roles - new_community_roles + } + for community_id in community_ids: + try: + cls._remove_user_community_membership(community_id, user) + except ValidationError as e: + # This is a case when the user is the last member of a community - in this case he can not be removed + current_app.logger.error( + f"Failed to remove user {user.id} from community {community_id}: {e}" + ) + + @classmethod + def get_user_community_membership(cls, user) -> Set[CommunityRole]: + """Get user's actual community roles. + + :param user: User object + """ + ret = set() + for row in db.session.execute( + select([MemberModel.community_id, MemberModel.role]).where( + MemberModel.user_id == user.id + ) + ): + ret.add(CommunityRole(row.community_id, row.role)) + + return ret + + @classmethod + def _add_user_community_membership( + cls, community_id: str, community_role: str, user: User + ) -> None: + """ + Add user to a community with a given role. + + :param community_id: id of the community + :param community_role: community role + :param user: user object + :return: A membership result item from service + """ + data = { + "role": community_role, + "members": [{"type": "user", "id": str(user.id)}], + } + return current_communities.service.members.add( + system_identity, community_id, data + ) + + @classmethod + def _remove_user_community_membership(cls, community_id, user) -> None: + """ + Remove user from a community with a given role. + + :param community_id: id of the community + :param user: user object + :return: + """ + data = {"members": [{"type": "user", "id": str(user.id)}]} + current_communities.service.members.delete(system_identity, community_id, data) diff --git a/oarepo_oidc_einfra/config.py b/oarepo_oidc_einfra/config.py new file mode 100644 index 0000000..479d1ce --- /dev/null +++ b/oarepo_oidc_einfra/config.py @@ -0,0 +1,54 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# + +EINFRA_COMMUNITY_SYNCHRONIZATION = True +"""Synchronize community to E-Infra Perun when community is created.""" + +EINFRA_ENTITLEMENT_NAMESPACES = ["geant"] +"""URN prefix for capabilities that can represent community roles.""" + +EINFRA_ENTITLEMENT_COMMUNITIES_GROUP_PARTS = [["cesnet.cz", "res", "communities"]] +"""Parts of the entitlement URN name that represent communities.""" + +EINFRA_DUMP_DATA_URL = "s3://einfra-dump-bucket" +"""A place where the e-infra dump data will be stored when uploaded.""" + +EINFRA_API_URL = "https://perun-api.e-infra.cz" +"""URL of the E-INFRA Perun API.""" + +EINFRA_RSA_KEY = b"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmho5h/lz6USUUazQaVT3\nPHloIk/Ljs2vZl/RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6/QNaMtynvlSlnkuW\nrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV+bMxkVaElhd\nHNFzUfHv+XqI8Hkc82mIGtyeMQn+VAuZbYkVXnjyCwwa9RmPOSH+O4N4epDXKk1V\nK9dUxf/rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPW\nJDoL092ctPCFlUMBBZ/OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAb\nnwIDAQAB\n-----END PUBLIC KEY-----\n" +"""Public RSA key for verifying the OIDC token signature.""" + +# +# At least the following should be sent in your invenio.cfg +# + +# EINFRA_SERVICE_USERNAME = "username" +# """Username of the service in the E-INFRA Perun.""" + +# EINFRA_SERVICE_PASSWORD = "password" +# """Password of the service in the E-INFRA Perun.""" + +# EINFRA_SERVICE_ID = 0 +# """Internal ID of the service (whose username and password are above) in the E-INFRA Perun.""" + +# EINFRA_REPOSITORY_VO_ID = 0 +# """Internal ID of the VO in the E-INFRA Perun that represents the repository.""" + +# EINFRA_COMMUNITIES_GROUP_ID = 0 +# """Internal ID of the group in the E-INFRA Perun that represents the communities.""" + +# EINFRA_REPOSITORY_FACILITY_ID = 0 +# """Internal ID of the facility in the E-INFRA Perun that represents the repository.""" + +# EINFRA_CAPABILITIES_ATTRIBUTE_ID = 0 +# """Internal ID of the attribute in the E-INFRA Perun that represents the capabilities.""" + +# EINFRA_SYNC_SERVICE_ID = 0 +# """Internal ID of the service in the E-INFRA Perun that is responsible for synchronization +# (creating and pushing dumps with resources and users).""" diff --git a/oarepo_oidc_einfra/ext.py b/oarepo_oidc_einfra/ext.py new file mode 100644 index 0000000..67a438a --- /dev/null +++ b/oarepo_oidc_einfra/ext.py @@ -0,0 +1,62 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""A flask extension for E-INFRA OIDC authentication.""" + +from flask import current_app +from invenio_communities.communities.services.components import \ + DefaultCommunityComponents + +from oarepo_oidc_einfra.perun import PerunLowLevelAPI +from oarepo_oidc_einfra.services.components.aai_communities import CommunityAAIComponent + + +class EInfraOIDCApp: + def __init__(self, app=None): + """Creates the extension.""" + if app: + self.init_app(app) + + def init_app(self, app): + """Adds the extension to the app and loads initial configuration.""" + app.extensions["einfra-oidc"] = self + self.init_config(app) + + def init_config(self, app): + """Loads the default configuration.""" + + self.register_sync_component_to_community_service(app) + + # sets the default configuration values + from . import config + + for k in dir(config): + if k.startswith("EINFRA_"): + app.config.setdefault(k, getattr(config, k)) + + def register_sync_component_to_community_service(self, app): + """Registers a component to the community service. + + This component is responsible for synchronizing the community to the E-INFRA Perun. + """ + communities_components = app.config.get("COMMUNITIES_SERVICE_COMPONENTS", None) + if isinstance(communities_components, list): + communities_components.append(CommunityAAIComponent) + elif not communities_components: + app.config["COMMUNITIES_SERVICE_COMPONENTS"] = [ + CommunityAAIComponent, + *DefaultCommunityComponents, + ] + + def perun_api(self): + + return PerunLowLevelAPI( + base_url=current_app.config["EINFRA_API_URL"], + service_id=current_app.config["EINFRA_SERVICE_ID"], + service_username=current_app.config["EINFRA_SERVICE_USERNAME"], + service_password=current_app.config["EINFRA_SERVICE_PASSWORD"], + ) diff --git a/oarepo_oidc_einfra/mutex.py b/oarepo_oidc_einfra/mutex.py new file mode 100644 index 0000000..a1b6aa4 --- /dev/null +++ b/oarepo_oidc_einfra/mutex.py @@ -0,0 +1,111 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +""" +An implementation of a mutex over the cache. Note: if you have multiple redis caches, +you need to implement a distributed lock instead of this simple implementation to have +a mutex that works in all cases of disaster scenarios. +""" +import functools +import secrets +import threading +import time +from random import random + +from invenio_cache import current_cache + + +class CacheMutex: + """ + A simple mutex implementation using the cache. + + Because propagation from master cache server to slaves might be asynchronous and + messages might be lost in case when master responds before the slave is updated, + this mutex is not reliable in case of a disaster. + + To be able to handle these cases, you would need connection both to the master and + slaves and implement a distributed lock such as Redlock algorithm for redis. + """ + + def __init__(self, key, timeout=3600, tries=10, wait_time=120): + """Creates the mutex. + + :param key: The key inside cache where the mutex data are stored. + :param timeout: The mutex will be released automatically after this time. + :param tries: The number of tries to acquire the lock if it is locked. + :param wait_time: The time to wait between the tries. + + Usage: + + with CacheMutex("my-mutex-key"): + # do something that needs to be protected by the mutex + """ + self.key = key + self.value = secrets.token_hex(32) + self.timeout = timeout + self.tries = tries + self.wait_time = wait_time + + def __enter__(self): + """Acquires the mutex.""" + for k in range(self.tries): + if current_cache.cache.add(self.key, self.value, timeout=self.timeout): + # sanity check + if current_cache.cache.get(self.key) != self.value: + continue + return + # add random to desynchronize + time.sleep(self.wait_time * 0.9 + self.wait_time * 0.1 * random()) + raise ValueError( + f"Could not acquire mutex for {self.tries} times, " + f"waiting {self.wait_time} seconds each time" + ) + + def __exit__(self, exc_type, exc_value, traceback): + """Releases the mutex.""" + if current_cache.cache.get(self.key) == self.value: + current_cache.cache.delete(self.key) + + +mutex_thread_local = threading.local() +"""make the mutex below reentrant within the same thread""" + + +def mutex(key, timeout=3600, tries=10, wait_time=120): + """ + A decorator that creates a mutex for a function. + + :param key: The key inside cache where the mutex data are stored. + :param timeout: The mutex will be released automatically after this time. + :param tries: The number of tries to acquire the lock if it is locked. + :param wait_time: The time to wait between the tries. + + Within the same thread, the mutex with the same key is re-entrant. + + Usage: + + @mutex("my-mutex-key") + def my_function(): + # do something that needs to be protected by the mutex + """ + + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + if not hasattr(mutex_thread_local, key): + setattr(mutex_thread_local, key, True) + try: + with CacheMutex(key, timeout, tries, wait_time): + return func(*args, **kwargs) + finally: + delattr(mutex_thread_local, key) + else: + return func(*args, **kwargs) + + return wrapper + + return decorator diff --git a/oarepo_oidc_einfra/perun/__init__.py b/oarepo_oidc_einfra/perun/__init__.py new file mode 100644 index 0000000..c2558fd --- /dev/null +++ b/oarepo_oidc_einfra/perun/__init__.py @@ -0,0 +1,19 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""Perun API, dump and OIDC utilities.""" + +from .api import DoesNotExist, PerunLowLevelAPI +from .dump import PerunDumpData +from .oidc import get_communities_from_userinfo_token + +__all__ = ( + "PerunLowLevelAPI", + "DoesNotExist", + "get_communities_from_userinfo_token", + "PerunDumpData", +) diff --git a/oarepo_oidc_einfra/perun/api.py b/oarepo_oidc_einfra/perun/api.py new file mode 100644 index 0000000..0305d9a --- /dev/null +++ b/oarepo_oidc_einfra/perun/api.py @@ -0,0 +1,340 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +import logging + +import requests +from requests.auth import HTTPBasicAuth + +log = logging.getLogger("perun") + + +class DoesNotExist(Exception): + """Exception raised when a resource does not exist.""" + + +class PerunLowLevelAPI: + """ + Low-level API for Perun targeted at the operations needed by E-INFRA OIDC extension. + + Note: Perun does not follow RESTful principles and the API is thus not resource-oriented, + but rather manager-oriented and spills out implementation details. This class provides + a thin wrapper around the Perun API. + + Note: All ids are internal Perun ids, not UUIDs or other external identifiers. + """ + + def __init__(self, base_url, service_id, service_username, service_password): + """ + Initialize the API with the base URL and the service credentials. + + :param base_url: URL of Perun server + :param service_id: the id of the service that manages stuff + :param service_username: the username of the service that manages stuff + :param service_password: the password of the service that manages stuff + """ + self._base_url = base_url + self._service_id = service_id + self._auth = HTTPBasicAuth(service_username, service_password) + + def _perun_call(self, manager, method, payload): + """Low-level call to Perun API with error handling. + + :param manager: the manager to call + :param method: the method to call + :param payload: the json payload to send + """ + resp = requests.post( + f"{self._base_url}/krb/rpc/json/{manager}/{method}", + auth=self._auth, + json=payload, + ) + + if resp.status_code == 404: + raise DoesNotExist(f"Not found returned for method {method} and {payload}") + + if ( + resp.status_code == 400 + and resp.json().get("name") == "ResourceNotExistsException" + ): + raise DoesNotExist(f"Not found returned for method {method} and {payload}") + + if resp.status_code < 200 or resp.status_code >= 300: + raise Exception(f"Perun call failed: {resp.text}") + return resp.json() + + def create_group(self, *, name, description, parent_group_id, check_existing=True): + """ + Create a new group in Perun and set the service as its admin + + :param name: Name of the group + :param description: Description of the group + :param parent_group_id: ID of the parent group + :param check_existing: If True, check if the group already exists and do not create it + :return: (group: json, group_created: bool, admin_created: bool) + """ + # check if the group already exists and if not, create it + + group_created = False + admin_created = False + + if check_existing: + group = self.get_group_by_name(name, parent_group_id) + else: + group = None + + if not group: + log.info("Creating group %s within parent %s", name, parent_group_id) + + # Create a new group in Perun + group = self._perun_call( + "groupsManager", + "createGroup", + { + "name": name, + "description": description, + "parentGroup": parent_group_id, + }, + ) + group_created = True + log.info( + "Group %s within parent %s created, id %s", + name, + parent_group_id, + group["id"], + ) + + # check if the group has the service as an admin and if not, add it + # if inheritance works, do not duplicate the admin here + admins = self._perun_call( + "groupsManager", "getAdmins", {"group": group["id"], "onlyDirectAdmins": 0} + ) + for admin in admins: + if admin["id"] == self._service_id: + break + else: + log.info( + "Adding service %s as admin to group %s", self._service_id, group["id"] + ) + self._perun_call( + "groupsManager", + "addAdmin", + {"group": group["id"], "user": self._service_id}, + ) + admin_created = True + + return (group, group_created, admin_created) + + def get_group_by_name(self, name, parent_group_id): + """ + Get a group by name within a parent group. + + :param name: name of the group + :param parent_group_id: ID of the parent group + :return: group or None if not found + """ + groups = self._perun_call( + "groupsManager", "getAllSubGroups", {"group": parent_group_id} + ) + for group in groups: + if group["shortName"] == name: + return group + return None + + def create_resource_with_group_and_capabilities( + self, + *, + vo_id, + facility_id, + group_id, + name, + description, + capability_attr_id, + capabilities, + perun_sync_service_id, + check_existing=True, + ): + """ + Create a new resource in Perun and assign the group to it. + + :param vo_id: id of the virtual organization in within the resource is created + :param facility_id: id of the facility for which the resource is created. The service have facility manager rights + :param group_id: id of the group to be assigned to the resource + :param name: name of the resource + :param description: description of the resource + :param capability_attr_id: id of the attribute that holds the capabilities + :param capabilities: a list of capabilities to be set + :param perun_sync_service_id: id of the service that is used to export the e-infra dump + :param check_existing: if True, check if the resource already exists and do not create it + + :return: (resource: json, resource_created: bool) + """ + assert isinstance(capabilities, list), "Capabilities must be a list" + + resource, resource_created = self.create_resource( + vo_id, facility_id, name, description, check_existing + ) + + resource_id = resource["id"] + + self.assign_group_to_resource(resource_id, group_id) + + self.set_resource_capabilities(resource_id, capability_attr_id, capabilities) + + self.attach_service_to_resource(resource_id, perun_sync_service_id) + + return resource, resource_created + + def create_resource( + self, vo_id, facility_id, name, description, check_existing=True + ): + """ + Create a new resource in Perun, optionally checking if a resource with the same name already exists. + + :param vo_id: id of the virtual organization in within the resource is created + :param facility_id: id of the facility for which the resource is created + :param name: name of the resource + :param description: description of the resource + :param check_existing: if True, check if the resource already exists and do not create it + + :return: (resource: json, resource_created: bool) + """ + if check_existing: + resource = self.get_resource_by_name(vo_id, facility_id, name) + else: + resource = None + resource_created = False + if not resource: + log.info( + "Creating resource %s in facility %s and vo %s", + name, + facility_id, + vo_id, + ) + resource = self._perun_call( + "resourcesManager", + "createResource", + { + "vo": vo_id, + "facility": facility_id, + "name": name, + "description": description, + }, + ) + resource_created = True + log.info( + "Resource %s created in facility %s and vo %s, id %s", + name, + facility_id, + vo_id, + resource["id"], + ) + return resource, resource_created + + def assign_group_to_resource(self, resource_id, group_id): + """ + Assign a group to a resource. + + :param resource_id: id of the resource + :param group_id: id of the group to be assigned + """ + groups = self._perun_call( + "resourcesManager", + "getAssignedGroups", + { + "resource": resource_id, + }, + ) + for grp in groups: + if grp["id"] == group_id: + break + else: + log.info("Assigning group %s to resource %s", group_id, resource_id) + self._perun_call( + "resourcesManager", + "assignGroupToResource", + {"resource": resource_id, "group": group_id}, + ) + log.info("Group %s assigned to resource %s", group_id, resource_id) + + def set_resource_capabilities(self, resource_id, capability_attr_id, capabilities): + """ + Set capabilities to a resource. + + :param resource_id: id of the resource + :param capability_attr_id: internal id of the attribute that holds the capabilities + :param capabilities: list of capabilities to be set + """ + + # check if the resource has the capability and if not, add it + attr = self._perun_call( + "attributesManager", + "getAttribute", + {"resource": resource_id, "attributeId": capability_attr_id}, + ) + value = attr["value"] or [] + if not (set(value) >= set(capabilities)): + log.info( + "Setting capabilities %s to resource %s", capabilities, resource_id + ) + attr["value"] = list(set(value) | set(capabilities)) + self._perun_call( + "attributesManager", + "setAttribute", + {"resource": resource_id, "attribute": attr}, + ) + log.info("Capabilities %s set to resource %s", capabilities, resource_id) + + def attach_service_to_resource(self, resource_id, service_id): + """ + Attach a service to a resource. + + :param resource_id: id of the resource + :param service_id: id of the service to be attached + :return: + """ + # assign sync service to the resource + services = self._perun_call( + "resourcesManager", "getAssignedServices", {"resource": resource_id} + ) + for service in services: + if service["id"] == service_id: + break + else: + log.info( + "Assigning service %s to resource %s", + service_id, + resource_id, + ) + self._perun_call( + "resourcesManager", + "assignService", + {"resource": resource_id, "service": service_id}, + ) + log.info( + "Service %s assigned to resource %s", + service_id, + resource_id, + ) + + def get_resource_by_name(self, vo_id, facility_id, name): + """ + Get a resource by name. + + :param vo_id: id of the virtual organization + :param facility_id: id of the facility for which a resource is created + :param name: name of the resource + :return: resource or None if not found + """ + try: + return self._perun_call( + "resourcesManager", + "getResourceByName", + {"vo": vo_id, "facility": facility_id, "name": name}, + ) + except DoesNotExist: + return None diff --git a/oarepo_oidc_einfra/perun/dump.py b/oarepo_oidc_einfra/perun/dump.py new file mode 100644 index 0000000..a6f2f29 --- /dev/null +++ b/oarepo_oidc_einfra/perun/dump.py @@ -0,0 +1,138 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +import logging +from collections import defaultdict, namedtuple +from functools import cached_property +from typing import Any, Dict, Iterable, List, Set + +from oarepo_oidc_einfra.communities import CommunityRole + +log = logging.getLogger("perun.dump_data") + + +AAIUser = namedtuple( + "AAIUser", ["einfra_id", "email", "full_name", "organization", "roles"] +) + + +class PerunDumpData: + """ + Provides access to the data from the PERUN dump. + """ + + def __init__( + self, + dump_data: Any, + community_slug_to_id: Dict[str, str], + community_role_names: Set[str], + ): + """ + Creates an instance of the data + + :param dump_data: The data from the PERUN dump (json) + :param community_slug_to_id: Mapping of community slugs to their ids (str of uuid) + :param community_role_names: a set of known community role names + """ + self.dump_data = dump_data + self.slug_to_id = community_slug_to_id + self.community_role_names = community_role_names + + @cached_property + def aai_community_roles(self) -> Set[CommunityRole]: + """ + Returns all community roles (pairs of community id, role name) from the dump. + :return: set of community roles known to perun + """ + aai_community_roles = set() + for resource_community_roles in self.resource_to_community_roles.values(): + aai_community_roles.update(resource_community_roles) + return aai_community_roles + + @cached_property + def resource_to_community_roles(self) -> Dict[str, List[CommunityRole]]: + """ + Returns a mapping of resource id to community roles. + + :return: for each Perun resource, mapping to associated community roles + """ + resources = defaultdict(list) + for r_id, r in self.dump_data["resources"].items(): + # data look like + # "0003a30a-5512-4ff1-ae1c-b13372041459" : { + # "attributes" : { + # "urn:perun:resource:attribute-def:def:capabilities" : [ + # "res:communities:abc:role:members" + # ] + # } + # }, + capabilities = r.get("attributes", {}).get( + "urn:perun:resource:attribute-def:def:capabilities", [] + ) + for capability in capabilities: + parts = capability.split(":") + if ( + len(parts) == 5 + and parts[0] == "res" + and parts[1] == "communities" + and parts[3] == "role" + ): + community_slug = parts[2] + role = parts[4] + if community_slug not in self.slug_to_id: + log.error( + f"Community from PERUN {community_slug} not found in the repository" + ) + continue + if role not in self.community_role_names: + log.error(f"Role from PERUN {role} not found in the repository") + continue + community_role = (self.slug_to_id[community_slug], role) + resources[r_id].append(community_role) + + return resources + + def users(self) -> Iterable[AAIUser]: + """ + Returns all users from the dump. + + :return: iterable of AAIUser + """ + for u in self.dump_data["users"].values(): + einfra_id = u["attributes"].get( + "urn:perun:user:attribute-def:virt:login-namespace:einfraid-persistent" + ) + full_name = u["attributes"].get( + "urn:perun:user:attribute-def:core:displayName" + ) + organization = u["attributes"].get( + "urn:perun:user:attribute-def:def:organization" + ) + email = u["attributes"].get( + "urn:perun:user:attribute-def:def:preferredMail" + ) + yield AAIUser( + einfra_id=einfra_id, + email=email, + full_name=full_name, + organization=organization, + roles=self._get_roles_for_resources(u.get("allowed_resources", {})), + ) + + def _get_roles_for_resources( + self, allowed_resources: Iterable[str] + ) -> Set[CommunityRole]: + """ + Returns community roles for an iterable of allowed resources. + + :param allowed_resources: iterable of resource ids + :return: a set of associated community roles + """ + aai_communities = set() + for resource in allowed_resources: + aai_communities.update(self.resource_to_community_roles.get(resource, [])) + return aai_communities diff --git a/oarepo_oidc_einfra/perun/oidc.py b/oarepo_oidc_einfra/perun/oidc.py new file mode 100644 index 0000000..0b9cbde --- /dev/null +++ b/oarepo_oidc_einfra/perun/oidc.py @@ -0,0 +1,80 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""OIDC utilities.""" +from typing import Dict, Set + +from flask import current_app +from invenio_accounts.models import UserIdentity +from invenio_db import db +from sqlalchemy import select +from urnparse import URN8141, InvalidURNFormatError + +from ..communities import CommunityRole, CommunitySupport + + +def get_communities_from_userinfo_token(userinfo_token) -> Set[CommunityRole]: + """ + Extracts communities and roles from userinfo token. + + :param userinfo_token: userinfo token from perun/oidc server + :return: a set of community roles associated with the user + """ + slug_to_id = CommunitySupport().slug_to_id + + community_roles = CommunitySupport().role_names + + # Entitlement looks like: + # 1 = {str} 'urn:geant:cesnet.cz:res:communities:cuni:role:curator#perun.cesnet.cz' + entitlements = userinfo_token.get("eduperson_entitlement", []) + aai_groups = set() + for entitlement in entitlements: + try: + urn = URN8141.from_string(entitlement) + except InvalidURNFormatError: + # not a valid URN, skipping + continue + if ( + urn.namespace_id.value + not in current_app.config["EINFRA_ENTITLEMENT_NAMESPACES"] + ): + continue + for group_parts in current_app.config[ + "EINFRA_ENTITLEMENT_COMMUNITIES_GROUP_PARTS" + ]: + if urn.specific_string.parts[: len(group_parts)] == group_parts and len( + urn.specific_string.parts + ) > len(group_parts): + parts = urn.specific_string.parts[len(group_parts) :] + if ( + len(parts) == 3 + and parts[0] in slug_to_id + and parts[2] in community_roles + ): + aai_groups.add((slug_to_id[parts[0]], parts[2])) + return aai_groups + + +def einfra_to_local_users_map() -> Dict[str, int]: + """ + Returns a mapping of e-infra id to user id for local users, that have e-infra identity + and logged at least once with it. + + :return: a mapping of e-infra id to user id + """ + local_users = {} + rows = db.session.execute( + select(UserIdentity.id, UserIdentity.id_user).where( + UserIdentity.method == "e-infra" + ) + ) + for row in rows: + einfra_id = row[0] + user_id = row[1] + if einfra_id: + local_users[einfra_id] = user_id + return local_users diff --git a/oarepo_oidc_einfra/proxies.py b/oarepo_oidc_einfra/proxies.py new file mode 100644 index 0000000..11b8097 --- /dev/null +++ b/oarepo_oidc_einfra/proxies.py @@ -0,0 +1,14 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""Helper proxy to the state object.""" + +from flask import current_app +from werkzeug.local import LocalProxy + +current_einfra_oidc = LocalProxy(lambda: current_app.extensions["einfra-oidc"]) +"""Helper proxy to get the current einfra oidc.""" diff --git a/oidc_einfra/remote.py b/oarepo_oidc_einfra/remote.py similarity index 59% rename from oidc_einfra/remote.py rename to oarepo_oidc_einfra/remote.py index 86402c0..3046686 100644 --- a/oidc_einfra/remote.py +++ b/oarepo_oidc_einfra/remote.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2023 CESNET. +# Copyright (C) 2024 CESNET z.s.p.o. # -# CESNET-OpenID-Remote is free software; you can redistribute it and/or +# oarepo-oidc-einfra is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more # details. +# import datetime @@ -13,40 +14,74 @@ from invenio_db import db from invenio_oauthclient import current_oauthclient from invenio_oauthclient.contrib.settings import OAuthSettingsHelper +from invenio_oauthclient.handlers.token import token_getter +from invenio_oauthclient.oauth import oauth_get_user from invenio_oauthclient.signals import account_info_received -from oidc_einfra.communities import account_info_link_perun_groups, \ - link_perun_groups - -class CesnetOAuthSettingsHelper(OAuthSettingsHelper): - """CESNET OIDC Remote Auth backend for OARepo.""" +class EInfraOAuthSettingsHelper(OAuthSettingsHelper): + """E-Infra OIDC Remote Auth backend for NRP.""" + + def __init__( + self, + *, + title="E-Infra AAI", + description="E-Infra authentication and authorization service.", + base_url="https://login.e-infra.cz/oidc/", + app_key="EINFRA", + icon=None, + access_token_url=None, + authorize_url=None, + access_token_method="POST", + request_token_params=None, + request_token_url=None, + precedence_mask=None, + signup_options=None, + logout_url=None, + **kwargs, + ): + + request_token_params = request_token_params or { + "scope": " ".join( + [ + "openid", + "profile", + "email", + "eduperson_entitlement", + "isCesnetEligibleLastSeen", + "organization", + ] + ) + } - def __init__(self): - access_token_url = "https://login.e-infra.cz/oidc/token" - authorize_url = "https://login.e-infra.cz/oidc/authorize" + access_token_url = access_token_url or f"{base_url}token" + authorize_url = authorize_url or f"{base_url}authorize" + content_type = "application/json" super().__init__( - "E-Infra AAI", - "E-Infra authentication and authorization service.", - "https://login.e-infra.cz/oidc/", - "EINFRA", - request_token_params={ - "scope": "openid profile email eduperson_entitlement isCesnetEligibleLastSeen" - }, + title=title, + description=description, + base_url=base_url, + app_key=app_key, + icon=icon, access_token_url=access_token_url, authorize_url=authorize_url, - content_type="application/json", - precedence_mask=None, - signup_options=None, + access_token_method=access_token_method, + request_token_params=request_token_params, + request_token_url=request_token_url, + precedence_mask=precedence_mask, + signup_options=signup_options, + logout_url=logout_url, + content_type=content_type, + **kwargs, ) self._handlers = dict( authorized_handler="invenio_oauthclient.handlers:authorized_signup_handler", signup_handler=dict( - info="oidc_einfra.remote:account_info", - info_serializer="oidc_einfra.remote:account_info_serializer", - setup="oidc_einfra.remote:account_setup", + info="oarepo_oidc_einfra.remote:account_info", + info_serializer="oarepo_oidc_einfra.remote:account_info_serializer", + setup="oarepo_oidc_einfra.remote:account_setup", view="invenio_oauthclient.handlers:signup_handler", ), ) @@ -54,9 +89,9 @@ def __init__(self): self._rest_handlers = dict( authorized_handler="invenio_oauthclient.handlers.rest:authorized_signup_handler", signup_handler=dict( - info="oidc_einfra.remote:account_info", - info_serializer="oidc_einfra.remote:account_info_serializer", - setup="oidc_einfra.remote:account_setup", + info="oarepo_oidc_einfra.remote:account_info", + info_serializer="oarepo_oidc_einfra.remote:account_info_serializer", + setup="oarepo_oidc_einfra.remote:account_setup", view="invenio_oauthclient.handlers.rest:signup_handler", ), response_handler="invenio_oauthclient.handlers.rest:default_remote_response_handler", @@ -74,7 +109,7 @@ def get_rest_handlers(self): return self._rest_handlers -_cesnet_app = CesnetOAuthSettingsHelper() +_cesnet_app = EInfraOAuthSettingsHelper() """ CESNET OpenID remote app. @@ -96,7 +131,7 @@ def account_info_serializer(remote, resp): options={"verify_signature": True}, key=remote.rsa_key, audience=remote.consumer_key, - algorithms=["RS256"] + algorithms=["RS256"], ) return { @@ -161,9 +196,13 @@ def account_setup(remote, token, resp): user = token.remote_account.user # Create user <-> external id link. - UserIdentity.create(user, "perun", decoded_token["sub"]) - link_perun_groups(remote, user) + # If there is no user identity for this user and group, create it + ui = UserIdentity.query.filter_by( + user=user, method="e-infra", id=decoded_token["sub"] + ).one_or_none() + if not ui: + UserIdentity.create(user, "e-infra", decoded_token["sub"]) # During overlay initialization. @@ -171,7 +210,7 @@ def account_setup(remote, token, resp): def autocreate_user(remote, token=None, response=None, account_info=None): assert account_info is not None - email = account_info["user"]["email"] + email = account_info["user"]["email"].lower() id, method = account_info["external_id"], account_info["external_method"] user_profile = { "affiliations": "", @@ -180,7 +219,7 @@ def autocreate_user(remote, token=None, response=None, account_info=None): user_identity = UserIdentity.query.filter_by(id=id, method=method).one_or_none() if not user_identity: - user = User.query.filter(User.email==email.lower()).one_or_none() + user = User.query.filter(User.email == email).one_or_none() if not user: user = User(email=email, active=True, user_profile=user_profile) @@ -198,17 +237,9 @@ def autocreate_user(remote, token=None, response=None, account_info=None): db.session.add(user) db.session.commit() - try: - with db.session.begin_nested(): - user_identity = UserIdentity(id=id, method=method, id_user=user.id) - db.session.add(user_identity) - db.session.commit() - except IntegrityError: - raise AlreadyLinkedError( - # dict used for backward compatibility (came from oauthclient) - user, - {"id": external_id, "method": method}, - ) + with db.session.begin_nested(): + UserIdentity.create(user=user, method=method, external_id=id) + db.session.commit() else: assert user_identity.user is not None @@ -221,4 +252,24 @@ def autocreate_user(remote, token=None, response=None, account_info=None): db.session.commit() +def account_info_link_perun_groups(remote, *, account_info, **kwargs): + # make the import local to avoud circular imports + from oarepo_oidc_einfra.communities import CommunitySupport + from oarepo_oidc_einfra.perun import get_communities_from_userinfo_token + + user = oauth_get_user( + remote.consumer_key, + account_info=account_info, + access_token=token_getter(remote)[0], + ) + + if user is None: + return + + userinfo_token = remote.get(remote.base_url + "userinfo").data + aai_community_roles = get_communities_from_userinfo_token(userinfo_token) + + CommunitySupport.set_user_community_membership(user, aai_community_roles) + + account_info_received.connect(account_info_link_perun_groups) diff --git a/oarepo_oidc_einfra/resources.py b/oarepo_oidc_einfra/resources.py new file mode 100644 index 0000000..e62aa02 --- /dev/null +++ b/oarepo_oidc_einfra/resources.py @@ -0,0 +1,84 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# + +"""REST resources.""" +from datetime import datetime + +from flask import current_app, g, request +from flask_resources import Resource, ResourceConfig, route +from invenio_access import Permission, action_factory +from invenio_files_rest.storage import PyFSFileStorage +from invenio_records_resources.services.errors import PermissionDeniedError + +from oarepo_oidc_einfra.tasks import update_from_perun_dump + +upload_dump_action = action_factory("upload-oidc-einfra-dump") + + +class OIDCEInfraResourceConfig(ResourceConfig): + """Configuration for the REST API.""" + + blueprint_name = "oarepo_oidc_einfra" + """Blueprint name.""" + + url_prefix = "/oidc-einfra" + """URL prefix for the resource, will be at /api/oidc-einfra.""" + + routes = {"upload-dump": "/dumps/upload"} + """Routes for the resource.""" + + +class OIDCEInfraResource(Resource): + """REST API for the EInfra OIDC.""" + + def __init__(self, config=None): + """Initialize the resource.""" + super(OIDCEInfraResource, self).__init__( + config=config or OIDCEInfraResourceConfig() + ) + + def create_url_rules(self): + """Create URL rules for the resource.""" + routes = self.config.routes + return [ + route("POST", routes["upload-dump"], self.upload_dump), + ] + + def upload_dump(self): + """Upload a dump of the EInfra data. + + The dump will be uploaded to the configured location (EINFRA_DUMP_DATA_URL inside config) + and then processed by a celery synchronization task. + + The caller must have the permission to upload the dump (upload-oidc-einfra-dump action + that can be assigned via invenio access commandline tool). + """ + if not Permission(upload_dump_action).allows(g.identity): + raise PermissionDeniedError() + + if request.headers.get("Content-Type") != "application/json": + return { + "status": "error", + "message": "Content-Type must be application/json", + }, 400 + + dump_url = current_app.config["EINFRA_DUMP_DATA_URL"] + now = datetime.utcnow().strftime("%Y-%m-%d-%H-%M-%S") + dump_path = f"{dump_url}/{now}.json" + + location = PyFSFileStorage(dump_path) # handles both filesystem and s3 + with location.open(mode="wb") as f: + f.write(request.data) + + update_from_perun_dump.delay(dump_path) + return {"status": "ok"}, 201 + + +def create_rest_blueprint(app): + """Create a blueprint for the REST API.""" + return OIDCEInfraResource().as_blueprint() diff --git a/oarepo_oidc_einfra/services/__init__.py b/oarepo_oidc_einfra/services/__init__.py new file mode 100644 index 0000000..7e5dde0 --- /dev/null +++ b/oarepo_oidc_einfra/services/__init__.py @@ -0,0 +1,8 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""Community service components.""" diff --git a/oarepo_oidc_einfra/services/components/__init__.py b/oarepo_oidc_einfra/services/components/__init__.py new file mode 100644 index 0000000..7e5dde0 --- /dev/null +++ b/oarepo_oidc_einfra/services/components/__init__.py @@ -0,0 +1,8 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""Community service components.""" diff --git a/oarepo_oidc_einfra/services/components/aai_communities.py b/oarepo_oidc_einfra/services/components/aai_communities.py new file mode 100644 index 0000000..d9661ef --- /dev/null +++ b/oarepo_oidc_einfra/services/components/aai_communities.py @@ -0,0 +1,54 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +"""AAI (perun) communities mapping""" + +import re + +from flask import current_app +from invenio_records_resources.services.records.components.base import ServiceComponent +from invenio_records_resources.services.uow import Operation + + +class PropagateToAAIOp(Operation): + """Operation to propagate community to AAI in a background process.""" + + def __init__(self, community): + self.community = community + + def on_post_commit(self, uow): + from oarepo_oidc_einfra.tasks import synchronize_community_to_perun + + synchronize_community_to_perun.delay(self.community.id) + + +class CommunityAAIComponent(ServiceComponent): + """Community AAI component that propagates the community to Perun.""" + + def create(self, identity, record=None, data=None, **kwargs): + """Create handler.""" + # propagate the community to AAI + if "slug" not in data: + raise ValueError("Missing slug in community data") + if not re.match("^[a-z0-9-]+$", data["slug"]): + raise ValueError( + "Invalid slug, only lowercase letters, numbers and hyphens are allowed" + ) + + if current_app.config["EINFRA_COMMUNITY_SYNCHRONIZATION"]: + self.uow.register(PropagateToAAIOp(record)) + + def update(self, identity, record=None, data=None, **kwargs): + """Update handler.""" + if record.slug != data["slug"]: + raise ValueError( + "Cannot change the slug of the community as it is used in AAI" + ) + + def delete(self, identity, record=None, **kwargs): + """Delete handler.""" + raise NotImplementedError("Delete is not supported at the time being") diff --git a/oarepo_oidc_einfra/tasks.py b/oarepo_oidc_einfra/tasks.py new file mode 100644 index 0000000..947d75f --- /dev/null +++ b/oarepo_oidc_einfra/tasks.py @@ -0,0 +1,215 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +""" +Background tasks. +""" +import json +import logging +from typing import List, Tuple + +from celery import shared_task +from flask import current_app +from invenio_accounts.models import User +from invenio_communities.communities.records.api import Community +from invenio_db import db +from invenio_files_rest.storage import PyFSFileStorage + +from oarepo_oidc_einfra.communities import CommunitySupport +from oarepo_oidc_einfra.mutex import mutex +from oarepo_oidc_einfra.perun.dump import PerunDumpData +from oarepo_oidc_einfra.perun.oidc import einfra_to_local_users_map +from oarepo_oidc_einfra.proxies import current_einfra_oidc + +log = logging.getLogger("PerunSynchronizationTask") + + +@shared_task +@mutex("EINFRA_SYNC_MUTEX") +def synchronize_community_to_perun(community_id) -> None: + """ + Synchronizes community into Perun groups and resources. + The call is idempotent, if the perun mapping already exists, + it is left untouched. + + :param community_id: id of the community + + Structure inside Perun + + groups: + EINFRA_COMMUNITIES_GROUP_ID + +-- Community {slug} + +-- Role {role_name} of {slug} + +-- Role {role_name} of {slug} ... + + resources: + EINFRA_REPOSITORY_FACILITY_ID + +-- Community:{slug} - capab. res:communities:{slug}, assigned community group + +-- Community:{slug}:{role_name} - capab. res:communities:{slug}:role:{role_name}, assigned role group + """ + community = Community.pid.resolve(community_id) + slug = community.slug + roles = current_app.config["COMMUNITIES_ROLES"] + + api = current_einfra_oidc.perun_api() + + group, resource = map_community_or_role( + api, + parent_id=current_app.config["EINFRA_COMMUNITIES_GROUP_ID"], + name=f"Community {slug}", + description=community.metadata["description"] or f"Group for community {slug}", + resource_name=f"Community:{slug}", + resource_description=f"Resource for community {slug}", + resource_capabilities=[f"res:communities:{slug}"], + ) + + parent_id = group["id"] + + # for each role, generate group & resource for the role + for role in roles: + role_name = role["name"] + map_community_or_role( + api, + name=f"Role {role_name} of {slug}", + description=f"Group for role {role_name} of community {slug}", + parent_id=parent_id, + resource_name=f"Community:{slug}:{role_name}", + resource_description=f"Resource for community {slug} and role {role_name}", + resource_capabilities=[f"res:communities:{slug}:role:{role_name}"], + ) + + +def map_community_or_role( + api, + *, + parent_id, + name, + description, + resource_name, + resource_description, + resource_capabilities, +): + """ + Map a single community or community role, adds synchronization service so that we get + the resource in the dump from perun. + + :param api: perun api + :param parent_id: parent group + :param name: name of the group representing the community/role + :param description: description of the group + :param resource_name: name of the resource + :param resource_description: description of the resource + :param resource_capabilities: resource capabilities + :return: (group json, resource json) + """ + # generate group for community + group, group_created, admin_added = api.create_group( + name=name, description=description, parent_group_id=parent_id + ) + + # add the synchronization resource + resource, resource_created = api.create_resource_with_group_and_capabilities( + vo_id=current_app.config["EINFRA_REPOSITORY_VO_ID"], + facility_id=current_app.config["EINFRA_REPOSITORY_FACILITY_ID"], + group_id=group["id"], + name=resource_name, + description=resource_description, + capability_attr_id=current_app.config["EINFRA_CAPABILITIES_ATTRIBUTE_ID"], + capabilities=resource_capabilities, + perun_sync_service_id=current_app.config["EINFRA_SYNC_SERVICE_ID"], + ) + return group, resource + + +@shared_task +def synchronize_all_communities_to_perun(): + """ + Checks and repairs community mapping within perun + """ + for community_model in Community.model_cls.query.all(): + synchronize_community_to_perun(str(community_model.id)) + + +@shared_task +@mutex("EINFRA_SYNC_MUTEX") +def update_from_perun_dump(dump_url, fix_communities_in_perun=True): + """ + Updates user communities from perun dump and checks for local communities + not propagated to perun yet (and propagates them) + + :param dump_url: url with the dump + :param fix_communities_in_perun if some local communities were not propagated to perun, propagate them + """ + location = PyFSFileStorage(dump_url) + with location.open() as f: + data = json.load(f) + + community_support = CommunitySupport() + dump = PerunDumpData( + data, community_support.slug_to_id, community_support.role_names + ) + + if fix_communities_in_perun: + synchronize_communities_to_perun( + community_support.all_community_roles, dump.aai_community_roles + ) + + synchronize_users_from_perun(dump, community_support) + + +def synchronize_communities_to_perun(repository_community_roles, aai_community_roles): + resource_community_roles: List[Tuple[str, str]] + + if repository_community_roles - aai_community_roles: + log.info( + "Some community roles are not mapped " + f"to any resource: {repository_community_roles - aai_community_roles}" + ) + unsynchronized_communities = { + cr.community_id for cr in repository_community_roles - aai_community_roles + } + for community_id in unsynchronized_communities: + synchronize_community_to_perun.delay(community_id) + + +def synchronize_users_from_perun(dump, community_support): + local_users_by_einfra = einfra_to_local_users_map() + for aai_user in dump.users(): + local_user_id = local_users_by_einfra.pop(aai_user.einfra_id, None) + # do not create new users proactively, we can do it on the first login + if not local_user_id: + continue + + user = User.query.filter_by(id=local_user_id).one() + + update_user_metadata( + user, aai_user.full_name, aai_user.email, aai_user.organization + ) + community_support.set_user_community_membership(user, aai_user.roles) + # for users that are not in the dump anymore, remove all communities + for local_user_id in local_users_by_einfra.values(): + user = User.query.filter_by(id=local_user_id).one() + community_support.set_user_community_membership(user, set()) + + +def update_user_metadata(user, full_name, email, organization): + save = False + user_profile = user.user_profile + if full_name != user.user_profile.get("full_name"): + user_profile["full_name"] = full_name + save = True + if organization != user.user_profile.get("affiliations"): + user_profile["affiliations"] = organization + save = True + email = email.lower() + if email != user.email: + user.email = email + save = True + if save: + user.user_profile = {**user_profile} + db.session.add(user) + db.session.commit() diff --git a/oidc_einfra/__init__.py b/oidc_einfra/__init__.py deleted file mode 100644 index 7b53654..0000000 --- a/oidc_einfra/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2023 CESNET. -# -# CESNET-OpenID-Remote is free software; you can redistribute it and/or -# modify it under the terms of the MIT License; see LICENSE file for more -# details. - -"""CESNET OIDC Auth backend for OARepo""" - -from .version import __version__ -from .remote import EINFRA_LOGIN_APP - -__all__ = ("__version__", "EINFRA_LOGIN_APP") diff --git a/oidc_einfra/communities.py b/oidc_einfra/communities.py deleted file mode 100644 index 8b1b44c..0000000 --- a/oidc_einfra/communities.py +++ /dev/null @@ -1,108 +0,0 @@ -from collections import defaultdict -from typing import Dict, Set - -from flask import abort -from invenio_access.permissions import system_identity -from invenio_communities import current_communities -from invenio_oauthclient.handlers.token import token_getter -from invenio_oauthclient.oauth import oauth_get_user -from invenio_search.engine import dsl - - -def get_user_community_roles(user) -> Dict[str, Set[str]]: - members_service = current_communities.service.members - search = members_service._search( - "search", - system_identity, - {}, - None, - extra_filter=dsl.Q("term", **{"user.id": str(user.id)}), - ) - - result = search.execute() - ret = defaultdict(set) - for hit in result: - ret[hit["community_id"]].add(hit["role"]) - return ret - - -def get_user_perun_groups(remote): - user_info = remote.get(f"{remote.base_url}userinfo") - try: - return set(user_info.data["eduperson_entitlement"]) - except (AttributeError, KeyError): - return set() - - -def add_user_community_membership(community_id, community_role, user): - data = { - "role": community_role, - "members": [{"type": "user", "id": str(user.id)}], - } - current_communities.service.members.add(system_identity, community_id, data) - - -def get_mapped_communities(perun_groups): - communities = current_communities.service.scan( - system_identity, params={"facets": {"aai_mapping_group": perun_groups}} - ) - ret = {} - for community in communities: - aai_mapping = community.get("custom_fields", {}).get("aai_mapping") - if aai_mapping: - ret[community["id"]] = aai_mapping - return ret - -def remove_user_community_membership(community_id, user): - data = {"members": [{"type": "user", "id": str(user.id)}]} - current_communities.service.members.delete(system_identity, community_id, data) - - -def split_user_roles(mapping, current_roles, perun_groups): - kept_roles = set() - added_roles = set() - for entry in mapping: - if entry["aai_group"] in perun_groups: - role = entry["role"] - if role not in current_roles: - added_roles.add(role) - else: - kept_roles.add(role) - removed_roles = current_roles - kept_roles - return kept_roles, added_roles, removed_roles - - -def account_info_link_perun_groups(remote, *, account_info, **kwargs): - user = oauth_get_user( - remote.consumer_key, - account_info=account_info, - access_token=token_getter(remote)[0], - ) - - if user is not None: - return link_perun_groups(remote, user) - - -def link_perun_groups(remote, user): - user_community_roles = get_user_community_roles(user) - perun_groups = get_user_perun_groups(remote) - communities = get_mapped_communities(perun_groups) - - # add part - for community_id, mapping in communities.items(): - kept_roles, added_roles, removed_roles = split_user_roles( - mapping, user_community_roles.pop(community_id, set()), perun_groups - ) - if len(kept_roles) + len(added_roles) > 1: - abort( - 403, - f"User cannot be in multiple roles: {kept_roles | added_roles}", - ) - if removed_roles: - remove_user_community_membership(community_id, user) - added_roles.update(kept_roles) - for role in added_roles: - add_user_community_membership(community_id, role, user) - - for community_id in user_community_roles: - remove_user_community_membership(community_id, user) diff --git a/oidc_einfra/jwk2pem.py b/oidc_einfra/jwk2pem.py deleted file mode 100644 index daa5d5d..0000000 --- a/oidc_einfra/jwk2pem.py +++ /dev/null @@ -1,11 +0,0 @@ -import jwcrypto.jwk - -key_dict = { - "e": "AQAB", - "kty": "RSA", - "n": "mho5h_lz6USUUazQaVT3PHloIk_Ljs2vZl_RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6_QNaMtynvlSlnkuWrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV-bMxkVaElhdHNFzUfHv-XqI8Hkc82mIGtyeMQn-VAuZbYkVXnjyCwwa9RmPOSH-O4N4epDXKk1VK9dUxf_rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPWJDoL092ctPCFlUMBBZ_OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAbnw" -} - -key = jwcrypto.jwk.JWK(**key_dict) -pem = key.export_to_pem(False, False) -print(pem) diff --git a/oidc_einfra/version.py b/oidc_einfra/version.py deleted file mode 100644 index a03ade6..0000000 --- a/oidc_einfra/version.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2023 CESNET. -# -# CESNET-OpenID-Remote is free software; you can redistribute it and/or -# modify it under the terms of the MIT License; see LICENSE file for more -# details. - -"""Version information for CESNET-OpenID-Remote. -This file is imported by ``oidc_einfra.__init__``, -and parsed by ``setup.py``. -""" - -__version__ = "3.0.0" diff --git a/run-tests.sh b/run-tests.sh new file mode 100755 index 0000000..9dc7edd --- /dev/null +++ b/run-tests.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +PYTHON=python3 + +set -e + +OAREPO_VERSION="${OAREPO_VERSION:-12}" + +VENV=".venv" + +if test -d $VENV ; then + rm -rf $VENV +fi + +$PYTHON -m venv $VENV +source $VENV/bin/activate + +pip install -U setuptools pip wheel +pip install "oarepo[tests]==${OAREPO_VERSION}.*" +pip install -e . +pip install pytest-invenio + +pytest tests diff --git a/setup.cfg b/setup.cfg index fedca23..e27cb73 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,18 +2,27 @@ name = oarepo-oidc-einfra version = 1.0.0 description = E-infra OIDC Auth backend for OARepo -authors = Miroslav Bauer , Juraj Trappl +authors = Miroslav Bauer , Juraj Trappl , Miroslav Simek readme = README.md long_description = file:README.md long_description_content_type = text/markdown +url = https://github.com/oarepo/oidc-einfra +project_urls = + Source = https://github.com/oarepo/oarepo-oidc-einfra packages = find: include_package_data = True [options] -python = >=3.9 +python = >=3.10 install_requires = oarepo-communities + ; remove the oarepo-requests and oarepo-global-search dependency when bug BE-436 and BE-437 are fixed + oarepo-requests + oarepo-global-search + oarepo-workflows + urnparse + [options.package_data] * = *.json, *.rst, *.md, *.json5, *.jinja2, *.po, *.mo, *.pot, *.js, *.jsx, *.less, *.jinja @@ -26,6 +35,21 @@ exclude = [options.extras_require] devs = check-manifest + black + isort + autoflake + licenseheaders tests = pytest-invenio oarepo>=12 + responses + +[options.entry_points] +invenio_base.apps = + oarepo_oidc_einfra = oarepo_oidc_einfra.ext:EInfraOIDCApp +invenio_base.api_apps = + oarepo_oidc_einfra = oarepo_oidc_einfra.ext:EInfraOIDCApp +invenio_access.actions = + upload_dump.actions = oarepo_oidc_einfra.resources:upload_dump_action +invenio_base.api_blueprints = + oarepo_oidc_einfra = oarepo_oidc_einfra.resources:create_rest_blueprint diff --git a/setup.py b/setup.py index fc1f76c..99f81d3 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,10 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# from setuptools import setup -setup() \ No newline at end of file +setup() diff --git a/tests/__init__.py b/tests/__init__.py index e69de29..4f563a3 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -0,0 +1,7 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# diff --git a/tests/conftest.py b/tests/conftest.py index d8a9a01..d6e7a8c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,238 +1,224 @@ -import copy +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +import contextlib +import json +import logging import os -from unittest.mock import Mock +import shutil +import sys +from pathlib import Path import pytest -from invenio_access.permissions import system_identity -from invenio_app.factory import create_api -from invenio_communities.cli import create_communities_custom_field -from invenio_communities.communities.records.api import Community -from invenio_communities.proxies import current_communities -from oarepo_communities.cf.aai import AAIMappingCF +import yaml -from oidc_einfra import remote +from oarepo_oidc_einfra.perun import PerunLowLevelAPI + +logging.basicConfig(level=logging.INFO) +opensearch_logger = logging.getLogger("opensearch") +opensearch_logger.setLevel(logging.ERROR) @pytest.fixture(scope="module") def create_app(instance_path, entry_points): """Application factory fixture.""" + from invenio_app.factory import create_app - return create_api + return create_app @pytest.fixture(scope="module") -def community_service(app): - """Community service.""" - return current_communities.service +def app_config(app_config): + app_config["CELERY_TASK_ALWAYS_EAGER"] = True + app_config["CELERY_TASK_EAGER_PROPAGATES"] = True + + # do not automatically run community synchronization in tests + app_config["EINFRA_COMMUNITY_SYNCHRONIZATION"] = False + app_config["EINFRA_API_URL"] = "https://perun-api.e-infra.cz" + app_config["COMMUNITIES_ROLES"] = [ + dict( + name="curator", + title="Curator", + description="Can curate records.", + can_manage=True, + is_owner=True, + can_manage_roles=["member"], + ), + dict( + name="member", + title="Member", + description="Community member with read permissions.", + ), + ] + password_path = Path(__file__).parent.parent / ".perun_passwd" + if password_path.exists(): + app_config["EINFRA_SERVICE_PASSWORD"] = password_path.read_text().strip() + else: + app_config["EINFRA_SERVICE_PASSWORD"] = "dummy" + + app_config["EINFRA_SERVICE_ID"] = 144994 + app_config["EINFRA_SERVICE_USERNAME"] = "nrp-fa-devrepo" + app_config["EINFRA_COMMUNITIES_GROUP_ID"] = 15393 + app_config["EINFRA_REPOSITORY_VO_ID"] = 4003 + app_config["EINFRA_REPOSITORY_FACILITY_ID"] = 4662 + app_config["EINFRA_CAPABILITIES_ATTRIBUTE_ID"] = 3585 + app_config["EINFRA_SYNC_SERVICE_ID"] = 1023 + app_config["EINFRA_RSA_KEY"] = ( + b"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmho5h/lz6USUUazQaVT3\nPHloIk/Ljs2vZl/RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6/QNaMtynvlSlnkuW\nrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV+bMxkVaElhd\nHNFzUfHv+XqI8Hkc82mIGtyeMQn+VAuZbYkVXnjyCwwa9RmPOSH+O4N4epDXKk1V\nK9dUxf/rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPW\nJDoL092ctPCFlUMBBZ/OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAb\nnwIDAQAB\n-----END PUBLIC KEY-----\n" + ) + app_config["EINFRA_DUMP_DATA_URL"] = "/tmp" -@pytest.fixture(scope="module") -def member_service(community_service): - """Members subservice.""" - return community_service.members + from oarepo_oidc_einfra import EINFRA_LOGIN_APP + app_config["OAUTHCLIENT_REMOTE_APPS"] = {"e-infra": EINFRA_LOGIN_APP} -@pytest.fixture(scope="module") -def app_config(app_config): - # Custom fields app_config["JSONSCHEMAS_HOST"] = "localhost" - app_config[ - "RECORDS_REFRESOLVER_CLS" - ] = "invenio_records.resolver.InvenioRefResolver" - app_config[ - "RECORDS_REFRESOLVER_STORE" - ] = "invenio_jsonschemas.proxies.current_refresolver_store" - - app_config["COMMUNITIES_CUSTOM_FIELDS"] = [ - AAIMappingCF("aai_mapping"), - ] + app_config["RECORDS_REFRESOLVER_CLS"] = ( + "invenio_records.resolver.InvenioRefResolver" + ) + app_config["RECORDS_REFRESOLVER_STORE"] = ( + "invenio_jsonschemas.proxies.current_refresolver_store" + ) + app_config["RATELIMIT_AUTHENTICATED_USER"] = "200 per second" app_config["SEARCH_HOSTS"] = [ { "host": os.environ.get("OPENSEARCH_HOST", "localhost"), "port": os.environ.get("OPENSEARCH_PORT", "9200"), } ] - + # disable redis cache app_config["CACHE_TYPE"] = "SimpleCache" # Flask-Caching related configs app_config["CACHE_DEFAULT_TIMEOUT"] = 300 + app_config["FILES_REST_STORAGE_CLASS_LIST"] = { + "L": "Local", + "F": "Fetch", + "R": "Remote", + } + app_config["FILES_REST_DEFAULT_STORAGE_CLASS"] = "L" + + app_config["APP_THEME"] = ["oarepo", "semantic-ui"] + + app_config["SERVER_NAME"] = "127.0.0.1:5000" + + app_config["EINFRA_CONSUMER_KEY"] = os.environ.get("INVENIO_EINFRA_CONSUMER_KEY") + app_config["EINFRA_CONSUMER_SECRET"] = os.environ.get( + "INVENIO_EINFRA_CONSUMER_SECRET" + ) - app_config["OAUTHCLIENT_REMOTE_APPS"] = {"eduid": remote.REMOTE_APP} - app_config["PERUN_APP_CREDENTIALS_CONSUMER_KEY"] = "lalala" return app_config -@pytest.fixture(scope="function") -def minimal_community(): - """Minimal community metadata.""" - return { - "access": { - "visibility": "public", - "record_policy": "open", - }, - "slug": "public", - "metadata": { - "title": "My Community", - }, - } +@pytest.fixture(scope="module", autouse=True) +def location(location): + return location -@pytest.fixture(scope="function") -def minimal_community2(minimal_community): - edited = copy.deepcopy(minimal_community) - edited["slug"] = "comm2" - return edited +@pytest.fixture() +def perun_api_url(app): + return app.config["EINFRA_API_URL"] -@pytest.fixture(scope="module") -def users(UserFixture, app, database): - """Users.""" - users = {} - for r in ["owner", "manager", "curator", "reader"]: - u = UserFixture( - email=f"{r}@{r}.org", - password=r, - username=r, - user_profile={ - "full_name": f"{r} {r}", - "affiliations": "CERN", - }, - preferences={ - "visibility": "public", - "email_visibility": "restricted", - }, - active=True, - confirmed=True, - ) - u.create(app, database) - users[r] = u - # when using `database` fixture (and not `db`), commit the creation of the - # user because its implementation uses a nested session instead - database.session.commit() - return users +@pytest.fixture() +def perun_service_id(app): + return app.config["EINFRA_SERVICE_ID"] -@pytest.fixture(scope="module") -def community_factory(community_service): - def _community(identity, community_dict): - c = community_service.create(identity, community_dict) - Community.index.refresh() - return c +@pytest.fixture() +def perun_service_username(app): + return app.config["EINFRA_SERVICE_USERNAME"] - return _community +@pytest.fixture() +def perun_service_password(app): + return app.config["EINFRA_SERVICE_PASSWORD"] -@pytest.fixture(scope="function") -def community(community_factory, users, community_service, minimal_community, location): - return community_factory(users["owner"].identity, minimal_community) +@pytest.fixture() +def perun_sync_service_id(app): + return app.config["EINFRA_SYNC_SERVICE_ID"] -@pytest.fixture(scope="function") -def community2( - community_factory, users, community_service, minimal_community2, location -): - """A community.""" - return community_factory(users["owner"].identity, minimal_community2) +@pytest.fixture() +def test_vo_id(app): + return app.config["EINFRA_REPOSITORY_VO_ID"] -@pytest.fixture(scope="function") -def init_cf(base_app): - result = base_app.test_cli_runner().invoke( - create_communities_custom_field, ["-f", "aai_mapping"] - ) - assert result.exit_code == 0 - Community.index.refresh() +@pytest.fixture() +def test_facility_id(app): + return app.config["EINFRA_REPOSITORY_FACILITY_ID"] -@pytest.fixture(scope="module") -def aai_mapping_example_dict(): - return [{"role": "curator", "aai_group": "test_community:curator"}] +@pytest.fixture() +def test_capabilities_attribute_id(app): + return app.config["EINFRA_CAPABILITIES_ATTRIBUTE_ID"] -@pytest.fixture(scope="function") -def community_with_aai_mapping_cf( - users, - community_service, - community, - minimal_community, - aai_mapping_example_dict, - init_cf, + +@pytest.fixture() +def test_repo_communities_id(app): + return app.config["EINFRA_COMMUNITIES_GROUP_ID"] + + +@pytest.fixture() +def low_level_perun_api( + perun_api_url, perun_service_id, perun_service_username, perun_service_password ): - minimal_community["custom_fields"]["aai_mapping"] = aai_mapping_example_dict - community = community_service.update( - system_identity, community["id"], minimal_community + return PerunLowLevelAPI( + base_url=perun_api_url, + service_id=perun_service_id, + service_username=perun_service_username, + service_password=perun_service_password, ) - Community.index.refresh() - return community + + +@pytest.fixture() +def smart_record(perun_api_url, low_level_perun_api): + import responses + from responses._recorder import Recorder + + @contextlib.contextmanager + def smart_record(fname): + file_path = Path(__file__).parent / "request_data" / fname + if not file_path.exists(): + with Recorder() as recorder: + yield False + recorder.dump_to_file( + file_path=file_path, registered=recorder.get_registry().registered + ) + else: + print("Using recorded data") + low_level_perun_api._auth = ( + None # reset the auth just to make sure we use the recorded data + ) + with responses.RequestsMock() as rsps: + rsps._add_from_file(file_path=file_path) + yield True + + return smart_record @pytest.fixture(scope="function") -def community2_with_aai_mapping_cf( - users, - community_service, - community2, - minimal_community2, - aai_mapping_example_dict, - init_cf, -): - edited = copy.deepcopy(aai_mapping_example_dict) - edited.append({"role": "curator", "aai_group": "alt_test_community:curator"}) - minimal_community2["custom_fields"]["aai_mapping"] = edited - community = community_service.update( - system_identity, community2["id"], minimal_community2 +def test_group_id(): + with ( + Path(__file__).parent / "request_data" / "test_create_group.yaml" + ).open() as f: + data = yaml.safe_load(f) + payload = json.loads(data["responses"][1]["response"]["body"]) + return payload["id"] + + +@pytest.fixture() +def test_ui_pages(app): + python_path = Path(sys.executable) + invenio_instance_path = python_path.parent.parent / "var" / "instance" + manifest_path = invenio_instance_path / "static" / "dist" + manifest_path.mkdir(parents=True, exist_ok=True) + shutil.copy( + Path(__file__).parent / "manifest.json", manifest_path / "manifest.json" ) - Community.index.refresh() - return community - - -@pytest.fixture -def return_userinfo_curator(): - def _return_userinfo(val): - if val == "https://login.cesnet.cz/oidc/userinfo": - usrinfo_obj = Mock() - usrinfo_obj.data = {"eduperson_entitlement": ["test_community:curator"]} - return usrinfo_obj - - return _return_userinfo - - -@pytest.fixture -def return_userinfo_two_communities(): - def _return_userinfo(val): - if val == "https://login.cesnet.cz/oidc/userinfo": - usrinfo_obj = Mock() - usrinfo_obj.data = { - "eduperson_entitlement": [ - "test_community:curator", - "alt_test_community:curator", - ] - } - return usrinfo_obj - - return _return_userinfo - - -@pytest.fixture -def return_userinfo_both(): - def _return_userinfo(val): - if val == "https://login.cesnet.cz/oidc/userinfo": - usrinfo_obj = Mock() - usrinfo_obj.data = { - "eduperson_entitlement": [ - "test_community:curator", - "test_community:reader", - ] - } - return usrinfo_obj - - return _return_userinfo - - -@pytest.fixture -def return_userinfo_noone(): - def _return_userinfo(val): - if val == "https://login.cesnet.cz/oidc/userinfo": - usrinfo_obj = Mock() - usrinfo_obj.data = {"eduperson_entitlement": []} - return usrinfo_obj - - return _return_userinfo + + app.jinja_loader.searchpath.append(str(Path(__file__).parent / "templates")) diff --git a/tests/dump_data/1.json b/tests/dump_data/1.json new file mode 100644 index 0000000..5e2e4da --- /dev/null +++ b/tests/dump_data/1.json @@ -0,0 +1,38 @@ +{ + "metadata" : { + "facility" : { + "attributes" : {}, + "destinations" : [ + "perun_exports@accback.du.cesnet.cz:922" + ], + "facilityName" : "nrp_devel", + "facilityUuid" : "8d901e8e-5e9a-4fd6-841e-a67a4423d691" + }, + "version" : "3.0.1" + }, + "resources" : { + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:testing_nrp_devel" + ] + } + } + }, + "users" : { + "20a47687-e2db-4a4e-b98a-1c2b7fd72594" : { + "allowed_resources" : { + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : {} + } + }, + "attributes" : { + "urn:perun:user:attribute-def:core:displayName" : "Miroslav Šimek", + "urn:perun:user:attribute-def:def:organization" : "CESNET, z. s. p. o.", + "urn:perun:user:attribute-def:def:preferredMail" : "Miroslav.Simek@cesnet.cz", + "urn:perun:user:attribute-def:virt:login-namespace:einfraid-persistent" : "12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz" + } + } + } +} + diff --git a/tests/dump_data/2.json b/tests/dump_data/2.json new file mode 100644 index 0000000..a28e3b7 --- /dev/null +++ b/tests/dump_data/2.json @@ -0,0 +1,53 @@ +{ + "metadata" : { + "facility" : { + "attributes" : {}, + "destinations" : [ + "perun_exports@accback.du.cesnet.cz:922" + ], + "facilityName" : "nrp_devel", + "facilityUuid" : "8d901e8e-5e9a-4fd6-841e-a67a4423d691" + }, + "version" : "3.0.1" + }, + "resources" : { + "0003a30a-5512-4ff1-ae1c-b13372041459" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:communities:abc:members" + ] + } + }, + "2077a18f-13d1-4d00-9908-aeeef28e7a56" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [] + } + }, + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:testing_nrp_devel" + ] + } + } + }, + "users" : { + "20a47687-e2db-4a4e-b98a-1c2b7fd72594" : { + "allowed_resources" : { + "2077a18f-13d1-4d00-9908-aeeef28e7a56" : { + "attributes" : {} + }, + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : {} + } + }, + "attributes" : { + "urn:perun:user:attribute-def:core:displayName" : "Miroslav Šimek", + "urn:perun:user:attribute-def:def:organization" : "CESNET, z. s. p. o.", + "urn:perun:user:attribute-def:def:preferredMail" : "Miroslav.Simek@cesnet.cz", + "urn:perun:user:attribute-def:virt:login-namespace:einfraid-persistent" : "12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz" + } + } + } +} + diff --git a/tests/dump_data/3.json b/tests/dump_data/3.json new file mode 100644 index 0000000..55cd616 --- /dev/null +++ b/tests/dump_data/3.json @@ -0,0 +1,87 @@ +{ + "metadata" : { + "facility" : { + "attributes" : {}, + "destinations" : [ + "perun_exports@accback.du.cesnet.cz:922" + ], + "facilityName" : "nrp_devel", + "facilityUuid" : "8d901e8e-5e9a-4fd6-841e-a67a4423d691" + }, + "version" : "3.0.1" + }, + "resources" : { + "0003a30a-5512-4ff1-ae1c-b13372041459" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:communities:abc:members" + ] + } + }, + "2077a18f-13d1-4d00-9908-aeeef28e7a56" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [] + } + }, + "4c09431a-bb4d-4b9d-9abc-224166165d42" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:communities:AAA" + ] + } + }, + "b5e649a9-913f-49a3-abd5-b31adc85c01d" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:communities:cuni" + ] + } + }, + "c3342a80-8c86-420f-948d-f943c1584aa1" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:communities:cuni:role:curator" + ] + } + }, + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:testing_nrp_devel" + ] + } + }, + "f7dedca0-1302-401d-8328-cbdee1180202" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:communities:cuni:role:member" + ] + } + } + }, + "users" : { + "20a47687-e2db-4a4e-b98a-1c2b7fd72594" : { + "allowed_resources" : { + "2077a18f-13d1-4d00-9908-aeeef28e7a56" : { + "attributes" : {} + }, + "b5e649a9-913f-49a3-abd5-b31adc85c01d" : { + "attributes" : {} + }, + "c3342a80-8c86-420f-948d-f943c1584aa1" : { + "attributes" : {} + }, + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : {} + } + }, + "attributes" : { + "urn:perun:user:attribute-def:core:displayName" : "Miroslav Šimek", + "urn:perun:user:attribute-def:def:organization" : "CESNET, z. s. p. o.", + "urn:perun:user:attribute-def:def:preferredMail" : "Miroslav.Simek@cesnet.cz", + "urn:perun:user:attribute-def:virt:login-namespace:einfraid-persistent" : "12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz" + } + } + } +} + diff --git a/tests/dump_data/4.json b/tests/dump_data/4.json new file mode 100644 index 0000000..a28e3b7 --- /dev/null +++ b/tests/dump_data/4.json @@ -0,0 +1,53 @@ +{ + "metadata" : { + "facility" : { + "attributes" : {}, + "destinations" : [ + "perun_exports@accback.du.cesnet.cz:922" + ], + "facilityName" : "nrp_devel", + "facilityUuid" : "8d901e8e-5e9a-4fd6-841e-a67a4423d691" + }, + "version" : "3.0.1" + }, + "resources" : { + "0003a30a-5512-4ff1-ae1c-b13372041459" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:communities:abc:members" + ] + } + }, + "2077a18f-13d1-4d00-9908-aeeef28e7a56" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [] + } + }, + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:testing_nrp_devel" + ] + } + } + }, + "users" : { + "20a47687-e2db-4a4e-b98a-1c2b7fd72594" : { + "allowed_resources" : { + "2077a18f-13d1-4d00-9908-aeeef28e7a56" : { + "attributes" : {} + }, + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : {} + } + }, + "attributes" : { + "urn:perun:user:attribute-def:core:displayName" : "Miroslav Šimek", + "urn:perun:user:attribute-def:def:organization" : "CESNET, z. s. p. o.", + "urn:perun:user:attribute-def:def:preferredMail" : "Miroslav.Simek@cesnet.cz", + "urn:perun:user:attribute-def:virt:login-namespace:einfraid-persistent" : "12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz" + } + } + } +} + diff --git a/tests/dump_data/5.json b/tests/dump_data/5.json new file mode 100644 index 0000000..c06aef5 --- /dev/null +++ b/tests/dump_data/5.json @@ -0,0 +1,24 @@ +{ + "metadata" : { + "facility" : { + "attributes" : {}, + "destinations" : [ + "perun_exports@accback.du.cesnet.cz:922" + ], + "facilityName" : "nrp_devel", + "facilityUuid" : "8d901e8e-5e9a-4fd6-841e-a67a4423d691" + }, + "version" : "3.0.1" + }, + "resources" : { + "e22b54ff-d1c6-4c66-a838-652dc655dc91" : { + "attributes" : { + "urn:perun:resource:attribute-def:def:capabilities" : [ + "res:testing_nrp_devel" + ] + } + } + }, + "users" : {} +} + diff --git a/tests/manifest.json b/tests/manifest.json new file mode 100644 index 0000000..0dfa22a --- /dev/null +++ b/tests/manifest.json @@ -0,0 +1,1319 @@ +{ + "status": "done", + "assets": { + "css/bottom_css.1b2e27b61142106979cc.css": { + "name": "css/bottom_css.1b2e27b61142106979cc.css", + "path": "/invenio/instance/static/dist/css/bottom_css.1b2e27b61142106979cc.css", + "publicPath": "/static/dist/css/bottom_css.1b2e27b61142106979cc.css" + }, + "css/bottom_css.78b33add02920b2d01b2.css": { + "name": "css/bottom_css.78b33add02920b2d01b2.css", + "path": "/invenio/instance/static/dist/css/bottom_css.78b33add02920b2d01b2.css", + "publicPath": "/static/dist/css/bottom_css.78b33add02920b2d01b2.css" + }, + "css/oarepo_vocabularies_ui_components.22a6dcb4ec850142e289.css": { + "name": "css/oarepo_vocabularies_ui_components.22a6dcb4ec850142e289.css", + "path": "/invenio/instance/static/dist/css/oarepo_vocabularies_ui_components.22a6dcb4ec850142e289.css", + "publicPath": "/static/dist/css/oarepo_vocabularies_ui_components.22a6dcb4ec850142e289.css" + }, + "css/oarepo_vocabularies_ui_components.fabb3796f93735eab713.css": { + "name": "css/oarepo_vocabularies_ui_components.fabb3796f93735eab713.css", + "path": "/invenio/instance/static/dist/css/oarepo_vocabularies_ui_components.fabb3796f93735eab713.css", + "publicPath": "/static/dist/css/oarepo_vocabularies_ui_components.fabb3796f93735eab713.css" + }, + "css/pdfjs_css.7523441f07ec785e6f0f.css": { + "name": "css/pdfjs_css.7523441f07ec785e6f0f.css", + "path": "/invenio/instance/static/dist/css/pdfjs_css.7523441f07ec785e6f0f.css", + "publicPath": "/static/dist/css/pdfjs_css.7523441f07ec785e6f0f.css" + }, + "css/pdfjs_css.e429d7a8c3723c7764b2.css": { + "name": "css/pdfjs_css.e429d7a8c3723c7764b2.css", + "path": "/invenio/instance/static/dist/css/pdfjs_css.e429d7a8c3723c7764b2.css", + "publicPath": "/static/dist/css/pdfjs_css.e429d7a8c3723c7764b2.css" + }, + "css/prism_css.c5d8ec75707893898080.css": { + "name": "css/prism_css.c5d8ec75707893898080.css", + "path": "/invenio/instance/static/dist/css/prism_css.c5d8ec75707893898080.css", + "publicPath": "/static/dist/css/prism_css.c5d8ec75707893898080.css" + }, + "css/prism_css.d26348f46347b7751296.css": { + "name": "css/prism_css.d26348f46347b7751296.css", + "path": "/invenio/instance/static/dist/css/prism_css.d26348f46347b7751296.css", + "publicPath": "/static/dist/css/prism_css.d26348f46347b7751296.css" + }, + "css/simple_image_css.22066ba3f533514193c2.css": { + "name": "css/simple_image_css.22066ba3f533514193c2.css", + "path": "/invenio/instance/static/dist/css/simple_image_css.22066ba3f533514193c2.css", + "publicPath": "/static/dist/css/simple_image_css.22066ba3f533514193c2.css" + }, + "css/simple_image_css.290dcaa3fef4f2b83552.css": { + "name": "css/simple_image_css.290dcaa3fef4f2b83552.css", + "path": "/invenio/instance/static/dist/css/simple_image_css.290dcaa3fef4f2b83552.css", + "publicPath": "/static/dist/css/simple_image_css.290dcaa3fef4f2b83552.css" + }, + "css/theme-admin.11e5c170f835c367813e.css": { + "name": "css/theme-admin.11e5c170f835c367813e.css", + "path": "/invenio/instance/static/dist/css/theme-admin.11e5c170f835c367813e.css", + "publicPath": "/static/dist/css/theme-admin.11e5c170f835c367813e.css" + }, + "css/theme-admin.a683b9f46174f3bed424.css": { + "name": "css/theme-admin.a683b9f46174f3bed424.css", + "path": "/invenio/instance/static/dist/css/theme-admin.a683b9f46174f3bed424.css", + "publicPath": "/static/dist/css/theme-admin.a683b9f46174f3bed424.css" + }, + "css/vendors~previewer_theme~theme.30d3a0d0ab545555a252.css": { + "name": "css/vendors~previewer_theme~theme.30d3a0d0ab545555a252.css", + "path": "/invenio/instance/static/dist/css/vendors~previewer_theme~theme.30d3a0d0ab545555a252.css", + "publicPath": "/static/dist/css/vendors~previewer_theme~theme.30d3a0d0ab545555a252.css" + }, + "css/vendors~previewer_theme~theme.96782c7b6e34f730c329.css": { + "name": "css/vendors~previewer_theme~theme.96782c7b6e34f730c329.css", + "path": "/invenio/instance/static/dist/css/vendors~previewer_theme~theme.96782c7b6e34f730c329.css", + "publicPath": "/static/dist/css/vendors~previewer_theme~theme.96782c7b6e34f730c329.css" + }, + "css/zip_css.020009a67c87b6f0496f.css": { + "name": "css/zip_css.020009a67c87b6f0496f.css", + "path": "/invenio/instance/static/dist/css/zip_css.020009a67c87b6f0496f.css", + "publicPath": "/static/dist/css/zip_css.020009a67c87b6f0496f.css" + }, + "css/zip_css.3d4504b43b600f573196.css": { + "name": "css/zip_css.3d4504b43b600f573196.css", + "path": "/invenio/instance/static/dist/css/zip_css.3d4504b43b600f573196.css", + "publicPath": "/static/dist/css/zip_css.3d4504b43b600f573196.css" + }, + "fonts/brand-icons.278156e.woff2": { + "name": "fonts/brand-icons.278156e.woff2", + "path": "/invenio/instance/static/dist/fonts/brand-icons.278156e.woff2", + "publicPath": "/static/dist/fonts/brand-icons.278156e.woff2" + }, + "fonts/brand-icons.65a2fb6.ttf": { + "name": "fonts/brand-icons.65a2fb6.ttf", + "path": "/invenio/instance/static/dist/fonts/brand-icons.65a2fb6.ttf", + "publicPath": "/static/dist/fonts/brand-icons.65a2fb6.ttf" + }, + "fonts/brand-icons.cac87dc.woff": { + "name": "fonts/brand-icons.cac87dc.woff", + "path": "/invenio/instance/static/dist/fonts/brand-icons.cac87dc.woff", + "publicPath": "/static/dist/fonts/brand-icons.cac87dc.woff" + }, + "fonts/brand-icons.d68fa3e.eot": { + "name": "fonts/brand-icons.d68fa3e.eot", + "path": "/invenio/instance/static/dist/fonts/brand-icons.d68fa3e.eot", + "publicPath": "/static/dist/fonts/brand-icons.d68fa3e.eot" + }, + "fonts/icons.38c6d8b.woff2": { + "name": "fonts/icons.38c6d8b.woff2", + "path": "/invenio/instance/static/dist/fonts/icons.38c6d8b.woff2", + "publicPath": "/static/dist/fonts/icons.38c6d8b.woff2" + }, + "fonts/icons.425399f.woff": { + "name": "fonts/icons.425399f.woff", + "path": "/invenio/instance/static/dist/fonts/icons.425399f.woff", + "publicPath": "/static/dist/fonts/icons.425399f.woff" + }, + "fonts/icons.a01e3f2.eot": { + "name": "fonts/icons.a01e3f2.eot", + "path": "/invenio/instance/static/dist/fonts/icons.a01e3f2.eot", + "publicPath": "/static/dist/fonts/icons.a01e3f2.eot" + }, + "fonts/icons.c656b8c.ttf": { + "name": "fonts/icons.c656b8c.ttf", + "path": "/invenio/instance/static/dist/fonts/icons.c656b8c.ttf", + "publicPath": "/static/dist/fonts/icons.c656b8c.ttf" + }, + "fonts/Lato-Bold.21b3848.woff2": { + "name": "fonts/Lato-Bold.21b3848.woff2", + "path": "/invenio/instance/static/dist/fonts/Lato-Bold.21b3848.woff2", + "publicPath": "/static/dist/fonts/Lato-Bold.21b3848.woff2" + }, + "fonts/Lato-Bold.825d6d7.eot": { + "name": "fonts/Lato-Bold.825d6d7.eot", + "path": "/invenio/instance/static/dist/fonts/Lato-Bold.825d6d7.eot", + "publicPath": "/static/dist/fonts/Lato-Bold.825d6d7.eot" + }, + "fonts/Lato-Bold.89b6180.woff": { + "name": "fonts/Lato-Bold.89b6180.woff", + "path": "/invenio/instance/static/dist/fonts/Lato-Bold.89b6180.woff", + "publicPath": "/static/dist/fonts/Lato-Bold.89b6180.woff" + }, + "fonts/Lato-Bold.8acc961.ttf": { + "name": "fonts/Lato-Bold.8acc961.ttf", + "path": "/invenio/instance/static/dist/fonts/Lato-Bold.8acc961.ttf", + "publicPath": "/static/dist/fonts/Lato-Bold.8acc961.ttf" + }, + "fonts/Lato-BoldItalic.3e6b998.woff": { + "name": "fonts/Lato-BoldItalic.3e6b998.woff", + "path": "/invenio/instance/static/dist/fonts/Lato-BoldItalic.3e6b998.woff", + "publicPath": "/static/dist/fonts/Lato-BoldItalic.3e6b998.woff" + }, + "fonts/Lato-BoldItalic.50fe8d1.ttf": { + "name": "fonts/Lato-BoldItalic.50fe8d1.ttf", + "path": "/invenio/instance/static/dist/fonts/Lato-BoldItalic.50fe8d1.ttf", + "publicPath": "/static/dist/fonts/Lato-BoldItalic.50fe8d1.ttf" + }, + "fonts/Lato-BoldItalic.add7906.eot": { + "name": "fonts/Lato-BoldItalic.add7906.eot", + "path": "/invenio/instance/static/dist/fonts/Lato-BoldItalic.add7906.eot", + "publicPath": "/static/dist/fonts/Lato-BoldItalic.add7906.eot" + }, + "fonts/Lato-BoldItalic.e48918f.woff2": { + "name": "fonts/Lato-BoldItalic.e48918f.woff2", + "path": "/invenio/instance/static/dist/fonts/Lato-BoldItalic.e48918f.woff2", + "publicPath": "/static/dist/fonts/Lato-BoldItalic.e48918f.woff2" + }, + "fonts/Lato-Italic.2269469.ttf": { + "name": "fonts/Lato-Italic.2269469.ttf", + "path": "/invenio/instance/static/dist/fonts/Lato-Italic.2269469.ttf", + "publicPath": "/static/dist/fonts/Lato-Italic.2269469.ttf" + }, + "fonts/Lato-Italic.2f91a4b.eot": { + "name": "fonts/Lato-Italic.2f91a4b.eot", + "path": "/invenio/instance/static/dist/fonts/Lato-Italic.2f91a4b.eot", + "publicPath": "/static/dist/fonts/Lato-Italic.2f91a4b.eot" + }, + "fonts/Lato-Italic.62a9c83.woff": { + "name": "fonts/Lato-Italic.62a9c83.woff", + "path": "/invenio/instance/static/dist/fonts/Lato-Italic.62a9c83.woff", + "publicPath": "/static/dist/fonts/Lato-Italic.62a9c83.woff" + }, + "fonts/Lato-Italic.bb5de40.woff2": { + "name": "fonts/Lato-Italic.bb5de40.woff2", + "path": "/invenio/instance/static/dist/fonts/Lato-Italic.bb5de40.woff2", + "publicPath": "/static/dist/fonts/Lato-Italic.bb5de40.woff2" + }, + "fonts/Lato-Regular.19df47b.eot": { + "name": "fonts/Lato-Regular.19df47b.eot", + "path": "/invenio/instance/static/dist/fonts/Lato-Regular.19df47b.eot", + "publicPath": "/static/dist/fonts/Lato-Regular.19df47b.eot" + }, + "fonts/Lato-Regular.1d2ca94.woff": { + "name": "fonts/Lato-Regular.1d2ca94.woff", + "path": "/invenio/instance/static/dist/fonts/Lato-Regular.1d2ca94.woff", + "publicPath": "/static/dist/fonts/Lato-Regular.1d2ca94.woff" + }, + "fonts/Lato-Regular.75614cf.woff2": { + "name": "fonts/Lato-Regular.75614cf.woff2", + "path": "/invenio/instance/static/dist/fonts/Lato-Regular.75614cf.woff2", + "publicPath": "/static/dist/fonts/Lato-Regular.75614cf.woff2" + }, + "fonts/Lato-Regular.bb14dc8.ttf": { + "name": "fonts/Lato-Regular.bb14dc8.ttf", + "path": "/invenio/instance/static/dist/fonts/Lato-Regular.bb14dc8.ttf", + "publicPath": "/static/dist/fonts/Lato-Regular.bb14dc8.ttf" + }, + "fonts/outline-icons.5367103.ttf": { + "name": "fonts/outline-icons.5367103.ttf", + "path": "/invenio/instance/static/dist/fonts/outline-icons.5367103.ttf", + "publicPath": "/static/dist/fonts/outline-icons.5367103.ttf" + }, + "fonts/outline-icons.687a499.woff2": { + "name": "fonts/outline-icons.687a499.woff2", + "path": "/invenio/instance/static/dist/fonts/outline-icons.687a499.woff2", + "publicPath": "/static/dist/fonts/outline-icons.687a499.woff2" + }, + "fonts/outline-icons.752905f.eot": { + "name": "fonts/outline-icons.752905f.eot", + "path": "/invenio/instance/static/dist/fonts/outline-icons.752905f.eot", + "publicPath": "/static/dist/fonts/outline-icons.752905f.eot" + }, + "fonts/outline-icons.ddae9b1.woff": { + "name": "fonts/outline-icons.ddae9b1.woff", + "path": "/invenio/instance/static/dist/fonts/outline-icons.ddae9b1.woff", + "publicPath": "/static/dist/fonts/outline-icons.ddae9b1.woff" + }, + "img/brand-icons.6729d29.svg": { + "name": "img/brand-icons.6729d29.svg", + "path": "/invenio/instance/static/dist/img/brand-icons.6729d29.svg", + "publicPath": "/static/dist/img/brand-icons.6729d29.svg" + }, + "img/flags.99f63ae.png": { + "name": "img/flags.99f63ae.png", + "path": "/invenio/instance/static/dist/img/flags.99f63ae.png", + "publicPath": "/static/dist/img/flags.99f63ae.png" + }, + "img/icons.62d9dae.svg": { + "name": "img/icons.62d9dae.svg", + "path": "/invenio/instance/static/dist/img/icons.62d9dae.svg", + "publicPath": "/static/dist/img/icons.62d9dae.svg" + }, + "img/outline-icons.9c4845b.svg": { + "name": "img/outline-icons.9c4845b.svg", + "path": "/invenio/instance/static/dist/img/outline-icons.9c4845b.svg", + "publicPath": "/static/dist/img/outline-icons.9c4845b.svg" + }, + "js/0.f0b23abc5a3b7894b82c.js": { + "name": "js/0.f0b23abc5a3b7894b82c.js", + "path": "/invenio/instance/static/dist/js/0.f0b23abc5a3b7894b82c.js", + "publicPath": "/static/dist/js/0.f0b23abc5a3b7894b82c.js" + }, + "js/adminlte.42a924dd510a5e51b979.js": { + "name": "js/adminlte.42a924dd510a5e51b979.js", + "path": "/invenio/instance/static/dist/js/adminlte.42a924dd510a5e51b979.js", + "publicPath": "/static/dist/js/adminlte.42a924dd510a5e51b979.js" + }, + "js/adminlte.b8dba7c95ea7a702e056.js": { + "name": "js/adminlte.b8dba7c95ea7a702e056.js", + "path": "/invenio/instance/static/dist/js/adminlte.b8dba7c95ea7a702e056.js", + "publicPath": "/static/dist/js/adminlte.b8dba7c95ea7a702e056.js" + }, + "js/base-admin-theme.469b511face6ed650f82.js": { + "name": "js/base-admin-theme.469b511face6ed650f82.js", + "path": "/invenio/instance/static/dist/js/base-admin-theme.469b511face6ed650f82.js", + "publicPath": "/static/dist/js/base-admin-theme.469b511face6ed650f82.js" + }, + "js/base-admin-theme.4b122d5ea696062f654a.js": { + "name": "js/base-admin-theme.4b122d5ea696062f654a.js", + "path": "/invenio/instance/static/dist/js/base-admin-theme.4b122d5ea696062f654a.js", + "publicPath": "/static/dist/js/base-admin-theme.4b122d5ea696062f654a.js" + }, + "js/base.109e805b66010b3ac6f2.js": { + "name": "js/base.109e805b66010b3ac6f2.js", + "path": "/invenio/instance/static/dist/js/base.109e805b66010b3ac6f2.js", + "publicPath": "/static/dist/js/base.109e805b66010b3ac6f2.js" + }, + "js/base.9d47e96f9fb3514286ce.js": { + "name": "js/base.9d47e96f9fb3514286ce.js", + "path": "/invenio/instance/static/dist/js/base.9d47e96f9fb3514286ce.js", + "publicPath": "/static/dist/js/base.9d47e96f9fb3514286ce.js" + }, + "js/bottom_css.559c8ab2c8dd00a6888e.js": { + "name": "js/bottom_css.559c8ab2c8dd00a6888e.js", + "path": "/invenio/instance/static/dist/js/bottom_css.559c8ab2c8dd00a6888e.js", + "publicPath": "/static/dist/js/bottom_css.559c8ab2c8dd00a6888e.js" + }, + "js/bottom_css.c7def77184aad651320f.js": { + "name": "js/bottom_css.c7def77184aad651320f.js", + "path": "/invenio/instance/static/dist/js/bottom_css.c7def77184aad651320f.js", + "publicPath": "/static/dist/js/bottom_css.c7def77184aad651320f.js" + }, + "js/bottom_js.28a4660195d304e6d53e.js": { + "name": "js/bottom_js.28a4660195d304e6d53e.js", + "path": "/invenio/instance/static/dist/js/bottom_js.28a4660195d304e6d53e.js", + "publicPath": "/static/dist/js/bottom_js.28a4660195d304e6d53e.js" + }, + "js/bottom_js.a408d1a120e9055464ac.js": { + "name": "js/bottom_js.a408d1a120e9055464ac.js", + "path": "/invenio/instance/static/dist/js/bottom_js.a408d1a120e9055464ac.js", + "publicPath": "/static/dist/js/bottom_js.a408d1a120e9055464ac.js" + }, + "js/d3_csv.75e5c9e5269671473b80.js": { + "name": "js/d3_csv.75e5c9e5269671473b80.js", + "path": "/invenio/instance/static/dist/js/d3_csv.75e5c9e5269671473b80.js", + "publicPath": "/static/dist/js/d3_csv.75e5c9e5269671473b80.js" + }, + "js/d3_csv.f7e63bb90faea4725332.js": { + "name": "js/d3_csv.f7e63bb90faea4725332.js", + "path": "/invenio/instance/static/dist/js/d3_csv.f7e63bb90faea4725332.js", + "publicPath": "/static/dist/js/d3_csv.f7e63bb90faea4725332.js" + }, + "js/fullscreen_js.e3bb6fe1bc026c6bcc0a.js": { + "name": "js/fullscreen_js.e3bb6fe1bc026c6bcc0a.js", + "path": "/invenio/instance/static/dist/js/fullscreen_js.e3bb6fe1bc026c6bcc0a.js", + "publicPath": "/static/dist/js/fullscreen_js.e3bb6fe1bc026c6bcc0a.js" + }, + "js/i18n_app.0c4c0993bdaa6a4fa94e.js": { + "name": "js/i18n_app.0c4c0993bdaa6a4fa94e.js", + "path": "/invenio/instance/static/dist/js/i18n_app.0c4c0993bdaa6a4fa94e.js", + "publicPath": "/static/dist/js/i18n_app.0c4c0993bdaa6a4fa94e.js" + }, + "js/i18n_app.f9a16803dd05400bd0f2.js": { + "name": "js/i18n_app.f9a16803dd05400bd0f2.js", + "path": "/invenio/instance/static/dist/js/i18n_app.f9a16803dd05400bd0f2.js", + "publicPath": "/static/dist/js/i18n_app.f9a16803dd05400bd0f2.js" + }, + "js/invenio_search_ui_app.3a229e7520cb83507459.js": { + "name": "js/invenio_search_ui_app.3a229e7520cb83507459.js", + "path": "/invenio/instance/static/dist/js/invenio_search_ui_app.3a229e7520cb83507459.js", + "publicPath": "/static/dist/js/invenio_search_ui_app.3a229e7520cb83507459.js" + }, + "js/invenio-administration-create.12b08625af77e0c1e5d2.js": { + "name": "js/invenio-administration-create.12b08625af77e0c1e5d2.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-create.12b08625af77e0c1e5d2.js", + "publicPath": "/static/dist/js/invenio-administration-create.12b08625af77e0c1e5d2.js" + }, + "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js": { + "name": "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "publicPath": "/static/dist/js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js" + }, + "js/invenio-administration-details.4d65c7f63cebb416f887.js": { + "name": "js/invenio-administration-details.4d65c7f63cebb416f887.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-details.4d65c7f63cebb416f887.js", + "publicPath": "/static/dist/js/invenio-administration-details.4d65c7f63cebb416f887.js" + }, + "js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js": { + "name": "js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js", + "publicPath": "/static/dist/js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js" + }, + "js/invenio-administration-details~invenio-communities-admin-featured~invenio-communities-admin-search.746e78604f6b773c1a1d.js": { + "name": "js/invenio-administration-details~invenio-communities-admin-featured~invenio-communities-admin-search.746e78604f6b773c1a1d.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-details~invenio-communities-admin-featured~invenio-communities-admin-search.746e78604f6b773c1a1d.js", + "publicPath": "/static/dist/js/invenio-administration-details~invenio-communities-admin-featured~invenio-communities-admin-search.746e78604f6b773c1a1d.js" + }, + "js/invenio-administration-edit.e004ee5710fb8d22b10d.js": { + "name": "js/invenio-administration-edit.e004ee5710fb8d22b10d.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-edit.e004ee5710fb8d22b10d.js", + "publicPath": "/static/dist/js/invenio-administration-edit.e004ee5710fb8d22b10d.js" + }, + "js/invenio-administration-search.abe875852d9b3340742a.js": { + "name": "js/invenio-administration-search.abe875852d9b3340742a.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-search.abe875852d9b3340742a.js", + "publicPath": "/static/dist/js/invenio-administration-search.abe875852d9b3340742a.js" + }, + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search.8bd20d7547e718fd150c.js": { + "name": "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search.8bd20d7547e718fd150c.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search.8bd20d7547e718fd150c.js", + "publicPath": "/static/dist/js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search.8bd20d7547e718fd150c.js" + }, + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js": { + "name": "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "path": "/invenio/instance/static/dist/js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "publicPath": "/static/dist/js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js" + }, + "js/invenio-communities-admin-featured.b3183bafa1129ccee058.js": { + "name": "js/invenio-communities-admin-featured.b3183bafa1129ccee058.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-admin-featured.b3183bafa1129ccee058.js", + "publicPath": "/static/dist/js/invenio-communities-admin-featured.b3183bafa1129ccee058.js" + }, + "js/invenio-communities-admin-featured~invenio-communities-admin-search.34e33317cc55856bdd80.js": { + "name": "js/invenio-communities-admin-featured~invenio-communities-admin-search.34e33317cc55856bdd80.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-admin-featured~invenio-communities-admin-search.34e33317cc55856bdd80.js", + "publicPath": "/static/dist/js/invenio-communities-admin-featured~invenio-communities-admin-search.34e33317cc55856bdd80.js" + }, + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js": { + "name": "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "publicPath": "/static/dist/js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js" + }, + "js/invenio-communities-admin-search.a861c1c50417e54b78f8.js": { + "name": "js/invenio-communities-admin-search.a861c1c50417e54b78f8.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-admin-search.a861c1c50417e54b78f8.js", + "publicPath": "/static/dist/js/invenio-communities-admin-search.a861c1c50417e54b78f8.js" + }, + "js/invenio-communities-carousel.37197bcd4b7ff52118a5.js": { + "name": "js/invenio-communities-carousel.37197bcd4b7ff52118a5.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-carousel.37197bcd4b7ff52118a5.js", + "publicPath": "/static/dist/js/invenio-communities-carousel.37197bcd4b7ff52118a5.js" + }, + "js/invenio-communities-details-search.c911e2f28076f1b5fa96.js": { + "name": "js/invenio-communities-details-search.c911e2f28076f1b5fa96.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-details-search.c911e2f28076f1b5fa96.js", + "publicPath": "/static/dist/js/invenio-communities-details-search.c911e2f28076f1b5fa96.js" + }, + "js/invenio-communities-featured.856d2ee24ba69bcc5fb1.js": { + "name": "js/invenio-communities-featured.856d2ee24ba69bcc5fb1.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-featured.856d2ee24ba69bcc5fb1.js", + "publicPath": "/static/dist/js/invenio-communities-featured.856d2ee24ba69bcc5fb1.js" + }, + "js/invenio-communities-frontpage.757287079172672a7b02.js": { + "name": "js/invenio-communities-frontpage.757287079172672a7b02.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-frontpage.757287079172672a7b02.js", + "publicPath": "/static/dist/js/invenio-communities-frontpage.757287079172672a7b02.js" + }, + "js/invenio-communities-invitations.ef4646bff64a9d376267.js": { + "name": "js/invenio-communities-invitations.ef4646bff64a9d376267.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-invitations.ef4646bff64a9d376267.js", + "publicPath": "/static/dist/js/invenio-communities-invitations.ef4646bff64a9d376267.js" + }, + "js/invenio-communities-invitations~invenio-communities-members~invenio-communities-members-manager.c589aeec260850c55680.js": { + "name": "js/invenio-communities-invitations~invenio-communities-members~invenio-communities-members-manager.c589aeec260850c55680.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-invitations~invenio-communities-members~invenio-communities-members-manager.c589aeec260850c55680.js", + "publicPath": "/static/dist/js/invenio-communities-invitations~invenio-communities-members~invenio-communities-members-manager.c589aeec260850c55680.js" + }, + "js/invenio-communities-invitations~invenio-communities-requests.ff051d9573313b766adc.js": { + "name": "js/invenio-communities-invitations~invenio-communities-requests.ff051d9573313b766adc.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-invitations~invenio-communities-requests.ff051d9573313b766adc.js", + "publicPath": "/static/dist/js/invenio-communities-invitations~invenio-communities-requests.ff051d9573313b766adc.js" + }, + "js/invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.7acd261e6dae4dc01ab9.js": { + "name": "js/invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.7acd261e6dae4dc01ab9.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.7acd261e6dae4dc01ab9.js", + "publicPath": "/static/dist/js/invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.7acd261e6dae4dc01ab9.js" + }, + "js/invenio-communities-members-manager.3363b397a7dd2b1c3550.js": { + "name": "js/invenio-communities-members-manager.3363b397a7dd2b1c3550.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-members-manager.3363b397a7dd2b1c3550.js", + "publicPath": "/static/dist/js/invenio-communities-members-manager.3363b397a7dd2b1c3550.js" + }, + "js/invenio-communities-members-public.6e9bc7941e991dbdb2f8.js": { + "name": "js/invenio-communities-members-public.6e9bc7941e991dbdb2f8.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-members-public.6e9bc7941e991dbdb2f8.js", + "publicPath": "/static/dist/js/invenio-communities-members-public.6e9bc7941e991dbdb2f8.js" + }, + "js/invenio-communities-members.41bc0c3eec186652b95f.js": { + "name": "js/invenio-communities-members.41bc0c3eec186652b95f.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-members.41bc0c3eec186652b95f.js", + "publicPath": "/static/dist/js/invenio-communities-members.41bc0c3eec186652b95f.js" + }, + "js/invenio-communities-members~invenio-communities-members-manager.d7b3fb52444c0adc7d33.js": { + "name": "js/invenio-communities-members~invenio-communities-members-manager.d7b3fb52444c0adc7d33.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-members~invenio-communities-members-manager.d7b3fb52444c0adc7d33.js", + "publicPath": "/static/dist/js/invenio-communities-members~invenio-communities-members-manager.d7b3fb52444c0adc7d33.js" + }, + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-members-public.5f2e82f59b019c1841e6.js": { + "name": "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-members-public.5f2e82f59b019c1841e6.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-members-public.5f2e82f59b019c1841e6.js", + "publicPath": "/static/dist/js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-members-public.5f2e82f59b019c1841e6.js" + }, + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js": { + "name": "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js", + "publicPath": "/static/dist/js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js" + }, + "js/invenio-communities-new.461f7a1b08f9ff46a99e.js": { + "name": "js/invenio-communities-new.461f7a1b08f9ff46a99e.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-new.461f7a1b08f9ff46a99e.js", + "publicPath": "/static/dist/js/invenio-communities-new.461f7a1b08f9ff46a99e.js" + }, + "js/invenio-communities-new~invenio-communities-privileges~invenio-communities-profile.968d481cabfbf39553ad.js": { + "name": "js/invenio-communities-new~invenio-communities-privileges~invenio-communities-profile.968d481cabfbf39553ad.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-new~invenio-communities-privileges~invenio-communities-profile.968d481cabfbf39553ad.js", + "publicPath": "/static/dist/js/invenio-communities-new~invenio-communities-privileges~invenio-communities-profile.968d481cabfbf39553ad.js" + }, + "js/invenio-communities-privileges.f10b9e16a55c32215031.js": { + "name": "js/invenio-communities-privileges.f10b9e16a55c32215031.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-privileges.f10b9e16a55c32215031.js", + "publicPath": "/static/dist/js/invenio-communities-privileges.f10b9e16a55c32215031.js" + }, + "js/invenio-communities-profile.d5c24ea5a8ffd4658d35.js": { + "name": "js/invenio-communities-profile.d5c24ea5a8ffd4658d35.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-profile.d5c24ea5a8ffd4658d35.js", + "publicPath": "/static/dist/js/invenio-communities-profile.d5c24ea5a8ffd4658d35.js" + }, + "js/invenio-communities-requests.a7e5d7c106912122946b.js": { + "name": "js/invenio-communities-requests.a7e5d7c106912122946b.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-requests.a7e5d7c106912122946b.js", + "publicPath": "/static/dist/js/invenio-communities-requests.a7e5d7c106912122946b.js" + }, + "js/invenio-communities-search.9ac30fd8c894a16f918b.js": { + "name": "js/invenio-communities-search.9ac30fd8c894a16f918b.js", + "path": "/invenio/instance/static/dist/js/invenio-communities-search.9ac30fd8c894a16f918b.js", + "publicPath": "/static/dist/js/invenio-communities-search.9ac30fd8c894a16f918b.js" + }, + "js/invenio-requests-base.06522baeacd35f179168.js": { + "name": "js/invenio-requests-base.06522baeacd35f179168.js", + "path": "/invenio/instance/static/dist/js/invenio-requests-base.06522baeacd35f179168.js", + "publicPath": "/static/dist/js/invenio-requests-base.06522baeacd35f179168.js" + }, + "js/manifest.4695496aebf9efb0cd82.js": { + "name": "js/manifest.4695496aebf9efb0cd82.js", + "path": "/invenio/instance/static/dist/js/manifest.4695496aebf9efb0cd82.js", + "publicPath": "/static/dist/js/manifest.4695496aebf9efb0cd82.js" + }, + "js/oarepo_ui_forms.b28a0864bf143cb9a055.js": { + "name": "js/oarepo_ui_forms.b28a0864bf143cb9a055.js", + "path": "/invenio/instance/static/dist/js/oarepo_ui_forms.b28a0864bf143cb9a055.js", + "publicPath": "/static/dist/js/oarepo_ui_forms.b28a0864bf143cb9a055.js" + }, + "js/oarepo_ui_forms~oarepo_vocabularies_forms.9ae700f302de2931ba77.js": { + "name": "js/oarepo_ui_forms~oarepo_vocabularies_forms.9ae700f302de2931ba77.js", + "path": "/invenio/instance/static/dist/js/oarepo_ui_forms~oarepo_vocabularies_forms.9ae700f302de2931ba77.js", + "publicPath": "/static/dist/js/oarepo_ui_forms~oarepo_vocabularies_forms.9ae700f302de2931ba77.js" + }, + "js/oarepo_ui_search.ad60aadf85ba3fff286d.js": { + "name": "js/oarepo_ui_search.ad60aadf85ba3fff286d.js", + "path": "/invenio/instance/static/dist/js/oarepo_ui_search.ad60aadf85ba3fff286d.js", + "publicPath": "/static/dist/js/oarepo_ui_search.ad60aadf85ba3fff286d.js" + }, + "js/oarepo_ui_search~oarepo_vocabularies_detail~oarepo_vocabularies_search.56df6f65c43f8b0737e3.js": { + "name": "js/oarepo_ui_search~oarepo_vocabularies_detail~oarepo_vocabularies_search.56df6f65c43f8b0737e3.js", + "path": "/invenio/instance/static/dist/js/oarepo_ui_search~oarepo_vocabularies_detail~oarepo_vocabularies_search.56df6f65c43f8b0737e3.js", + "publicPath": "/static/dist/js/oarepo_ui_search~oarepo_vocabularies_detail~oarepo_vocabularies_search.56df6f65c43f8b0737e3.js" + }, + "js/oarepo_ui.7724d779e1a8a681f30a.js": { + "name": "js/oarepo_ui.7724d779e1a8a681f30a.js", + "path": "/invenio/instance/static/dist/js/oarepo_ui.7724d779e1a8a681f30a.js", + "publicPath": "/static/dist/js/oarepo_ui.7724d779e1a8a681f30a.js" + }, + "js/oarepo_vocabularies_detail.d4cf8fb17558171be139.js": { + "name": "js/oarepo_vocabularies_detail.d4cf8fb17558171be139.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_detail.d4cf8fb17558171be139.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_detail.d4cf8fb17558171be139.js" + }, + "js/oarepo_vocabularies_detail~oarepo_vocabularies_search.71bcec28303ca863314b.js": { + "name": "js/oarepo_vocabularies_detail~oarepo_vocabularies_search.71bcec28303ca863314b.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_detail~oarepo_vocabularies_search.71bcec28303ca863314b.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_detail~oarepo_vocabularies_search.71bcec28303ca863314b.js" + }, + "js/oarepo_vocabularies_forms.127ff3203acdc2611b74.js": { + "name": "js/oarepo_vocabularies_forms.127ff3203acdc2611b74.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.127ff3203acdc2611b74.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.127ff3203acdc2611b74.js" + }, + "js/oarepo_vocabularies_forms.207c2f3bdc23e89f1d7d.js": { + "name": "js/oarepo_vocabularies_forms.207c2f3bdc23e89f1d7d.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.207c2f3bdc23e89f1d7d.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.207c2f3bdc23e89f1d7d.js" + }, + "js/oarepo_vocabularies_forms.4edc9ea27840c56b5ab0.js": { + "name": "js/oarepo_vocabularies_forms.4edc9ea27840c56b5ab0.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.4edc9ea27840c56b5ab0.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.4edc9ea27840c56b5ab0.js" + }, + "js/oarepo_vocabularies_forms.5c5575fe59e2e1b956c6.js": { + "name": "js/oarepo_vocabularies_forms.5c5575fe59e2e1b956c6.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.5c5575fe59e2e1b956c6.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.5c5575fe59e2e1b956c6.js" + }, + "js/oarepo_vocabularies_forms.664a50ee3bf01863db9c.js": { + "name": "js/oarepo_vocabularies_forms.664a50ee3bf01863db9c.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.664a50ee3bf01863db9c.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.664a50ee3bf01863db9c.js" + }, + "js/oarepo_vocabularies_forms.6bbfc79fb1a2e55b277c.js": { + "name": "js/oarepo_vocabularies_forms.6bbfc79fb1a2e55b277c.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.6bbfc79fb1a2e55b277c.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.6bbfc79fb1a2e55b277c.js" + }, + "js/oarepo_vocabularies_forms.789972720f36780e2ea1.js": { + "name": "js/oarepo_vocabularies_forms.789972720f36780e2ea1.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.789972720f36780e2ea1.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.789972720f36780e2ea1.js" + }, + "js/oarepo_vocabularies_forms.7a381c4fd36a4c0a2139.js": { + "name": "js/oarepo_vocabularies_forms.7a381c4fd36a4c0a2139.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.7a381c4fd36a4c0a2139.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.7a381c4fd36a4c0a2139.js" + }, + "js/oarepo_vocabularies_forms.7b4d28046d21e87908cd.js": { + "name": "js/oarepo_vocabularies_forms.7b4d28046d21e87908cd.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.7b4d28046d21e87908cd.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.7b4d28046d21e87908cd.js" + }, + "js/oarepo_vocabularies_forms.8c8a4ab4d8fe1d65eef9.js": { + "name": "js/oarepo_vocabularies_forms.8c8a4ab4d8fe1d65eef9.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.8c8a4ab4d8fe1d65eef9.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.8c8a4ab4d8fe1d65eef9.js" + }, + "js/oarepo_vocabularies_forms.a50bcf4b474e704f7309.js": { + "name": "js/oarepo_vocabularies_forms.a50bcf4b474e704f7309.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.a50bcf4b474e704f7309.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.a50bcf4b474e704f7309.js" + }, + "js/oarepo_vocabularies_forms.ac990f7983702c60f67e.js": { + "name": "js/oarepo_vocabularies_forms.ac990f7983702c60f67e.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.ac990f7983702c60f67e.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.ac990f7983702c60f67e.js" + }, + "js/oarepo_vocabularies_forms.b5a54cadad8b156c498f.js": { + "name": "js/oarepo_vocabularies_forms.b5a54cadad8b156c498f.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.b5a54cadad8b156c498f.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.b5a54cadad8b156c498f.js" + }, + "js/oarepo_vocabularies_forms.c07feac8a96087fe887d.js": { + "name": "js/oarepo_vocabularies_forms.c07feac8a96087fe887d.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.c07feac8a96087fe887d.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.c07feac8a96087fe887d.js" + }, + "js/oarepo_vocabularies_forms.c2355e484fe67215446a.js": { + "name": "js/oarepo_vocabularies_forms.c2355e484fe67215446a.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.c2355e484fe67215446a.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.c2355e484fe67215446a.js" + }, + "js/oarepo_vocabularies_forms.ce27f236ebe46c7c821a.js": { + "name": "js/oarepo_vocabularies_forms.ce27f236ebe46c7c821a.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.ce27f236ebe46c7c821a.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.ce27f236ebe46c7c821a.js" + }, + "js/oarepo_vocabularies_forms.d1b8ac09e17b634c8b3d.js": { + "name": "js/oarepo_vocabularies_forms.d1b8ac09e17b634c8b3d.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.d1b8ac09e17b634c8b3d.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.d1b8ac09e17b634c8b3d.js" + }, + "js/oarepo_vocabularies_forms.e0001f00ced33092da3f.js": { + "name": "js/oarepo_vocabularies_forms.e0001f00ced33092da3f.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.e0001f00ced33092da3f.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.e0001f00ced33092da3f.js" + }, + "js/oarepo_vocabularies_forms.e75cdac977465ba77131.js": { + "name": "js/oarepo_vocabularies_forms.e75cdac977465ba77131.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_forms.e75cdac977465ba77131.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_forms.e75cdac977465ba77131.js" + }, + "js/oarepo_vocabularies_search.3efc909a421d69b44b16.js": { + "name": "js/oarepo_vocabularies_search.3efc909a421d69b44b16.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_search.3efc909a421d69b44b16.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_search.3efc909a421d69b44b16.js" + }, + "js/oarepo_vocabularies_ui_components.26409fd60ecb8ccebb18.js": { + "name": "js/oarepo_vocabularies_ui_components.26409fd60ecb8ccebb18.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_ui_components.26409fd60ecb8ccebb18.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_ui_components.26409fd60ecb8ccebb18.js" + }, + "js/oarepo_vocabularies_ui_components.de4d3f4261ebc8cbf950.js": { + "name": "js/oarepo_vocabularies_ui_components.de4d3f4261ebc8cbf950.js", + "path": "/invenio/instance/static/dist/js/oarepo_vocabularies_ui_components.de4d3f4261ebc8cbf950.js", + "publicPath": "/static/dist/js/oarepo_vocabularies_ui_components.de4d3f4261ebc8cbf950.js" + }, + "js/open_pdf.2837432f2839645f9914.js": { + "name": "js/open_pdf.2837432f2839645f9914.js", + "path": "/invenio/instance/static/dist/js/open_pdf.2837432f2839645f9914.js", + "publicPath": "/static/dist/js/open_pdf.2837432f2839645f9914.js" + }, + "js/pdfjs_css.c3921995a5cd9553c53e.js": { + "name": "js/pdfjs_css.c3921995a5cd9553c53e.js", + "path": "/invenio/instance/static/dist/js/pdfjs_css.c3921995a5cd9553c53e.js", + "publicPath": "/static/dist/js/pdfjs_css.c3921995a5cd9553c53e.js" + }, + "js/pdfjs_css.c5058d4cb87e7e7e7e45.js": { + "name": "js/pdfjs_css.c5058d4cb87e7e7e7e45.js", + "path": "/invenio/instance/static/dist/js/pdfjs_css.c5058d4cb87e7e7e7e45.js", + "publicPath": "/static/dist/js/pdfjs_css.c5058d4cb87e7e7e7e45.js" + }, + "js/pdfjs_js.a9a7c168e4cbfe05f754.js": { + "name": "js/pdfjs_js.a9a7c168e4cbfe05f754.js", + "path": "/invenio/instance/static/dist/js/pdfjs_js.a9a7c168e4cbfe05f754.js", + "publicPath": "/static/dist/js/pdfjs_js.a9a7c168e4cbfe05f754.js" + }, + "js/previewer_theme.293dd3c431dd27b06f08.js": { + "name": "js/previewer_theme.293dd3c431dd27b06f08.js", + "path": "/invenio/instance/static/dist/js/previewer_theme.293dd3c431dd27b06f08.js", + "publicPath": "/static/dist/js/previewer_theme.293dd3c431dd27b06f08.js" + }, + "js/previewer_theme.af08a70dcfdb468863e1.js": { + "name": "js/previewer_theme.af08a70dcfdb468863e1.js", + "path": "/invenio/instance/static/dist/js/previewer_theme.af08a70dcfdb468863e1.js", + "publicPath": "/static/dist/js/previewer_theme.af08a70dcfdb468863e1.js" + }, + "js/prism_css.22c9656ce42c3a49d582.js": { + "name": "js/prism_css.22c9656ce42c3a49d582.js", + "path": "/invenio/instance/static/dist/js/prism_css.22c9656ce42c3a49d582.js", + "publicPath": "/static/dist/js/prism_css.22c9656ce42c3a49d582.js" + }, + "js/prism_css.f6bf7f8fde5425f1a6dc.js": { + "name": "js/prism_css.f6bf7f8fde5425f1a6dc.js", + "path": "/invenio/instance/static/dist/js/prism_css.f6bf7f8fde5425f1a6dc.js", + "publicPath": "/static/dist/js/prism_css.f6bf7f8fde5425f1a6dc.js" + }, + "js/prism_js.68de206741bf8e0e49b1.js": { + "name": "js/prism_js.68de206741bf8e0e49b1.js", + "path": "/invenio/instance/static/dist/js/prism_js.68de206741bf8e0e49b1.js", + "publicPath": "/static/dist/js/prism_js.68de206741bf8e0e49b1.js" + }, + "js/simple_image_css.561e05d32df67a9df4c4.js": { + "name": "js/simple_image_css.561e05d32df67a9df4c4.js", + "path": "/invenio/instance/static/dist/js/simple_image_css.561e05d32df67a9df4c4.js", + "publicPath": "/static/dist/js/simple_image_css.561e05d32df67a9df4c4.js" + }, + "js/simple_image_css.8d0b56840c279e774976.js": { + "name": "js/simple_image_css.8d0b56840c279e774976.js", + "path": "/invenio/instance/static/dist/js/simple_image_css.8d0b56840c279e774976.js", + "publicPath": "/static/dist/js/simple_image_css.8d0b56840c279e774976.js" + }, + "js/theme-admin.0ff5897140e434b53d40.js": { + "name": "js/theme-admin.0ff5897140e434b53d40.js", + "path": "/invenio/instance/static/dist/js/theme-admin.0ff5897140e434b53d40.js", + "publicPath": "/static/dist/js/theme-admin.0ff5897140e434b53d40.js" + }, + "js/theme-admin.a9c83de7ffd547a8fef7.js": { + "name": "js/theme-admin.a9c83de7ffd547a8fef7.js", + "path": "/invenio/instance/static/dist/js/theme-admin.a9c83de7ffd547a8fef7.js", + "publicPath": "/static/dist/js/theme-admin.a9c83de7ffd547a8fef7.js" + }, + "js/theme.0a1b1fcdbcecfe21bec9.js": { + "name": "js/theme.0a1b1fcdbcecfe21bec9.js", + "path": "/invenio/instance/static/dist/js/theme.0a1b1fcdbcecfe21bec9.js", + "publicPath": "/static/dist/js/theme.0a1b1fcdbcecfe21bec9.js" + }, + "js/theme.7e75449e2458aa35146e.js": { + "name": "js/theme.7e75449e2458aa35146e.js", + "path": "/invenio/instance/static/dist/js/theme.7e75449e2458aa35146e.js", + "publicPath": "/static/dist/js/theme.7e75449e2458aa35146e.js" + }, + "js/vendors~adminlte.0def173073df55d9729d.js": { + "name": "js/vendors~adminlte.0def173073df55d9729d.js", + "path": "/invenio/instance/static/dist/js/vendors~adminlte.0def173073df55d9729d.js", + "publicPath": "/static/dist/js/vendors~adminlte.0def173073df55d9729d.js" + }, + "js/vendors~adminlte.7dbbf26e15359810b482.js": { + "name": "js/vendors~adminlte.7dbbf26e15359810b482.js", + "path": "/invenio/instance/static/dist/js/vendors~adminlte.7dbbf26e15359810b482.js", + "publicPath": "/static/dist/js/vendors~adminlte.7dbbf26e15359810b482.js" + }, + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js": { + "name": "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "path": "/invenio/instance/static/dist/js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "publicPath": "/static/dist/js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js" + }, + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.e7f1fcc82cb020ad2070.js": { + "name": "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.e7f1fcc82cb020ad2070.js", + "path": "/invenio/instance/static/dist/js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.e7f1fcc82cb020ad2070.js", + "publicPath": "/static/dist/js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.e7f1fcc82cb020ad2070.js" + }, + "js/vendors~d3_csv.9c049b06455aa1f3574a.js": { + "name": "js/vendors~d3_csv.9c049b06455aa1f3574a.js", + "path": "/invenio/instance/static/dist/js/vendors~d3_csv.9c049b06455aa1f3574a.js", + "publicPath": "/static/dist/js/vendors~d3_csv.9c049b06455aa1f3574a.js" + }, + "js/vendors~d3_csv.f5a770bc8e6f5fc3358a.js": { + "name": "js/vendors~d3_csv.f5a770bc8e6f5fc3358a.js", + "path": "/invenio/instance/static/dist/js/vendors~d3_csv.f5a770bc8e6f5fc3358a.js", + "publicPath": "/static/dist/js/vendors~d3_csv.f5a770bc8e6f5fc3358a.js" + }, + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js": { + "name": "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js" + }, + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js": { + "name": "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js" + }, + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js": { + "name": "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js" + }, + "js/vendors~invenio-administration-details.68e4b67a323ee0be345a.js": { + "name": "js/vendors~invenio-administration-details.68e4b67a323ee0be345a.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-details.68e4b67a323ee0be345a.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-details.68e4b67a323ee0be345a.js" + }, + "js/vendors~invenio-administration-edit.57623728e2561684210d.js": { + "name": "js/vendors~invenio-administration-edit.57623728e2561684210d.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-edit.57623728e2561684210d.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-edit.57623728e2561684210d.js" + }, + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js": { + "name": "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js" + }, + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js": { + "name": "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js" + }, + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js": { + "name": "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js" + }, + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js": { + "name": "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js" + }, + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js": { + "name": "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "publicPath": "/static/dist/js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js" + }, + "js/vendors~invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.71782eb9a729b4a1f6dc.js": { + "name": "js/vendors~invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.71782eb9a729b4a1f6dc.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.71782eb9a729b4a1f6dc.js", + "publicPath": "/static/dist/js/vendors~invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.71782eb9a729b4a1f6dc.js" + }, + "js/vendors~invenio-communities-invitations~oarepo_ui_forms~oarepo_vocabularies_forms.fcc18fa787a9246039f1.js": { + "name": "js/vendors~invenio-communities-invitations~oarepo_ui_forms~oarepo_vocabularies_forms.fcc18fa787a9246039f1.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-communities-invitations~oarepo_ui_forms~oarepo_vocabularies_forms.fcc18fa787a9246039f1.js", + "publicPath": "/static/dist/js/vendors~invenio-communities-invitations~oarepo_ui_forms~oarepo_vocabularies_forms.fcc18fa787a9246039f1.js" + }, + "js/vendors~invenio-communities-privileges~invenio-communities-profile.fe62a7845824a9026922.js": { + "name": "js/vendors~invenio-communities-privileges~invenio-communities-profile.fe62a7845824a9026922.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-communities-privileges~invenio-communities-profile.fe62a7845824a9026922.js", + "publicPath": "/static/dist/js/vendors~invenio-communities-privileges~invenio-communities-profile.fe62a7845824a9026922.js" + }, + "js/vendors~invenio-communities-profile.3a346855744e571fc076.js": { + "name": "js/vendors~invenio-communities-profile.3a346855744e571fc076.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-communities-profile.3a346855744e571fc076.js", + "publicPath": "/static/dist/js/vendors~invenio-communities-profile.3a346855744e571fc076.js" + }, + "js/vendors~invenio-communities-profile~oarepo_vocabularies_forms.47ce335f4a316a63c91d.js": { + "name": "js/vendors~invenio-communities-profile~oarepo_vocabularies_forms.47ce335f4a316a63c91d.js", + "path": "/invenio/instance/static/dist/js/vendors~invenio-communities-profile~oarepo_vocabularies_forms.47ce335f4a316a63c91d.js", + "publicPath": "/static/dist/js/vendors~invenio-communities-profile~oarepo_vocabularies_forms.47ce335f4a316a63c91d.js" + }, + "js/vendors~oarepo_ui_forms~oarepo_vocabularies_forms.78fa06a269d54eb5d9aa.js": { + "name": "js/vendors~oarepo_ui_forms~oarepo_vocabularies_forms.78fa06a269d54eb5d9aa.js", + "path": "/invenio/instance/static/dist/js/vendors~oarepo_ui_forms~oarepo_vocabularies_forms.78fa06a269d54eb5d9aa.js", + "publicPath": "/static/dist/js/vendors~oarepo_ui_forms~oarepo_vocabularies_forms.78fa06a269d54eb5d9aa.js" + }, + "js/vendors~pdfjs_js.15011b7f4b2e611aa57a.js": { + "name": "js/vendors~pdfjs_js.15011b7f4b2e611aa57a.js", + "path": "/invenio/instance/static/dist/js/vendors~pdfjs_js.15011b7f4b2e611aa57a.js", + "publicPath": "/static/dist/js/vendors~pdfjs_js.15011b7f4b2e611aa57a.js" + }, + "js/vendors~previewer_theme~theme.ba2deb8c39b0bd1f14f3.js": { + "name": "js/vendors~previewer_theme~theme.ba2deb8c39b0bd1f14f3.js", + "path": "/invenio/instance/static/dist/js/vendors~previewer_theme~theme.ba2deb8c39b0bd1f14f3.js", + "publicPath": "/static/dist/js/vendors~previewer_theme~theme.ba2deb8c39b0bd1f14f3.js" + }, + "js/vendors~previewer_theme~theme.ee93338293bbbc6dbfbd.js": { + "name": "js/vendors~previewer_theme~theme.ee93338293bbbc6dbfbd.js", + "path": "/invenio/instance/static/dist/js/vendors~previewer_theme~theme.ee93338293bbbc6dbfbd.js", + "publicPath": "/static/dist/js/vendors~previewer_theme~theme.ee93338293bbbc6dbfbd.js" + }, + "js/vendors~prism_js.6682fd1a890b9218fd52.js": { + "name": "js/vendors~prism_js.6682fd1a890b9218fd52.js", + "path": "/invenio/instance/static/dist/js/vendors~prism_js.6682fd1a890b9218fd52.js", + "publicPath": "/static/dist/js/vendors~prism_js.6682fd1a890b9218fd52.js" + }, + "js/zip_css.01c6b0ff38bdf04e7efb.js": { + "name": "js/zip_css.01c6b0ff38bdf04e7efb.js", + "path": "/invenio/instance/static/dist/js/zip_css.01c6b0ff38bdf04e7efb.js", + "publicPath": "/static/dist/js/zip_css.01c6b0ff38bdf04e7efb.js" + }, + "js/zip_css.e311b442e1e5e4274a29.js": { + "name": "js/zip_css.e311b442e1e5e4274a29.js", + "path": "/invenio/instance/static/dist/js/zip_css.e311b442e1e5e4274a29.js", + "publicPath": "/static/dist/js/zip_css.e311b442e1e5e4274a29.js" + } + }, + "chunks": { + "adminlte": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "js/vendors~adminlte.7dbbf26e15359810b482.js", + "js/adminlte.42a924dd510a5e51b979.js" + ], + "base": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "js/base.9d47e96f9fb3514286ce.js" + ], + "base-admin-theme": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "js/base-admin-theme.4b122d5ea696062f654a.js" + ], + "bottom_css": [ + "js/manifest.4695496aebf9efb0cd82.js", + "css/bottom_css.1b2e27b61142106979cc.css", + "js/bottom_css.c7def77184aad651320f.js" + ], + "bottom_js": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "js/bottom_js.a408d1a120e9055464ac.js" + ], + "d3_csv": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "js/vendors~d3_csv.f5a770bc8e6f5fc3358a.js", + "js/d3_csv.f7e63bb90faea4725332.js" + ], + "fullscreen_js": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/fullscreen_js.e3bb6fe1bc026c6bcc0a.js" + ], + "i18n_app": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "js/i18n_app.0c4c0993bdaa6a4fa94e.js" + ], + "invenio_search_ui_app": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio_search_ui_app.3a229e7520cb83507459.js" + ], + "invenio-administration-create": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "js/invenio-administration-create.12b08625af77e0c1e5d2.js" + ], + "invenio-administration-details": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-details.68e4b67a323ee0be345a.js", + "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js", + "js/invenio-administration-details~invenio-communities-admin-featured~invenio-communities-admin-search.746e78604f6b773c1a1d.js", + "js/invenio-administration-details.4d65c7f63cebb416f887.js" + ], + "invenio-administration-edit": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-edit.57623728e2561684210d.js", + "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "js/invenio-administration-edit.e004ee5710fb8d22b10d.js" + ], + "invenio-administration-search": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search.8bd20d7547e718fd150c.js", + "js/invenio-administration-search.abe875852d9b3340742a.js" + ], + "invenio-communities-admin-featured": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search.8bd20d7547e718fd150c.js", + "js/invenio-administration-details~invenio-communities-admin-featured~invenio-communities-admin-search.746e78604f6b773c1a1d.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search.34e33317cc55856bdd80.js", + "js/invenio-communities-admin-featured.b3183bafa1129ccee058.js" + ], + "invenio-communities-admin-search": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-administration-create~invenio-administration-details~invenio-administration-edit~invenio-adm~c42839fd.9d0557140c360e30d0ad.js", + "js/invenio-administration-details~invenio-administration-search~invenio-communities-admin-featured~inve~39dbfc21.6f882ffe91620507a036.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search.8bd20d7547e718fd150c.js", + "js/invenio-administration-details~invenio-communities-admin-featured~invenio-communities-admin-search.746e78604f6b773c1a1d.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search.34e33317cc55856bdd80.js", + "js/invenio-communities-admin-search.a861c1c50417e54b78f8.js" + ], + "invenio-communities-carousel": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-communities-carousel.37197bcd4b7ff52118a5.js" + ], + "invenio-communities-details-search": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-communities-details-search.c911e2f28076f1b5fa96.js" + ], + "invenio-communities-featured": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-communities-featured.856d2ee24ba69bcc5fb1.js" + ], + "invenio-communities-frontpage": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/invenio-communities-frontpage.757287079172672a7b02.js" + ], + "invenio-communities-invitations": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/vendors~invenio-communities-invitations~oarepo_ui_forms~oarepo_vocabularies_forms.fcc18fa787a9246039f1.js", + "js/vendors~invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.71782eb9a729b4a1f6dc.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.7acd261e6dae4dc01ab9.js", + "js/invenio-communities-invitations~invenio-communities-members~invenio-communities-members-manager.c589aeec260850c55680.js", + "js/invenio-communities-invitations~invenio-communities-requests.ff051d9573313b766adc.js", + "js/invenio-communities-invitations.ef4646bff64a9d376267.js" + ], + "invenio-communities-members": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js", + "js/invenio-communities-invitations~invenio-communities-members~invenio-communities-members-manager.c589aeec260850c55680.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-members-public.5f2e82f59b019c1841e6.js", + "js/invenio-communities-members~invenio-communities-members-manager.d7b3fb52444c0adc7d33.js", + "js/invenio-communities-members.41bc0c3eec186652b95f.js" + ], + "invenio-communities-members-manager": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js", + "js/invenio-communities-invitations~invenio-communities-members~invenio-communities-members-manager.c589aeec260850c55680.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-members-public.5f2e82f59b019c1841e6.js", + "js/invenio-communities-members~invenio-communities-members-manager.d7b3fb52444c0adc7d33.js", + "js/invenio-communities-members-manager.3363b397a7dd2b1c3550.js" + ], + "invenio-communities-members-public": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-members-public.5f2e82f59b019c1841e6.js", + "js/invenio-communities-members-public.6e9bc7941e991dbdb2f8.js" + ], + "invenio-communities-new": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js", + "js/invenio-communities-new~invenio-communities-privileges~invenio-communities-profile.968d481cabfbf39553ad.js", + "js/invenio-communities-new.461f7a1b08f9ff46a99e.js" + ], + "invenio-communities-privileges": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-communities-privileges~invenio-communities-profile.fe62a7845824a9026922.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js", + "js/invenio-communities-new~invenio-communities-privileges~invenio-communities-profile.968d481cabfbf39553ad.js", + "js/invenio-communities-privileges.f10b9e16a55c32215031.js" + ], + "invenio-communities-profile": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/vendors~invenio-communities-profile~oarepo_vocabularies_forms.47ce335f4a316a63c91d.js", + "js/vendors~invenio-communities-privileges~invenio-communities-profile.fe62a7845824a9026922.js", + "js/vendors~invenio-communities-profile.3a346855744e571fc076.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-communities-members~invenio-communities-members-manager~invenio-communities-new~invenio-comm~0e7746b6.aeab749b2980be9f06ed.js", + "js/invenio-communities-new~invenio-communities-privileges~invenio-communities-profile.968d481cabfbf39553ad.js", + "js/invenio-communities-profile.d5c24ea5a8ffd4658d35.js" + ], + "invenio-communities-requests": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/vendors~invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.71782eb9a729b4a1f6dc.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.7acd261e6dae4dc01ab9.js", + "js/invenio-communities-invitations~invenio-communities-requests.ff051d9573313b766adc.js", + "js/invenio-communities-requests.a7e5d7c106912122946b.js" + ], + "invenio-communities-search": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-communities-admin-featured~invenio-communities-admin-search~invenio-communities-carousel~inv~98c4a9cd.49ab88eedb6b548939bf.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/invenio-communities-search.9ac30fd8c894a16f918b.js" + ], + "invenio-requests-base": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.71782eb9a729b4a1f6dc.js", + "js/invenio-communities-invitations~invenio-communities-requests~invenio-requests-base.7acd261e6dae4dc01ab9.js", + "js/invenio-requests-base.06522baeacd35f179168.js" + ], + "oarepo_ui": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/oarepo_ui.7724d779e1a8a681f30a.js" + ], + "oarepo_ui_forms": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/vendors~invenio-communities-invitations~oarepo_ui_forms~oarepo_vocabularies_forms.fcc18fa787a9246039f1.js", + "js/vendors~oarepo_ui_forms~oarepo_vocabularies_forms.78fa06a269d54eb5d9aa.js", + "js/oarepo_ui_forms~oarepo_vocabularies_forms.9ae700f302de2931ba77.js", + "js/oarepo_ui_forms.b28a0864bf143cb9a055.js" + ], + "oarepo_ui_search": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/oarepo_ui_search~oarepo_vocabularies_detail~oarepo_vocabularies_search.56df6f65c43f8b0737e3.js", + "js/oarepo_ui_search.ad60aadf85ba3fff286d.js" + ], + "oarepo_vocabularies_detail": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/oarepo_ui_search~oarepo_vocabularies_detail~oarepo_vocabularies_search.56df6f65c43f8b0737e3.js", + "js/oarepo_vocabularies_detail~oarepo_vocabularies_search.71bcec28303ca863314b.js", + "js/oarepo_vocabularies_detail.d4cf8fb17558171be139.js" + ], + "oarepo_vocabularies_forms": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/vendors~invenio-communities-invitations~oarepo_ui_forms~oarepo_vocabularies_forms.fcc18fa787a9246039f1.js", + "js/vendors~oarepo_ui_forms~oarepo_vocabularies_forms.78fa06a269d54eb5d9aa.js", + "js/vendors~invenio-communities-profile~oarepo_vocabularies_forms.47ce335f4a316a63c91d.js", + "js/oarepo_ui_forms~oarepo_vocabularies_forms.9ae700f302de2931ba77.js", + "js/oarepo_vocabularies_forms.8c8a4ab4d8fe1d65eef9.js" + ], + "oarepo_vocabularies_search": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d198f411.e2145fa894f86c01e3d7.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~17a921b5.c30f1f7f67bc72307ecd.js", + "js/vendors~invenio-administration-create~invenio-administration-details~invenio-administration-edit~inv~d50aface.d40bc31e78be5cc33cc4.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6e1ad9b9.1f5e2e3dc72f23eb59e0.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~6fd4a4a2.b15ab95e22d760186475.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~fb2c456e.4a44d9e4d96375c30ee9.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-search~invenio-communities-details-s~e903ca29.bf4d2b11f446a22416e3.js", + "js/invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-search~in~de8835e7.f105cf5d39a5b32ee139.js", + "js/oarepo_ui_search~oarepo_vocabularies_detail~oarepo_vocabularies_search.56df6f65c43f8b0737e3.js", + "js/oarepo_vocabularies_detail~oarepo_vocabularies_search.71bcec28303ca863314b.js", + "js/oarepo_vocabularies_search.3efc909a421d69b44b16.js" + ], + "oarepo_vocabularies_ui_components": [ + "js/manifest.4695496aebf9efb0cd82.js", + "css/oarepo_vocabularies_ui_components.22a6dcb4ec850142e289.css", + "js/oarepo_vocabularies_ui_components.de4d3f4261ebc8cbf950.js" + ], + "open_pdf": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/open_pdf.2837432f2839645f9914.js" + ], + "pdfjs_css": [ + "js/manifest.4695496aebf9efb0cd82.js", + "css/pdfjs_css.7523441f07ec785e6f0f.css", + "js/pdfjs_css.c5058d4cb87e7e7e7e45.js" + ], + "pdfjs_js": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~invenio-administration-search~invenio-communities-admin-featured~invenio-communities-admin-s~e806c643.e1e1cdf17c63a9995c88.js", + "js/vendors~pdfjs_js.15011b7f4b2e611aa57a.js", + "js/pdfjs_js.a9a7c168e4cbfe05f754.js" + ], + "previewer_theme": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "css/vendors~previewer_theme~theme.96782c7b6e34f730c329.css", + "js/vendors~previewer_theme~theme.ba2deb8c39b0bd1f14f3.js", + "js/previewer_theme.af08a70dcfdb468863e1.js" + ], + "prism_css": [ + "js/manifest.4695496aebf9efb0cd82.js", + "css/prism_css.d26348f46347b7751296.css", + "js/prism_css.22c9656ce42c3a49d582.js" + ], + "prism_js": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~prism_js.6682fd1a890b9218fd52.js", + "js/prism_js.68de206741bf8e0e49b1.js" + ], + "simple_image_css": [ + "js/manifest.4695496aebf9efb0cd82.js", + "css/simple_image_css.290dcaa3fef4f2b83552.css", + "js/simple_image_css.8d0b56840c279e774976.js" + ], + "theme": [ + "js/manifest.4695496aebf9efb0cd82.js", + "js/vendors~adminlte~base~base-admin-theme~bottom_js~d3_csv~i18n_app~previewer_theme~theme.88caf9afb6e144d288ae.js", + "css/vendors~previewer_theme~theme.96782c7b6e34f730c329.css", + "js/vendors~previewer_theme~theme.ba2deb8c39b0bd1f14f3.js", + "js/theme.7e75449e2458aa35146e.js" + ], + "theme-admin": [ + "js/manifest.4695496aebf9efb0cd82.js", + "css/theme-admin.11e5c170f835c367813e.css", + "js/theme-admin.a9c83de7ffd547a8fef7.js" + ], + "zip_css": [ + "js/manifest.4695496aebf9efb0cd82.js", + "css/zip_css.3d4504b43b600f573196.css", + "js/zip_css.01c6b0ff38bdf04e7efb.js" + ] + }, + "publicPath": "/static/dist/", + "error": "ESLintError", + "message": "\n ✘ http://eslint.org/docs/rules/no-undef 'error' is not defined \n js/oarepo_vocabularies_ui/form/api/DepositApiClient.js:98:29\n \n\n\n✘ 1 problem (1 error, 0 warnings)\n\n\nErrors:\n 1 http://eslint.org/docs/rules/no-undef" +} diff --git a/tests/request_data/test_create_group.yaml b/tests/request_data/test_create_group.yaml new file mode 100644 index 0000000..6247779 --- /dev/null +++ b/tests/request_data/test_create_group.yaml @@ -0,0 +1,100 @@ +responses: +- response: + auto_calculate_content_length: false + body: '[{"id":15516,"createdAt":"2024-06-05 09:58:30.7417","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:30.7417","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:ABC","description":"","uuid":"06ff5c42-20a4-4c44-9894-dadcfeec99a7","shortName":"ABC","beanName":"Group"},{"id":15518,"createdAt":"2024-06-05 + 09:58:31.153758","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.153758","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:curators","description":"Community + curators","uuid":"87b677b2-145a-414f-b139-842d521f24a4","shortName":"curators","beanName":"Group"},{"id":15517,"createdAt":"2024-06-05 + 09:58:31.04761","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.04761","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:members","description":"Community + members","uuid":"f0a02638-cd54-4924-b1e9-b61f43753ca3","shortName":"members","beanName":"Group"},{"id":15520,"createdAt":"2024-06-05 + 09:58:31.377526","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.377526","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:publishers","description":"Community + publishers (publishes the record)","uuid":"1a74190e-5634-4624-899e-04da844771f5","shortName":"publishers","beanName":"Group"},{"id":15519,"createdAt":"2024-06-05 + 09:58:31.264524","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.264524","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:reviewers","description":"Community + reviewers (mark records as reviewed)","uuid":"72cc98a0-7ab9-4197-a93d-4f56265b529b","shortName":"reviewers","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/createGroup +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/addAdmin diff --git a/tests/request_data/test_create_group_existing.yaml b/tests/request_data/test_create_group_existing.yaml new file mode 100644 index 0000000..9362dbe --- /dev/null +++ b/tests/request_data/test_create_group_existing.yaml @@ -0,0 +1,61 @@ +responses: +- response: + auto_calculate_content_length: false + body: '[{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"},{"id":15516,"createdAt":"2024-06-05 + 09:58:30.7417","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:30.7417","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:ABC","description":"","uuid":"06ff5c42-20a4-4c44-9894-dadcfeec99a7","shortName":"ABC","beanName":"Group"},{"id":15518,"createdAt":"2024-06-05 + 09:58:31.153758","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.153758","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:curators","description":"Community + curators","uuid":"87b677b2-145a-414f-b139-842d521f24a4","shortName":"curators","beanName":"Group"},{"id":15517,"createdAt":"2024-06-05 + 09:58:31.04761","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.04761","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:members","description":"Community + members","uuid":"f0a02638-cd54-4924-b1e9-b61f43753ca3","shortName":"members","beanName":"Group"},{"id":15520,"createdAt":"2024-06-05 + 09:58:31.377526","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.377526","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:publishers","description":"Community + publishers (publishes the record)","uuid":"1a74190e-5634-4624-899e-04da844771f5","shortName":"publishers","beanName":"Group"},{"id":15519,"createdAt":"2024-06-05 + 09:58:31.264524","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.264524","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:reviewers","description":"Community + reviewers (mark records as reviewed)","uuid":"72cc98a0-7ab9-4197-a93d-4f56265b529b","shortName":"reviewers","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins diff --git a/tests/request_data/test_create_resource_for_group.yaml b/tests/request_data/test_create_resource_for_group.yaml new file mode 100644 index 0000000..de1198b --- /dev/null +++ b/tests/request_data/test_create_resource_for_group.yaml @@ -0,0 +1,173 @@ +responses: +- response: + auto_calculate_content_length: false + body: '{"errorId":"191c1a8001a","resource":null,"name":"ResourceNotExistsException","message":"Error + 191c1a8001a: Incorrect result size: expected 1, actual 0","friendlyMessageTemplate":null,"suppressed":[]}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 400 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '{"id":14408,"createdAt":"2024-09-05 12:08:18.589969","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 12:08:18.589969","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:AAA","description":"Resource + for community AAA","uuid":"4c09431a-bb4d-4b9d-9abc-224166165d42","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/createResource +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignGroupToResource +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":null,"valueCreatedAt":null,"valueCreatedBy":null,"valueModifiedAt":null,"valueModifiedBy":null,"entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/setAttribute +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignService diff --git a/tests/request_data/test_create_resource_for_group_existing.yaml b/tests/request_data/test_create_resource_for_group_existing.yaml new file mode 100644 index 0000000..3bf42a5 --- /dev/null +++ b/tests/request_data/test_create_resource_for_group_existing.yaml @@ -0,0 +1,96 @@ +responses: +- response: + auto_calculate_content_length: false + body: '{"id":14408,"createdAt":"2024-09-05 12:08:18.589969","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 12:08:18.589969","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:AAA","description":"Resource + for community AAA","uuid":"4c09431a-bb4d-4b9d-9abc-224166165d42","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:AAA"],"valueCreatedAt":"2024-09-05 + 12:08:19.143935","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-05 + 12:08:19.143935","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices diff --git a/tests/request_data/test_initial_sync_community b/tests/request_data/test_initial_sync_community new file mode 100644 index 0000000..2585029 --- /dev/null +++ b/tests/request_data/test_initial_sync_community @@ -0,0 +1,800 @@ +responses: +- response: + auto_calculate_content_length: false + body: '[{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"},{"id":15516,"createdAt":"2024-06-05 + 09:58:30.7417","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:30.7417","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:ABC","description":"","uuid":"06ff5c42-20a4-4c44-9894-dadcfeec99a7","shortName":"ABC","beanName":"Group"},{"id":15518,"createdAt":"2024-06-05 + 09:58:31.153758","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.153758","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:curators","description":"Community + curators","uuid":"87b677b2-145a-414f-b139-842d521f24a4","shortName":"curators","beanName":"Group"},{"id":15517,"createdAt":"2024-06-05 + 09:58:31.04761","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.04761","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:members","description":"Community + members","uuid":"f0a02638-cd54-4924-b1e9-b61f43753ca3","shortName":"members","beanName":"Group"},{"id":15520,"createdAt":"2024-06-05 + 09:58:31.377526","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.377526","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:publishers","description":"Community + publishers (publishes the record)","uuid":"1a74190e-5634-4624-899e-04da844771f5","shortName":"publishers","beanName":"Group"},{"id":15519,"createdAt":"2024-06-05 + 09:58:31.264524","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.264524","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:reviewers","description":"Community + reviewers (mark records as reviewed)","uuid":"72cc98a0-7ab9-4197-a93d-4f56265b529b","shortName":"reviewers","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '{"id":15889,"createdAt":"2024-09-05 13:53:26.67219","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 13:53:26.67219","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"439f9fe9-0a2e-44e8-bc44-8b0f0f1cbad8","shortName":"Community + cuni","beanName":"Group"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/createGroup +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/addAdmin +- response: + auto_calculate_content_length: false + body: '{"errorId":"191c2084328","resource":null,"name":"ResourceNotExistsException","message":"Error + 191c2084328: Incorrect result size: expected 1, actual 0","friendlyMessageTemplate":null,"suppressed":[]}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 400 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '{"id":14412,"createdAt":"2024-09-05 13:53:27.221654","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 13:53:27.221654","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni","description":"Resource + for community cuni","uuid":"b5e649a9-913f-49a3-abd5-b31adc85c01d","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/createResource +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignGroupToResource +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":null,"valueCreatedAt":null,"valueCreatedBy":null,"valueModifiedAt":null,"valueModifiedBy":null,"entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/setAttribute +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignService +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '{"id":15890,"createdAt":"2024-09-05 13:53:28.371454","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 13:53:28.371454","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15889,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"7a3d2f5b-b8f1-4e11-a9a4-c9d7f30eeea6","shortName":"Role curator + of cuni","beanName":"Group"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/createGroup +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/addAdmin +- response: + auto_calculate_content_length: false + body: '{"errorId":"191c20849f9","resource":null,"name":"ResourceNotExistsException","message":"Error + 191c20849f9: Incorrect result size: expected 1, actual 0","friendlyMessageTemplate":null,"suppressed":[]}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 400 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '{"id":14413,"createdAt":"2024-09-05 13:53:28.957072","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 13:53:28.957072","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:curator","description":"Resource + for community cuni and role curator","uuid":"c3342a80-8c86-420f-948d-f943c1584aa1","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/createResource +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignGroupToResource +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":null,"valueCreatedAt":null,"valueCreatedBy":null,"valueModifiedAt":null,"valueModifiedBy":null,"entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/setAttribute +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignService +- response: + auto_calculate_content_length: false + body: '[{"id":15890,"createdAt":"2024-09-05 13:53:28.371454","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 13:53:28.371454","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15889,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"7a3d2f5b-b8f1-4e11-a9a4-c9d7f30eeea6","shortName":"Role curator + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '{"id":15891,"createdAt":"2024-09-05 13:53:30.111419","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 13:53:30.111419","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15889,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"350b11fd-ac63-4478-b237-160b5d9e816f","shortName":"Role member + of cuni","beanName":"Group"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/createGroup +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/addAdmin +- response: + auto_calculate_content_length: false + body: '{"errorId":"191c20850bf","resource":null,"name":"ResourceNotExistsException","message":"Error + 191c20850bf: Incorrect result size: expected 1, actual 0","friendlyMessageTemplate":null,"suppressed":[]}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 400 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '{"id":14414,"createdAt":"2024-09-05 13:53:30.702549","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 13:53:30.702549","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:member","description":"Resource + for community cuni and role member","uuid":"f7dedca0-1302-401d-8328-cbdee1180202","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/createResource +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignGroupToResource +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":null,"valueCreatedAt":null,"valueCreatedBy":null,"valueModifiedAt":null,"valueModifiedBy":null,"entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/setAttribute +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignService diff --git a/tests/request_data/test_login.yaml b/tests/request_data/test_login.yaml new file mode 100644 index 0000000..7dd67e8 --- /dev/null +++ b/tests/request_data/test_login.yaml @@ -0,0 +1 @@ +responses: [] diff --git a/tests/request_data/test_no_communities_user_exists_but_not_linked.yaml b/tests/request_data/test_no_communities_user_exists_but_not_linked.yaml new file mode 100644 index 0000000..7dd67e8 --- /dev/null +++ b/tests/request_data/test_no_communities_user_exists_but_not_linked.yaml @@ -0,0 +1 @@ +responses: [] diff --git a/tests/request_data/test_no_communities_user_linked.yaml b/tests/request_data/test_no_communities_user_linked.yaml new file mode 100644 index 0000000..7dd67e8 --- /dev/null +++ b/tests/request_data/test_no_communities_user_linked.yaml @@ -0,0 +1 @@ +responses: [] diff --git a/tests/request_data/test_suspend_user.yaml b/tests/request_data/test_suspend_user.yaml new file mode 100644 index 0000000..7dd67e8 --- /dev/null +++ b/tests/request_data/test_suspend_user.yaml @@ -0,0 +1 @@ +responses: [] diff --git a/tests/request_data/test_with_communities.yaml b/tests/request_data/test_with_communities.yaml new file mode 100644 index 0000000..cd7a289 --- /dev/null +++ b/tests/request_data/test_with_communities.yaml @@ -0,0 +1,2198 @@ +responses: +- response: + auto_calculate_content_length: false + body: '[{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"},{"id":15516,"createdAt":"2024-06-05 + 09:58:30.7417","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:30.7417","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:ABC","description":"","uuid":"06ff5c42-20a4-4c44-9894-dadcfeec99a7","shortName":"ABC","beanName":"Group"},{"id":15518,"createdAt":"2024-06-05 + 09:58:31.153758","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.153758","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:curators","description":"Community + curators","uuid":"87b677b2-145a-414f-b139-842d521f24a4","shortName":"curators","beanName":"Group"},{"id":15517,"createdAt":"2024-06-05 + 09:58:31.04761","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.04761","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:members","description":"Community + members","uuid":"f0a02638-cd54-4924-b1e9-b61f43753ca3","shortName":"members","beanName":"Group"},{"id":15520,"createdAt":"2024-06-05 + 09:58:31.377526","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.377526","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:publishers","description":"Community + publishers (publishes the record)","uuid":"1a74190e-5634-4624-899e-04da844771f5","shortName":"publishers","beanName":"Group"},{"id":15519,"createdAt":"2024-06-05 + 09:58:31.264524","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.264524","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:reviewers","description":"Community + reviewers (mark records as reviewed)","uuid":"72cc98a0-7ab9-4197-a93d-4f56265b529b","shortName":"reviewers","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=228E31E07A5C77DDE5E086BB9C73209D; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '{"id":15897,"createdAt":"2024-09-07 14:32:46.617691","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:46.617691","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"975dbd35-7647-4c9a-8ee0-4b5db096d814","shortName":"Community + cuni","beanName":"Group"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B0A21546A54D65ED4B74FDD411427912; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/createGroup +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=0242F5A5721A024681FF596B45340679; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=709E80E238CA6BEE73C6D4D5288FCB87; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/addAdmin +- response: + auto_calculate_content_length: false + body: '{"errorId":"191cc78fe02","resource":null,"name":"ResourceNotExistsException","message":"Error + 191cc78fe02: Incorrect result size: expected 1, actual 0","friendlyMessageTemplate":null,"suppressed":[]}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=4EB0E0C8EDC9E8CA928F3D449DC9F9F7; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 400 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '{"id":14419,"createdAt":"2024-09-07 14:32:47.293869","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:47.293869","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni","description":"Resource + for community cuni","uuid":"3d8b6b2b-a82a-4f34-ba19-ab7932614a38","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=FBB89040E728FCC319BA245A77C6AE28; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/createResource +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=463923028F955A6A2A19CFC21E967650; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=9FE577FD4CEA6B81FEFD3F7CD2B5EA79; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignGroupToResource +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":null,"valueCreatedAt":null,"valueCreatedBy":null,"valueModifiedAt":null,"valueModifiedBy":null,"entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=489CCB2C5B17FC36230F9A915146BE3E; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=7F0C40B9CE623116B8EBBBA1035CA3BA; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/setAttribute +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=520FBBC0F934D88EB8C2A29AC6C7E00D; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1F729019083DE71EA80E07D55FAB59E3; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignService +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=D5B77C87CBCF39D4C5D596633DAB7118; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=47E483E3041CD995826372FFA679878A; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/createGroup +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=21CBD97D4956D9E17A24CA9532DCB987; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=F56D053C7484081F0DD4B1F3371DF156; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/addAdmin +- response: + auto_calculate_content_length: false + body: '{"errorId":"191cc7905d8","resource":null,"name":"ResourceNotExistsException","message":"Error + 191cc7905d8: Incorrect result size: expected 1, actual 0","friendlyMessageTemplate":null,"suppressed":[]}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=8DAB12ADB26EC5E1784C5FF422A9F807; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 400 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '{"id":14420,"createdAt":"2024-09-07 14:32:49.259214","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:49.259214","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:curator","description":"Resource + for community cuni and role curator","uuid":"89526a54-1bfe-4ad1-9c17-55678ad66077","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B1752D23B1B109233E69D854EBAE6D45; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/createResource +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=25871DDE4B618A40EE5D4FE5FBEDAC3E; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=C459C737F1E8B0D7851D0FE9EF819FC7; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignGroupToResource +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":null,"valueCreatedAt":null,"valueCreatedBy":null,"valueModifiedAt":null,"valueModifiedBy":null,"entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=BFE1E7F0BE83AAA8E999B9CE4C2E75C2; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=9A4B1A67DA800DDA7081804C40571A6B; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/setAttribute +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=721BBF94E318DE63693E4D314CE51FE1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=C918FE29048450F9E4B47D276333F894; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignService +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=56117D4C6612806618D70CAD0FACBA78; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=EF3884BD7C7C63ED19E44F952C78C142; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/createGroup +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=3EB6AC04EEDF4A42169D6D3F2DD64DAF; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=F520AA2A5275351E75289864CDFEA9C2; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/addAdmin +- response: + auto_calculate_content_length: false + body: '{"errorId":"191cc790cf1","resource":null,"name":"ResourceNotExistsException","message":"Error + 191cc790cf1: Incorrect result size: expected 1, actual 0","friendlyMessageTemplate":null,"suppressed":[]}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B5986A9F5BB697838ACF6B4D46AF5DC7; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 400 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '{"id":14421,"createdAt":"2024-09-07 14:32:51.079886","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:51.079886","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:member","description":"Resource + for community cuni and role member","uuid":"27ce1628-a2f7-4f2c-8aaa-03effd31358c","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=339388C05012D7D8956540F0CEBA9364; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/createResource +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1683A101A1B43B2B0E620F59F05B5A34; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=8A946AFCF02C95C1CAD0D837C9B0C649; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignGroupToResource +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":null,"valueCreatedAt":null,"valueCreatedBy":null,"valueModifiedAt":null,"valueModifiedBy":null,"entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=CA0FD6ECEB727DCCFC2E92E4D0CE6964; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=862BD70336C5DCE4731CD9284B57E5EF; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/setAttribute +- response: + auto_calculate_content_length: false + body: '[]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=124ED146F26142942898F1A38EE04FA1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: 'null' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=02EEDF2C49EE46C86EEFED565B807F8B; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/assignService +- response: + auto_calculate_content_length: false + body: '[{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"},{"id":15516,"createdAt":"2024-06-05 + 09:58:30.7417","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:30.7417","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:ABC","description":"","uuid":"06ff5c42-20a4-4c44-9894-dadcfeec99a7","shortName":"ABC","beanName":"Group"},{"id":15518,"createdAt":"2024-06-05 + 09:58:31.153758","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.153758","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:curators","description":"Community + curators","uuid":"87b677b2-145a-414f-b139-842d521f24a4","shortName":"curators","beanName":"Group"},{"id":15517,"createdAt":"2024-06-05 + 09:58:31.04761","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.04761","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:members","description":"Community + members","uuid":"f0a02638-cd54-4924-b1e9-b61f43753ca3","shortName":"members","beanName":"Group"},{"id":15520,"createdAt":"2024-06-05 + 09:58:31.377526","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.377526","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:publishers","description":"Community + publishers (publishes the record)","uuid":"1a74190e-5634-4624-899e-04da844771f5","shortName":"publishers","beanName":"Group"},{"id":15519,"createdAt":"2024-06-05 + 09:58:31.264524","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.264524","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:reviewers","description":"Community + reviewers (mark records as reviewed)","uuid":"72cc98a0-7ab9-4197-a93d-4f56265b529b","shortName":"reviewers","beanName":"Group"},{"id":15897,"createdAt":"2024-09-07 + 14:32:46.617691","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:46.617691","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"975dbd35-7647-4c9a-8ee0-4b5db096d814","shortName":"Community + cuni","beanName":"Group"},{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=01A2C27B7367C1FD8D07B918C891336C; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=F4D4CD4A9FE36D5383EB397008D70612; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14419,"createdAt":"2024-09-07 14:32:47.293869","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:47.293869","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni","description":"Resource + for community cuni","uuid":"3d8b6b2b-a82a-4f34-ba19-ab7932614a38","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=8D86B32B1C015178D5BD80C7905D7822; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15897,"createdAt":"2024-09-07 14:32:46.617691","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:46.617691","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"975dbd35-7647-4c9a-8ee0-4b5db096d814","shortName":"Community + cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=0A823FD2B96C35E21BFA01E7948B8DED; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni"],"valueCreatedAt":"2024-09-07 + 14:32:47.942955","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:47.942955","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=074F731D08C30F68CB1DBB280D881767; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=08434ACBD368218805935694A13A33DC; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=575E8402E0FABE46713CE6FDCB9902F8; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=841F4CE7FC9791E71CE1A31A2AB667B4; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14420,"createdAt":"2024-09-07 14:32:49.259214","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:49.259214","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:curator","description":"Resource + for community cuni and role curator","uuid":"89526a54-1bfe-4ad1-9c17-55678ad66077","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=F732C2F5E0D477256BF9657D1DF19915; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=E5DE9FBDF6938ED3FBAF7F84714D8DA9; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni:role:curator"],"valueCreatedAt":"2024-09-07 + 14:32:49.843897","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:49.843897","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=BE4D1958D2FC7F9B33661D0CF1EF6B3F; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=3989DEA164A462AEEC56D5B64B5987FB; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=C4DA1491211D6AAD64D7C6FD0BA48715; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=AA19BA5778154F8D20B7F490DC56AD98; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14421,"createdAt":"2024-09-07 14:32:51.079886","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:51.079886","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:member","description":"Resource + for community cuni and role member","uuid":"27ce1628-a2f7-4f2c-8aaa-03effd31358c","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=50F281E5A7D337D3D0B05B340A247368; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=3F63506563AA214044F273B969B8CD4B; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni:role:member"],"valueCreatedAt":"2024-09-07 + 14:32:51.646351","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:51.646351","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B9CA14C9094E42BE194C97564BFB831B; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=08B2D664ED66D7E7EE3E164FA22CE0FD; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"},{"id":15516,"createdAt":"2024-06-05 + 09:58:30.7417","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:30.7417","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:ABC","description":"","uuid":"06ff5c42-20a4-4c44-9894-dadcfeec99a7","shortName":"ABC","beanName":"Group"},{"id":15518,"createdAt":"2024-06-05 + 09:58:31.153758","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.153758","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:curators","description":"Community + curators","uuid":"87b677b2-145a-414f-b139-842d521f24a4","shortName":"curators","beanName":"Group"},{"id":15517,"createdAt":"2024-06-05 + 09:58:31.04761","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.04761","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:members","description":"Community + members","uuid":"f0a02638-cd54-4924-b1e9-b61f43753ca3","shortName":"members","beanName":"Group"},{"id":15520,"createdAt":"2024-06-05 + 09:58:31.377526","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.377526","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:publishers","description":"Community + publishers (publishes the record)","uuid":"1a74190e-5634-4624-899e-04da844771f5","shortName":"publishers","beanName":"Group"},{"id":15519,"createdAt":"2024-06-05 + 09:58:31.264524","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.264524","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:reviewers","description":"Community + reviewers (mark records as reviewed)","uuid":"72cc98a0-7ab9-4197-a93d-4f56265b529b","shortName":"reviewers","beanName":"Group"},{"id":15897,"createdAt":"2024-09-07 + 14:32:46.617691","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:46.617691","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"975dbd35-7647-4c9a-8ee0-4b5db096d814","shortName":"Community + cuni","beanName":"Group"},{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=A72B4BEEFB9B3EB0EC002055E439BFCC; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=C97CA02AA60683AAA9AE8B4E139B4E39; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14419,"createdAt":"2024-09-07 14:32:47.293869","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:47.293869","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni","description":"Resource + for community cuni","uuid":"3d8b6b2b-a82a-4f34-ba19-ab7932614a38","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=5AFE4F6170F1E41ACFEA0933E64B81ED; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15897,"createdAt":"2024-09-07 14:32:46.617691","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:46.617691","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"975dbd35-7647-4c9a-8ee0-4b5db096d814","shortName":"Community + cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=F6BE1AEA739CE2AC68DAD8A7519F4251; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni"],"valueCreatedAt":"2024-09-07 + 14:32:47.942955","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:47.942955","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=8AE46BC030FA958177F912485F8A3FD1; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B8A2173E7F26755DA9D0FC9DFC9008B6; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B55708188A55E0896A3E0592C713174D; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=97A88A3F9FBB26913CF87BC91362F69D; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14420,"createdAt":"2024-09-07 14:32:49.259214","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:49.259214","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:curator","description":"Resource + for community cuni and role curator","uuid":"89526a54-1bfe-4ad1-9c17-55678ad66077","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=CD79B8D7C7C7DE4553C6E5808F0E346B; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=D8F1BBF0A36F21E92E537E672F9DB961; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni:role:curator"],"valueCreatedAt":"2024-09-07 + 14:32:49.843897","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:49.843897","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B8FB4DF44F5120CE78D4DFD058CD68A3; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=6C892F6C3E951C7B401C3F1912979036; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=C2E8846D51D8E84355B877D2575B1B6F; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B6BFA4429D770364617EBC2B6F359219; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14421,"createdAt":"2024-09-07 14:32:51.079886","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:51.079886","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:member","description":"Resource + for community cuni and role member","uuid":"27ce1628-a2f7-4f2c-8aaa-03effd31358c","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=57523492F1E29C98EC72A3BE3F3B1E94; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=4FAFBE5A31C0D02AD274C1FEBAA4AB9A; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni:role:member"],"valueCreatedAt":"2024-09-07 + 14:32:51.646351","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:51.646351","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=AD0588174D4B82FBFEDE84DF939A97EA; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=62407FA01C82BB38BABA178BC4D5AEE8; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15883,"createdAt":"2024-09-05 08:38:34.31645","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-05 + 08:38:34.31645","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:AAA","description":"Community + AAA","uuid":"9e43aeab-1d1d-4aaa-bb36-6aa452269c3b","shortName":"AAA","beanName":"Group"},{"id":15516,"createdAt":"2024-06-05 + 09:58:30.7417","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:30.7417","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:ABC","description":"","uuid":"06ff5c42-20a4-4c44-9894-dadcfeec99a7","shortName":"ABC","beanName":"Group"},{"id":15518,"createdAt":"2024-06-05 + 09:58:31.153758","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.153758","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:curators","description":"Community + curators","uuid":"87b677b2-145a-414f-b139-842d521f24a4","shortName":"curators","beanName":"Group"},{"id":15517,"createdAt":"2024-06-05 + 09:58:31.04761","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.04761","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:members","description":"Community + members","uuid":"f0a02638-cd54-4924-b1e9-b61f43753ca3","shortName":"members","beanName":"Group"},{"id":15520,"createdAt":"2024-06-05 + 09:58:31.377526","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.377526","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:publishers","description":"Community + publishers (publishes the record)","uuid":"1a74190e-5634-4624-899e-04da844771f5","shortName":"publishers","beanName":"Group"},{"id":15519,"createdAt":"2024-06-05 + 09:58:31.264524","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-06-05 + 09:58:31.264524","modifiedBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","createdByUid":131924,"modifiedByUid":131924,"voId":4003,"parentGroupId":15516,"name":"devrepo:communities:ABC:reviewers","description":"Community + reviewers (mark records as reviewed)","uuid":"72cc98a0-7ab9-4197-a93d-4f56265b529b","shortName":"reviewers","beanName":"Group"},{"id":15897,"createdAt":"2024-09-07 + 14:32:46.617691","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:46.617691","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"975dbd35-7647-4c9a-8ee0-4b5db096d814","shortName":"Community + cuni","beanName":"Group"},{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1A72435830625FD2F126F786DE1B1F3F; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=3027BB36CB023F04B4A7C0A24C101280; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14419,"createdAt":"2024-09-07 14:32:47.293869","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:47.293869","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni","description":"Resource + for community cuni","uuid":"3d8b6b2b-a82a-4f34-ba19-ab7932614a38","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=2FAE5B577CECB251300D767EC1DBA8D3; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15897,"createdAt":"2024-09-07 14:32:46.617691","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:46.617691","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15393,"name":"devrepo:communities:Community + cuni","description":"Charles university members","uuid":"975dbd35-7647-4c9a-8ee0-4b5db096d814","shortName":"Community + cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=77025157E054E9AB0C9A557AB7D2BBF6; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni"],"valueCreatedAt":"2024-09-07 + 14:32:47.942955","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:47.942955","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=B8366348BED32FAEBD1FFEC1DD162A22; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=282B9E809B6899167DD2D8324D551491; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=1A18B5E14C75A861309CBF14D4446CB4; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=235BB9ED6ECE6F86623A4E3BCDCD7CEB; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14420,"createdAt":"2024-09-07 14:32:49.259214","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:49.259214","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:curator","description":"Resource + for community cuni and role curator","uuid":"89526a54-1bfe-4ad1-9c17-55678ad66077","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=3FC569683F8CD8F6E877CC2423C94D66; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=2E69C7749A948E2AA1322BD21F150203; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni:role:curator"],"valueCreatedAt":"2024-09-07 + 14:32:49.843897","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:49.843897","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=A8E142E47B21C325CA2D508F08500E07; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=A5052DF36242B8B53EADFBD74690BDF6; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices +- response: + auto_calculate_content_length: false + body: '[{"id":15898,"createdAt":"2024-09-07 14:32:48.520236","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:48.520236","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role curator of cuni","description":"Group for role curator of community + cuni","uuid":"1de44d68-2e99-4e8e-a3b3-49e11f44c6e3","shortName":"Role curator + of cuni","beanName":"Group"},{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=83FFE187BEDCFE94D3C17AEB7EA528DD; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAllSubGroups +- response: + auto_calculate_content_length: false + body: '[{"id":144994,"createdAt":"2024-09-04 16:59:32.270937","createdBy":"12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz","modifiedAt":"2024-09-04 + 17:01:13.690275","modifiedBy":"perunRegistrar","createdByUid":131924,"modifiedByUid":-1,"firstName":"(Service)","lastName":"nrp-fa-devrepo","middleName":null,"titleBefore":null,"titleAfter":"(Service) + nrp-fa-devrepo","serviceUser":true,"sponsoredUser":false,"uuid":"3c13d782-5ee6-4c25-81e8-f7cbda41f482","majorSpecificType":"SERVICE","specificUser":true,"beanName":"User"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=47B9C942AC502DDECC87D480767A3BA0; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/groupsManager/getAdmins +- response: + auto_calculate_content_length: false + body: '{"id":14421,"createdAt":"2024-09-07 14:32:51.079886","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:51.079886","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"facilityId":4662,"voId":4003,"name":"Community:cuni:member","description":"Resource + for community cuni and role member","uuid":"27ce1628-a2f7-4f2c-8aaa-03effd31358c","beanName":"Resource"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=DA657A6304BF4B93D088093378662303; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getResourceByName +- response: + auto_calculate_content_length: false + body: '[{"id":15899,"createdAt":"2024-09-07 14:32:50.462202","createdBy":"nrp-fa-devrepo@META","modifiedAt":"2024-09-07 + 14:32:50.462202","modifiedBy":"nrp-fa-devrepo@META","createdByUid":144994,"modifiedByUid":144994,"voId":4003,"parentGroupId":15897,"name":"devrepo:communities:Community + cuni:Role member of cuni","description":"Group for role member of community + cuni","uuid":"63d4d6ab-96db-401a-b29a-3020f8732a56","shortName":"Role member + of cuni","beanName":"Group"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=42E52B73788F681E979D28A822D6E976; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedGroups +- response: + auto_calculate_content_length: false + body: '{"id":3585,"createdAt":"2019-11-04 09:18:27.260377","createdBy":"445753@muni.cz","modifiedAt":"2019-11-04 + 09:18:27.260377","modifiedBy":"445753@muni.cz","createdByUid":59835,"modifiedByUid":59835,"friendlyName":"capabilities","namespace":"urn:perun:resource:attribute-def:def","description":"Capabilities + according to AARC specification. i.e. specification of resource and optional + actions.","type":"java.util.ArrayList","displayName":"Capabilities","writable":true,"unique":false,"value":["res:communities:cuni:role:member"],"valueCreatedAt":"2024-09-07 + 14:32:51.646351","valueCreatedBy":"nrp-fa-devrepo@META","valueModifiedAt":"2024-09-07 + 14:32:51.646351","valueModifiedBy":"nrp-fa-devrepo@META","entity":"resource","baseFriendlyName":"capabilities","friendlyNameParameter":"","beanName":"Attribute"}' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=14F025112D7A54DF021FED920D0076AA; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/attributesManager/getAttribute +- response: + auto_calculate_content_length: false + body: '[{"id":1023,"createdAt":"2024-07-24 14:13:56.174237","createdBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","modifiedAt":"2024-07-24 + 14:13:56.174237","modifiedBy":"df6fe45d8bb8eabb942792eacc62f57df2e2a5e1@einfra.cesnet.cz","createdByUid":59835,"modifiedByUid":59835,"name":"nrp_invenio_export","description":"Propagation + of data required for NRP Invenio hosted by CESNET","delay":10,"recurrence":2,"enabled":true,"script":"./generic_json_gen","useExpiredMembers":true,"beanName":"Service"}]' + content_type: text/plain + headers: + Cache-Control: no-cache, no-store, max-age=0, must-revalidate + Expires: '0' + Keep-Alive: timeout=5, max=100 + Pragma: no-cache + Referrer-Policy: no-referrer-when-downgrade + Set-Cookie: PERUNSESSION=8CE6A527E10C3E66501E99DE336D593B; Path=/; Secure; HttpOnly; + SameSite=Strict + Strict-Transport-Security: max-age=63072000 + Transfer-Encoding: chunked + Vary: Accept-Encoding + X-Content-Type-Options: nosniff + X-Frame-Options: SAMEORIGIN + X-XSS-Protection: 1; mode=block + method: POST + status: 200 + url: https://perun-api.e-infra.cz/krb/rpc/json/resourcesManager/getAssignedServices diff --git a/tests/templates/oarepo/invenio_theme/header_login.html b/tests/templates/oarepo/invenio_theme/header_login.html new file mode 100644 index 0000000..eeff142 --- /dev/null +++ b/tests/templates/oarepo/invenio_theme/header_login.html @@ -0,0 +1 @@ + diff --git a/tests/test_login.py b/tests/test_login.py new file mode 100644 index 0000000..ef64de0 --- /dev/null +++ b/tests/test_login.py @@ -0,0 +1,86 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +import pytest +from invenio_access.permissions import system_identity +from invenio_accounts.models import User, UserIdentity +from invenio_communities import current_communities +from invenio_communities.members.records.models import MemberModel + + +@pytest.mark.skip(reason="This test is intended to be run manually") +def test_login(app, db, location, search_clear, client, test_ui_pages): + """ + This test shows how to log in a user using the E-Infra OIDC provider. + As log-in is a process based on a web browser, the test must be run + manually at the moment + + To run it, set the following environment variables: + INVENIO_EINFRA_CONSUMER_KEY + INVENIO_EINFRA_CONSUMER_SECRET + + Then check that you have correct e-infra configuration in the conftest.py + (correct ids of groups, facilities, attributes, ...) and run the test. + + Note: The test will fail if the user does not have exactly one membership + inside perun AAI in the community with the slug 'cuni' and role 'curator' + """ + my_original_email = "ms@cesnet.cz" + user = User( + username="asdasdasd", + email=my_original_email, + active=True, + password="1234", + user_profile={"full_name": "Mirek Simek"}, + ) + db.session.add(user) + db.session.commit() + + identity = UserIdentity.create( + user=user, + method="e-infra", + external_id="12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz", + ) + db.session.commit() + + community = current_communities.service.create( + system_identity, + { + "slug": "CUNI", + "metadata": { + "title": "Charles University", + "description": "Charles university members", + }, + "access": {"visibility": "public"}, + }, + ) + current_communities.service.indexer.refresh() + + member_list = MemberModel.query.filter_by(user_id=user.id).all() + assert len(member_list) == 0 + + resp = client.get("/oauth/login/e-infra/", base_url="https://127.0.0.1:5000/") + assert resp.status_code == 302 + location = resp.headers["Location"] + print( + "Open your browser and go to the following location. Log-in there and copy the final URL here" + ) + print(location) + redirect_url = input("Paste the final URL here: ") + redirect_url = redirect_url.strip() + redirect_url = redirect_url[len("https://127.0.0.1:5000") :] + + resp = client.get(redirect_url, base_url="https://127.0.0.1:5000/") + assert resp.status_code == 302 + location = resp.headers["Location"] + print(location) + + # check that the user has the correct community roles + member_list = MemberModel.query.filter_by(user_id=user.id).all() + assert len(member_list) == 1 + assert str(member_list[0].community_id) == community.id + assert member_list[0].role == "curator" diff --git a/tests/test_low_level_perun_api.py b/tests/test_low_level_perun_api.py new file mode 100644 index 0000000..e23e124 --- /dev/null +++ b/tests/test_low_level_perun_api.py @@ -0,0 +1,101 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +def test_create_non_existing_group( + smart_record, low_level_perun_api, test_repo_communities_id +): + + with smart_record("test_create_group.yaml") as recorded: + group, group_created, admin_created = low_level_perun_api.create_group( + name="AAA", + description="Community AAA", + parent_group_id=test_repo_communities_id, + ) + if recorded: + assert group["id"] == 15883 + else: + print(f"Add the >>> assert group['id'] == {group['id']} here <<<") + + assert group_created == True + assert admin_created == True + + +def test_create_existing_group( + smart_record, low_level_perun_api, test_repo_communities_id +): + + with smart_record("test_create_group_existing.yaml"): + group, group_created, admin_created = low_level_perun_api.create_group( + name="AAA", + description="Community AAA", + parent_group_id=test_repo_communities_id, + ) + assert not group_created + assert not admin_created + + +def test_create_resource_for_group( + smart_record, + low_level_perun_api, + test_repo_communities_id, + test_group_id, + test_vo_id, + test_facility_id, + test_capabilities_attribute_id, + perun_sync_service_id, +): + + with smart_record("test_create_resource_for_group.yaml") as recorded: + resource, resource_created = ( + low_level_perun_api.create_resource_with_group_and_capabilities( + vo_id=test_vo_id, + facility_id=test_facility_id, + group_id=test_group_id, + name="Community:AAA", + description="Resource for community AAA", + capability_attr_id=test_capabilities_attribute_id, + capabilities=["res:communities:AAA"], + perun_sync_service_id=perun_sync_service_id, + ) + ) + if recorded: + assert resource["id"] == 14408 + else: + print(f"Add the >>> assert resource['id'] == {resource['id']} here <<<") + assert resource_created == True + + +def test_create_resource_for_group_existing( + smart_record, + low_level_perun_api, + test_repo_communities_id, + test_group_id, + test_vo_id, + test_facility_id, + test_capabilities_attribute_id, + perun_sync_service_id, +): + + with smart_record("test_create_resource_for_group_existing.yaml") as recorded: + resource, resource_created = ( + low_level_perun_api.create_resource_with_group_and_capabilities( + vo_id=test_vo_id, + facility_id=test_facility_id, + group_id=test_group_id, + name="Community:AAA", + description="Resource for community AAA", + capability_attr_id=test_capabilities_attribute_id, + capabilities=["res:communities:AAA"], + perun_sync_service_id=perun_sync_service_id, + ) + ) + if recorded: + assert resource["id"] == 14408 + else: + print(f"Add the >>> assert resource['id'] == {resource['id']} here <<<") + + assert resource_created == False diff --git a/tests/test_perun_groups.py b/tests/test_perun_groups.py deleted file mode 100644 index 02cc000..0000000 --- a/tests/test_perun_groups.py +++ /dev/null @@ -1,245 +0,0 @@ -import importlib -from unittest.mock import Mock - -import jwt -from flask_login.utils import _create_identifier -from invenio_access.permissions import system_identity -from invenio_communities import current_communities -from invenio_communities.members.records.api import Member -from invenio_oauthclient.ext import InvenioOAuthClient -from invenio_search.engine import dsl - -from oidc_einfra.communities import ( - account_info_link_perun_groups, - get_mapped_communities, -) - -# userinfo url 'https://login.cesnet.cz/oidc/' - - -def get_user_community_roles(user_id): - Member.index.refresh() - members_service = current_communities.service.members - search = members_service._search( - "search", - system_identity, - {}, - None, - extra_filter=dsl.Q("term", **{"user.id": str(user_id)}), - ) - result = search.execute() - ret = [] - for hit in result: - ret.append((hit["community_id"], hit["role"])) - return ret - - -def token_getter_mock(remote, token=""): - return ["token"] - - -def set_remote(return_userinfo_fixture, monkeypatch): - remote = Mock() - remote.consumer_key = "333e0e21-83bc-414f-bb4c-6df622fc1331" - remote.base_url = "https://login.cesnet.cz/oidc/" - - remote.get.side_effect = return_userinfo_fixture - module = importlib.import_module("cesnet_openid_remote.communities") - monkeypatch.setattr(module, "token_getter", token_getter_mock) - return remote - - -def test_adding_groups( - db, - community_with_aai_mapping_cf, - users, - return_userinfo_both, - monkeypatch, - search_clear, -): - remote = set_remote(return_userinfo_both, monkeypatch) - user = users["curator"] - - roles_before = get_user_community_roles(user.id) - - account_info_link_perun_groups( - remote, - token=None, - response=None, - account_info={"user": {"email": "curator@curator.org"}}, - ) - - roles_after = get_user_community_roles(user.id) - assert len(roles_before) == 0 - assert len(roles_after) == 1 - assert roles_after[0][1] == "curator" - - account_info_link_perun_groups( - remote, - token=None, - response=None, - account_info={"user": {"email": "curator@curator.org"}}, - ) - roles_after_repeat = get_user_community_roles(user.id) - assert len(roles_after_repeat) == 1 - assert roles_after_repeat[0][1] == "curator" - - -def test_remove_groups( - db, - community_with_aai_mapping_cf, - users, - return_userinfo_curator, - return_userinfo_noone, - monkeypatch, - search_clear, -): - remote = set_remote(return_userinfo_curator, monkeypatch) - user = users["curator"] - - roles_before = get_user_community_roles(user.id) - - account_info_link_perun_groups( - remote, - token=None, - response=None, - account_info={"user": {"email": "curator@curator.org"}}, - ) - - roles_after = get_user_community_roles(user.id) - assert len(roles_before) == 0 - assert len(roles_after) == 1 - assert roles_after[0][1] == "curator" - - remote.get.side_effect = return_userinfo_noone - account_info_link_perun_groups( - remote, - token=None, - response=None, - account_info={"user": {"email": "curator@curator.org"}}, - ) - roles_after_perun_deletion = get_user_community_roles(user.id) - assert len(roles_after_perun_deletion) == 0 - - -def test_two_communities( - db, - community_with_aai_mapping_cf, - community2_with_aai_mapping_cf, - users, - return_userinfo_two_communities, - return_userinfo_noone, - monkeypatch, - search_clear, -): - remote = set_remote(return_userinfo_two_communities, monkeypatch) - user = users["curator"] - - roles_before = get_user_community_roles(user.id) - - account_info_link_perun_groups( - remote, - token=None, - response=None, - account_info={"user": {"email": "curator@curator.org"}}, - ) - - roles_after = get_user_community_roles(user.id) - assert len(roles_before) == 0 - assert len(roles_after) == 2 - - account_info_link_perun_groups( - remote, - token=None, - response=None, - account_info={"user": {"email": "curator@curator.org"}}, - ) - roles_after_repeat = get_user_community_roles(user.id) - assert len(roles_after_repeat) == 2 - - remote.get.side_effect = return_userinfo_noone - account_info_link_perun_groups( - remote, - token=None, - response=None, - account_info={"user": {"email": "curator@curator.org"}}, - ) - roles_after_perun_deletion = get_user_community_roles(user.id) - assert len(roles_after_perun_deletion) == 0 - - -def test_aai_mapping_group_facet( - db, community_with_aai_mapping_cf, community2_with_aai_mapping_cf, search_clear -): - # todo doesn't seem to work correctly for now, returns communities without queried roles too - mapped_communities = get_mapped_communities( - { - "alt_test_community:curator", - } - ) - assert len(mapped_communities) == 1 - - -class MockSerializer: - def loads(self, token): - return { - "sid": _create_identifier(), - "app": "eduid", - "next": "https://127.0.0.1:5000/", - } - - -id_token_unregistered = { - "sub": "noonenobodynothing", - "email_verified": False, - "preferred_username": "nobody", - "given_name": "noone", - "locale": "cs", - "auth_time": 3, - "name": "nobody noone", - "family_name": "noone", - "email": "nobody@noone.nope", -} - - -def test_user_unregistered( - db, - app, - community_with_aai_mapping_cf, - users, - return_userinfo_both, - monkeypatch, - client, - search_clear, -): - InvenioOAuthClient(app) - module = importlib.import_module("invenio_oauthclient.views.client") - monkeypatch.setattr(module, "serializer", MockSerializer()) - - # todo pozn. autocreate_user is called before linking perun groups and crashes if external id is not provided in id token - # the get oauth_get_user function uses it to get the user, therefore i can't find a way to not get user in account_info_link_perun_groups without directly hacking it - module = importlib.import_module("cesnet_openid_remote.communities") - monkeypatch.setattr( - module, "oauth_get_user", lambda a, account_info, access_token: None - ) - monkeypatch.setattr( - module, "get_user_perun_groups", lambda x: ["test_community:curator"] - ) - - from flask_oauthlib.client import OAuthRemoteApp - - monkeypatch.setattr( - OAuthRemoteApp, - "handle_oauth2_response", - lambda self, x: { - "access_token": "lalala", - "token_type": "Bearer", - "expires_in": 3599, - "scope": "lalala", - "id_token": jwt.encode(id_token_unregistered, ""), - }, - ) - res = client.get("/oauth/authorized/eduid/?code=dxuW0cqdD2CW&state=eyJhbGci") - user_id = len(users) + 1 - roles = get_user_community_roles(user_id) - assert len(roles) == 1 diff --git a/tests/test_perun_sync_task.py b/tests/test_perun_sync_task.py new file mode 100644 index 0000000..206d212 --- /dev/null +++ b/tests/test_perun_sync_task.py @@ -0,0 +1,29 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +from invenio_access.permissions import system_identity +from invenio_communities import current_communities + +from oarepo_oidc_einfra.tasks import synchronize_community_to_perun + + +def test_sync_community(app, db, location, smart_record, search_clear): + community = current_communities.service.create( + system_identity, + { + "slug": "CUNI", + "metadata": { + "title": "Charles University", + "description": "Charles university members", + }, + "access": {"visibility": "public"}, + }, + ) + current_communities.service.indexer.refresh() + + with smart_record("test_initial_sync_community") as recorded: + synchronize_community_to_perun(community.id) diff --git a/tests/test_store_dump.py b/tests/test_store_dump.py new file mode 100644 index 0000000..3e79517 --- /dev/null +++ b/tests/test_store_dump.py @@ -0,0 +1,56 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +import pytest +from invenio_access.models import ActionUsers +from invenio_accounts.models import User +from invenio_oauth2server.models import Token +from invenio_records_resources.services.errors import PermissionDeniedError + +from oarepo_oidc_einfra.resources import upload_dump_action + + +def test_store_dump(app, db, client, test_ui_pages): + + user = User(email="test@test.com", active=True) + db.session.add(user) + db.session.commit() + + token = Token.create_personal("test", user.id, scopes=[], is_internal=False) + db.session.commit() + + with pytest.raises(PermissionDeniedError): + client.post( + "/api/oidc-einfra/dumps/upload", + base_url="https://127.0.0.1:5000/", + json={ + "resources": {}, + "users": {}, + }, + headers={ + "Authorization": f"Bearer {token.access_token}", + "Content-Type": "application/json", + }, + ) + + db.session.add(ActionUsers.allow(upload_dump_action, user_id=user.id)) + db.session.commit() + + post_result = client.post( + "/api/oidc-einfra/dumps/upload", + base_url="https://127.0.0.1:5000/", + json={ + "resources": {}, + "users": {}, + }, + headers={ + "Authorization": f"Bearer {token.access_token}", + "Content-Type": "application/json", + }, + ) + assert post_result.status_code == 201 + assert post_result.json == {"status": "ok"} diff --git a/tests/test_update_from_perun_dump.py b/tests/test_update_from_perun_dump.py new file mode 100644 index 0000000..ff11a68 --- /dev/null +++ b/tests/test_update_from_perun_dump.py @@ -0,0 +1,165 @@ +# +# Copyright (C) 2024 CESNET z.s.p.o. +# +# oarepo-oidc-einfra is free software; you can redistribute it and/or +# modify it under the terms of the MIT License; see LICENSE file for more +# details. +# +from pathlib import Path + +from invenio_access.permissions import system_identity +from invenio_accounts.models import User, UserIdentity +from invenio_communities import current_communities +from invenio_communities.members import Member + +from oarepo_oidc_einfra.communities import CommunityRole, CommunitySupport +from oarepo_oidc_einfra.tasks import update_from_perun_dump + + +def touri(filename): + return (Path(__file__).parent / "dump_data" / filename).as_uri() + + +def test_no_communities(app, db, location, search_clear): + update_from_perun_dump(touri("1.json")) + update_from_perun_dump(touri("2.json")) + update_from_perun_dump(touri("3.json")) + + +def test_no_communities_user_exists_but_not_linked( + app, db, location, search_clear, smart_record +): + with smart_record( + "test_no_communities_user_exists_but_not_linked.yaml" + ) as recorded: + my_original_email = "ms@cesnet.cz" + user = User( + username="asdasdasd", + email=my_original_email, + active=True, + password="1234", + user_profile={"full_name": "Mirek Simek"}, + ) + db.session.add(user) + db.session.commit() + + update_from_perun_dump(touri("1.json")) + update_from_perun_dump(touri("2.json")) + update_from_perun_dump(touri("3.json")) + + user = User.query.filter_by(username="asdasdasd").one() + assert user.user_profile["full_name"] == "Mirek Simek" + assert user.email == my_original_email + + +def test_no_communities_user_linked(app, db, location, search_clear, smart_record): + with smart_record("test_no_communities_user_linked.yaml") as recorded: + my_original_email = "ms@cesnet.cz" + user = User( + username="asdasdasd", + email=my_original_email, + active=True, + password="1234", + user_profile={"full_name": "Mirek Simek"}, + ) + db.session.add(user) + db.session.commit() + + identity = UserIdentity.create( + user=user, + method="e-infra", + external_id="12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz", + ) + db.session.commit() + + update_from_perun_dump(touri("1.json")) + update_from_perun_dump(touri("2.json")) + update_from_perun_dump(touri("3.json")) + + user = User.query.filter_by(username="asdasdasd").one() + assert user.user_profile["full_name"] == "Miroslav Šimek" + assert user.user_profile["affiliations"] == "CESNET, z. s. p. o." + assert user.email == "miroslav.simek@cesnet.cz" + + +def test_with_communities(app, db, location, search_clear, smart_record): + with smart_record("test_with_communities.yaml") as recorded: + my_original_email = "ms@cesnet.cz" + user = User( + username="asdasdasd", + email=my_original_email, + active=True, + password="1234", + user_profile={"full_name": "Mirek Simek"}, + ) + db.session.add(user) + db.session.commit() + + identity = UserIdentity.create( + user=user, + method="e-infra", + external_id="12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz", + ) + db.session.commit() + + community = current_communities.service.create( + system_identity, + { + "slug": "CUNI", + "metadata": { + "title": "Charles University", + "description": "Charles university members", + }, + "access": {"visibility": "public"}, + }, + ) + current_communities.service.indexer.refresh() + + update_from_perun_dump(touri("1.json")) + update_from_perun_dump(touri("2.json")) + update_from_perun_dump(touri("3.json")) + + memberships = list(Member.model_cls.query.filter_by(user_id=user.id).all()) + assert len(memberships) == 1 + assert memberships[0].role == "curator" + assert str(memberships[0].community_id) == community.id + + # add a new curator so that there will ve 2 curators + u2 = User(email="u2@test.com", active=True, password="1234") + db.session.add(u2) + db.session.commit() + + cs = CommunitySupport() + cs.set_user_community_membership(u2, {CommunityRole(community.id, "curator")}) + + # this should remove the first one + update_from_perun_dump(touri("4.json")) + + # check that the first one is gone + memberships = list(Member.model_cls.query.filter_by(user_id=user.id).all()) + assert len(memberships) == 0 + + +def test_user_not_found_anymore(app, db, location, search_clear, smart_record): + with smart_record("test_suspend_user.yaml") as recorded: + user = User( + username="asdasdasd", + email="ms@cesnet.cz", + active=True, + password="1234", + user_profile={"full_name": "Mirek Simek"}, + ) + db.session.add(user) + db.session.commit() + + identity = UserIdentity.create( + user=user, + method="e-infra", + external_id="12ccb0f5d93f3b81d7987863fb687a4b592e9a28@einfra.cesnet.cz", + ) + db.session.commit() + + update_from_perun_dump(touri("5.json")) + + # check that the user still exists + User.query.filter_by(username="asdasdasd").one() From 74ba6b3f6d1607ee9d39ed05b897557e7d41fcaa Mon Sep 17 00:00:00 2001 From: Mirek Simek Date: Sat, 7 Sep 2024 17:47:27 +0200 Subject: [PATCH 3/3] Running tests --- .github/workflows/build.yaml | 4 ++-- run-tests.sh | 3 +-- setup.cfg | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c604a05..639dbbf 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -36,7 +36,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v3 with: - python-version: "3.10" + python-version: "3.12" - name: Cache pip uses: actions/cache@v3 with: @@ -68,7 +68,7 @@ jobs: - name: Run tests run: | ./run-tests.sh - + - name: Build package to publish run: | diff --git a/run-tests.sh b/run-tests.sh index 9dc7edd..86829b9 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -17,7 +17,6 @@ source $VENV/bin/activate pip install -U setuptools pip wheel pip install "oarepo[tests]==${OAREPO_VERSION}.*" -pip install -e . -pip install pytest-invenio +pip install -e '.[tests]' pytest tests diff --git a/setup.cfg b/setup.cfg index e27cb73..6938d24 100644 --- a/setup.cfg +++ b/setup.cfg @@ -41,7 +41,6 @@ devs = licenseheaders tests = pytest-invenio - oarepo>=12 responses [options.entry_points]