MCPcopy Index your code
hub / github.com/BBMRI-ERIC/negotiator

github.com/BBMRI-ERIC/negotiator @v3.23.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.23.0 ↗ · + Follow
3,324 symbols 14,323 edges 604 files 435 documented · 13% 19 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Negotiator

build Quality Gate Status GitHub release codecov OpenSSF Scorecard Static Badge Static Badge License

Negotiator is an open-source access negotiation solution tailored for research infrastructures. It offers a highly customizable workflow engine, along with support for messaging, notifications, and moderation.

Project Goals

Negotiator aims to streamline access management by providing an extensible and customizable solution for negotiating access to various resources, including biological sample collections, specialized services, and expertise within research infrastructures.

Current Status

The Negotiator is actively used to mediate access to health data and biological samples within BBMRI-ERIC and other European research projects. For more detailed information, refer to our official Documentation.

Quick Start

Prerequisites

  • Docker Engine 27.0 and newer
  • Docker Compose 2.30 and newer
  • Host networking enabled (See this link for Docker Desktop)
  • Unallocated Ports 8080, 8081 and 5432

To launch a local instance of the Negotiator, run the following commands:

git clone https://github.com/BBMRI-ERIC/negotiator.git
cd negotiator
docker compose up -d

[!TIP] The Database is available at: jdbc:postgresql://localhost:5432/negotiator with default credentials negotiator:negotiator

Development

Pull requests are welcome, please go through the Pull Request template before asking for review. For contributing, please read our contribution guidelines.

Documentation

Official documentation available at https://bbmri-eric.github.io/negotiator.

License

Copyright 2020-2025 BBMRI-ERIC.

Licensed under GNU Affero General Public License v3.0 (the "License"); you may not use this file except in compliance with the License.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Extension points exported contracts — how you extend this code

FilterDTO (Interface)
Represents a contract for a filter DTO. [6 implementers]
backend/src/main/java/eu/bbmri_eric/negotiator/common/FilterDTO.java
NegotiationLifecycleService (Interface)
This interface provides a specification for Lifecycle management operations on a Negotiation level. [4 implementers]
backend/src/main/java/eu/bbmri_eric/negotiator/negotiation/state_machine/negotiation/NegotiationLifecycleService.java
WebhookTextEncryptorFactory (Interface)
(no doc) [7 implementers]
backend/src/main/java/eu/bbmri_eric/negotiator/webhook/WebhookTextEncryptorFactory.java
WebhookMappingStrategy (Interface)
Strategy for mapping a specific ApplicationEvent subtype to webhook payloads. [4 implementers]
backend/src/main/java/eu/bbmri_eric/negotiator/webhook/event/WebhookMappingStrategy.java
FileTypeConverter (Interface)
(no doc) [6 implementers]
backend/src/main/java/eu/bbmri_eric/negotiator/attachment/FileTypeConverter.java

Core symbols most depended-on inside this repo

getId
called by 587
backend/src/main/java/eu/bbmri_eric/negotiator/governance/resource/ResourceViewDTO.java
build
called by 452
backend/src/main/java/eu/bbmri_eric/negotiator/negotiation/CustomNegotiationBuilder.java
of
called by 446
backend/src/main/java/eu/bbmri_eric/negotiator/webhook/event/DefaultWebhookMappingStrategy.java
builder
called by 417
backend/src/main/java/eu/bbmri_eric/negotiator/negotiation/Negotiation.java
map
called by 332
backend/src/main/java/eu/bbmri_eric/negotiator/webhook/event/WebhookMappingStrategy.java
findById
called by 246
backend/src/main/java/eu/bbmri_eric/negotiator/post/PostService.java
getName
called by 219
backend/src/main/java/eu/bbmri_eric/negotiator/governance/resource/ResourceViewDTO.java
add
called by 155
backend/src/main/java/eu/bbmri_eric/negotiator/post/PostController.java

Shape

Method 2,579
Class 467
Function 190
Interface 73
Enum 15

Languages

Java94%
TypeScript6%

Modules by API surface

backend/src/test/java/eu/bbmri_eric/negotiator/negotiation/NegotiationControllerTests.java116 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/attachment/AttachmentConversionServiceTest.java45 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/attachment/FileTypeValidatorTest.java44 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/integration/api/v3/UserControllerTest.java39 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/integration/api/WebhookControllerTest.java34 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/integration/service/NegotiationLifecycleServiceImplTest.java32 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/integration/api/v3/InformationRequirementControllerTest.java32 symbols
backend/src/main/java/eu/bbmri_eric/negotiator/negotiation/NegotiationServiceImpl.java29 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/email/EmailServiceImplTest.java28 symbols
backend/src/main/java/eu/bbmri_eric/negotiator/common/exceptions/NegotiatorExceptionHandler.java28 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/unit/service/PostServiceTest.java27 symbols
backend/src/test/java/eu/bbmri_eric/negotiator/integration/repository/NegotiationRepositoryTest.java27 symbols

Datastores touched

negotiatorDatabase · 1 repos

For agents

$ claude mcp add negotiator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page