Skip to content
Snippets Groups Projects
Select Git revision
  • 2655a1b6562d214a2eba8110bd86778d1cdaf91b
  • master default protected
  • replication_test
  • dev protected
  • release-1.10 protected
  • release-1.9 protected
  • 551-init-broker-service-permissions
  • 549-test-oai-pmh
  • 545-saving-multiple-times-breaks-pid-metadata
  • 499-standalone-compute-service-2
  • 539-load-tests
  • hotfix/helm-chart
  • luca_ba_new_interface
  • 534-bug-when-adding-access-to-user-that-is-not-registered-at-dashboard-service
  • release-1.8 protected
  • 533-integrate-semantic-recommendation
  • feature/openshift
  • 518-spark-doesn-t-map-the-headers-correct
  • 485-fixity-checks
  • 530-various-schema-problems-with-subsets
  • release-1.7 protected
  • v1.10.2 protected
  • v1.10.1 protected
  • v1.10.0-rc13 protected
  • v1.10.0-rc12 protected
  • v1.10.0-rc11 protected
  • v1.10.0-rc10 protected
  • v1.10.0-rc9 protected
  • v1.10.0-rc8 protected
  • v1.10.0-rc7 protected
  • v1.10.0-rc6 protected
  • v1.10.0-rc5 protected
  • v1.10.0-rc4 protected
  • v1.10.0-rc3 protected
  • v1.10.0-rc2 protected
  • v1.10.0rc1 protected
  • v1.10.0rc0 protected
  • v1.10.0 protected
  • v1.9.3 protected
  • v1.9.2 protected
  • v1.9.2-rc0 protected
41 results

deployment.md

Blame
  • author: Martin Weise
    hide:
    - navigation

    Deployment

    !!! info "Abstract"

    We modified some services and exchanged them with reviewed, open-source implementations that extend the functionality
    even more from version 1.2 onwards. On this page, some of the configuration possible is summarized.

    Authentication Service

    Broker Service

    Authentication

    The RabbitMQ client can be authenticated through plain (username, password) and OAuth2 mechanisms. Note that the access token already contains a field client_id=foo, so the username is optional in PlainCredentials().

    === "Plain"

    ``` py
    import pika
    
    credentials = pika.credentials.PlainCredentials("foo", "bar")
    parameters = pika.ConnectionParameters('localhost', 5672, '/', credentials)
    connection = pika.BlockingConnection(parameters)
    channel = connection.channel()
    channel.queue_declare(queue='test', durable=True)
    channel.basic_publish(exchange='',
    routing_key='test',
    body=b'Hello World!')
    print(" [x] Sent 'Hello World!'")
    connection.close()
    ```

    === "OAuth2"

    ``` py
    import pika
    
    credentials = pika.credentials.PlainCredentials("", "THE_ACCESS_TOKEN")
    parameters = pika.ConnectionParameters('localhost', 5672, '/', credentials)
    connection = pika.BlockingConnection(parameters)
    channel = connection.channel()
    channel.queue_declare(queue='test', durable=True)
    channel.basic_publish(exchange='',
    routing_key='test',
    body=b'Hello World!')
    print(" [x] Sent 'Hello World!'")
    connection.close()
    ```

    Identifier Service

    From version 1.2 onwards there are two modes for the Identifier Service:

    1. Persistent Identifier (PID)
    2. Digital Object Identifier (DOI)

    By default, the URI mode is used, creating a PID for databases or subsets. If starting the Identifier Service in DOI mode, a DOI is minted for persistent identification of databases or subsets. Using the DOI system is entirely optional and should not be done for test-deployments.

    ![](images/identifier-doi.png)
    Minting a test-DOI for a subset

    Gateway Service

    From version 1.2 onwards we use both HTTP and HTTPS to serve the API, especially for the Authentication Service. The Discovery Service lists both the non-secure and secure ports.